From 3ef4050a06467faf6d712903f195596615157c32 Mon Sep 17 00:00:00 2001 From: agajdosi Date: Mon, 7 Jan 2019 12:53:21 +0100 Subject: [PATCH] Issue #2483 Update Xpaas image streams and templates for OpenShift 3.11 --- .../datagrid72-image-stream.json | 26 +- .../xpaas-streams/eap72-image-stream.json | 74 + .../xpaas-streams/fis-image-streams.json | 390 ++++- .../xpaas-templates/datagrid72-basic.json | 26 +- .../xpaas-templates/datagrid72-https.json | 17 +- .../datagrid72-mysql-persistent.json | 17 +- .../xpaas-templates/datagrid72-mysql.json | 17 +- .../xpaas-templates/datagrid72-partition.json | 26 +- .../datagrid72-postgresql-persistent.json | 17 +- .../datagrid72-postgresql.json | 17 +- .../eap-camel-amq-template.json | 38 +- .../eap-camel-cdi-template.json | 38 +- .../eap-camel-cxf-jaxrs-template.json | 38 +- .../eap-camel-cxf-jaxws-template.json | 38 +- .../eap-camel-jpa-template.json | 38 +- .../xpaas-templates/eap72-basic-s2i.json | 423 +++++ .../xpaas-templates/eap72-https-s2i.json | 611 ++++++++ .../eap72-mongodb-persistent-s2i.json | 902 +++++++++++ .../xpaas-templates/eap72-mongodb-s2i.json | 875 +++++++++++ .../eap72-mysql-persistent-s2i.json | 919 +++++++++++ .../xpaas-templates/eap72-mysql-s2i.json | 892 +++++++++++ .../eap72-postgresql-persistent-s2i.json | 892 +++++++++++ .../xpaas-templates/eap72-postgresql-s2i.json | 865 +++++++++++ .../v3.10/xpaas-templates/eap72-sso-s2i.json | 845 ++++++++++ .../xpaas-templates/eap72-starter-s2i.json | 338 ++++ .../eap72-third-party-db-s2i.json | 683 ++++++++ .../fis-console-cluster-template.json | 83 +- .../fis-console-namespace-template.json | 83 +- .../v3.10/xpaas-templates/fuse-apicurito.yml | 274 ++++ .../karaf-camel-amq-template.json | 69 +- .../karaf-camel-log-template.json | 27 +- .../karaf-camel-rest-sql-template.json | 21 +- .../karaf-cxf-rest-template.json | 23 +- .../spring-boot-camel-amq-template.json | 21 +- .../spring-boot-camel-config-template.json | 23 +- .../spring-boot-camel-drools-template.json | 23 +- ...spring-boot-camel-infinispan-template.json | 21 +- .../spring-boot-camel-rest-sql-template.json | 438 ++++++ .../spring-boot-camel-teiid-template.json | 23 +- .../spring-boot-camel-template.json | 21 +- .../spring-boot-camel-xa-template.json | 591 +++++++ .../spring-boot-camel-xml-template.json | 21 +- .../spring-boot-cxf-jaxrs-template.json | 21 +- .../spring-boot-cxf-jaxws-template.json | 21 +- .../xpaas-streams/amq62-image-stream.json | 158 ++ .../xpaas-streams/amq63-image-stream.json | 104 ++ .../datagrid65-image-stream.json | 175 +++ .../datagrid71-image-stream.json | 140 ++ .../datagrid72-image-stream.json | 65 + .../datavirt63-image-stream.json | 175 +++ .../decisionserver62-image-stream.json | 52 + .../decisionserver63-image-stream.json | 74 + .../decisionserver64-image-stream.json | 116 ++ .../xpaas-streams/eap70-image-stream.json | 137 ++ .../xpaas-streams/eap71-image-stream.json | 116 ++ .../xpaas-streams/fis-image-streams.json | 402 +++++ .../jws30-tomcat7-image-stream.json | 92 ++ .../jws30-tomcat8-image-stream.json | 92 ++ .../jws31-tomcat7-image-stream.json | 92 ++ .../jws31-tomcat8-image-stream.json | 92 ++ .../xpaas-streams/openjdk18-image-stream.json | 191 +++ .../processserver63-image-stream.json | 74 + .../processserver64-image-stream.json | 116 ++ .../xpaas-streams/rhdm70-image-streams.yaml | 74 + .../xpaas-streams/rhpam70-image-streams.yaml | 122 ++ .../xpaas-streams/sso70-image-stream.json | 69 + .../xpaas-streams/sso71-image-stream.json | 105 ++ .../xpaas-streams/sso72-image-stream.json | 87 ++ .../v3.11/xpaas-templates/amq62-basic.json | 372 +++++ .../xpaas-templates/amq62-persistent-ssl.json | 718 +++++++++ .../xpaas-templates/amq62-persistent.json | 532 +++++++ .../v3.11/xpaas-templates/amq62-ssl.json | 558 +++++++ .../v3.11/xpaas-templates/amq63-basic.json | 372 +++++ .../xpaas-templates/amq63-persistent-ssl.json | 717 +++++++++ .../xpaas-templates/amq63-persistent.json | 535 +++++++ .../v3.11/xpaas-templates/amq63-ssl.json | 561 +++++++ .../xpaas-templates/datagrid65-basic.json | 411 +++++ .../xpaas-templates/datagrid65-https.json | 592 +++++++ .../datagrid65-mysql-persistent.json | 912 +++++++++++ .../xpaas-templates/datagrid65-mysql.json | 882 +++++++++++ .../datagrid65-postgresql-persistent.json | 884 +++++++++++ .../datagrid65-postgresql.json | 853 ++++++++++ .../xpaas-templates/datagrid71-basic.json | 458 ++++++ .../xpaas-templates/datagrid71-https.json | 639 ++++++++ .../datagrid71-mysql-persistent.json | 956 ++++++++++++ .../xpaas-templates/datagrid71-mysql.json | 929 +++++++++++ .../xpaas-templates/datagrid71-partition.json | 539 +++++++ .../datagrid71-postgresql-persistent.json | 927 +++++++++++ .../datagrid71-postgresql.json | 900 +++++++++++ .../xpaas-templates/datagrid72-basic.json | 446 ++++++ .../xpaas-templates/datagrid72-https.json | 638 ++++++++ .../datagrid72-mysql-persistent.json | 955 ++++++++++++ .../xpaas-templates/datagrid72-mysql.json | 928 +++++++++++ .../xpaas-templates/datagrid72-partition.json | 527 +++++++ .../datagrid72-postgresql-persistent.json | 926 +++++++++++ .../datagrid72-postgresql.json | 899 +++++++++++ .../xpaas-templates/datavirt63-basic-s2i.json | 521 +++++++ .../datavirt63-extensions-support-s2i.json | 874 +++++++++++ .../datavirt63-secure-s2i.json | 994 ++++++++++++ .../decisionserver64-amq-s2i.json | 789 ++++++++++ .../decisionserver64-basic-s2i.json | 388 +++++ .../decisionserver64-https-s2i.json | 533 +++++++ .../eap-camel-amq-template.json | 560 +++++++ .../eap-camel-cdi-template.json | 525 +++++++ .../eap-camel-cxf-jaxrs-template.json | 525 +++++++ .../eap-camel-cxf-jaxws-template.json | 525 +++++++ .../eap-camel-jpa-template.json | 798 ++++++++++ .../eap71-amq-persistent-s2i.json | 943 +++++++++++ .../v3.11/xpaas-templates/eap71-amq-s2i.json | 888 +++++++++++ .../xpaas-templates/eap71-basic-s2i.json | 431 ++++++ .../xpaas-templates/eap71-https-s2i.json | 619 ++++++++ .../eap71-mongodb-persistent-s2i.json | 910 +++++++++++ .../xpaas-templates/eap71-mongodb-s2i.json | 883 +++++++++++ .../eap71-mysql-persistent-s2i.json | 927 +++++++++++ .../xpaas-templates/eap71-mysql-s2i.json | 900 +++++++++++ .../eap71-postgresql-persistent-s2i.json | 900 +++++++++++ .../xpaas-templates/eap71-postgresql-s2i.json | 873 +++++++++++ .../v3.11/xpaas-templates/eap71-sso-s2i.json | 853 ++++++++++ .../eap71-third-party-db-s2i.json | 691 +++++++++ .../eap71-tx-recovery-s2i.json | 616 ++++++++ .../fis-console-cluster-template.json | 262 ++++ .../fis-console-namespace-template.json | 276 ++++ .../jws31-tomcat7-basic-s2i.json | 320 ++++ .../jws31-tomcat7-https-s2i.json | 442 ++++++ .../jws31-tomcat7-mongodb-persistent-s2i.json | 732 +++++++++ .../jws31-tomcat7-mongodb-s2i.json | 702 +++++++++ .../jws31-tomcat7-mysql-persistent-s2i.json | 737 +++++++++ .../jws31-tomcat7-mysql-s2i.json | 706 +++++++++ ...s31-tomcat7-postgresql-persistent-s2i.json | 709 +++++++++ .../jws31-tomcat7-postgresql-s2i.json | 679 ++++++++ .../jws31-tomcat8-basic-s2i.json | 323 ++++ .../jws31-tomcat8-https-s2i.json | 442 ++++++ .../jws31-tomcat8-mongodb-persistent-s2i.json | 733 +++++++++ .../jws31-tomcat8-mongodb-s2i.json | 702 +++++++++ .../jws31-tomcat8-mysql-persistent-s2i.json | 736 +++++++++ .../jws31-tomcat8-mysql-s2i.json | 706 +++++++++ ...s31-tomcat8-postgresql-persistent-s2i.json | 706 +++++++++ .../jws31-tomcat8-postgresql-s2i.json | 677 ++++++++ .../karaf-camel-amq-template.json | 390 +++++ .../karaf-camel-log-template.json} | 66 +- .../karaf-camel-rest-sql-template.json} | 74 +- .../karaf-cxf-rest-template.json} | 72 +- .../openjdk18-web-basic-s2i.json | 272 ++++ ...cessserver64-amq-mysql-persistent-s2i.json | 1212 +++++++++++++++ .../processserver64-amq-mysql-s2i.json | 1104 +++++++++++++ ...erver64-amq-postgresql-persistent-s2i.json | 1181 ++++++++++++++ .../processserver64-amq-postgresql-s2i.json | 1074 +++++++++++++ .../processserver64-basic-s2i.json | 399 +++++ .../processserver64-mysql-persistent-s2i.json | 891 +++++++++++ .../processserver64-mysql-s2i.json | 827 ++++++++++ ...essserver64-postgresql-persistent-s2i.json | 859 +++++++++++ .../processserver64-postgresql-s2i.json | 796 ++++++++++ .../v3.11/xpaas-templates/rhdm70-full.yaml | 592 +++++++ .../rhdm70-kieserver-basic-s2i.yaml | 331 ++++ .../rhdm70-kieserver-https-s2i.yaml | 406 +++++ .../xpaas-templates/rhdm70-kieserver.yaml | 367 +++++ .../xpaas-templates/rhpam70-authoring-ha.yaml | 1162 ++++++++++++++ .../xpaas-templates/rhpam70-authoring.yaml | 738 +++++++++ .../rhpam70-kieserver-externaldb.yaml | 502 ++++++ .../rhpam70-kieserver-mysql.yaml | 585 +++++++ .../rhpam70-kieserver-postgresql.yaml | 592 +++++++ .../rhpam70-prod-immutable-kieserver.yaml | 651 ++++++++ .../rhpam70-prod-immutable-monitor.yaml | 558 +++++++ .../v3.11/xpaas-templates/rhpam70-prod.yaml | 1374 +++++++++++++++++ .../v3.11/xpaas-templates/rhpam70-sit.yaml | 1369 ++++++++++++++++ .../rhpam70-trial-ephemeral.yaml | 479 ++++++ .../spring-boot-camel-amq-template.json | 367 +++++ .../spring-boot-camel-config-template.json | 384 +++++ .../spring-boot-camel-drools-template.json | 370 +++++ ...spring-boot-camel-infinispan-template.json | 351 +++++ .../spring-boot-camel-rest-sql-template.json | 439 ++++++ .../spring-boot-camel-teiid-template.json | 379 +++++ .../spring-boot-camel-template.json | 341 ++++ .../spring-boot-camel-xa-template.json | 591 +++++++ .../spring-boot-camel-xml-template.json | 341 ++++ .../spring-boot-cxf-jaxrs-template.json | 400 +++++ .../spring-boot-cxf-jaxws-template.json | 400 +++++ .../v3.11/xpaas-templates/sso72-https.json | 568 +++++++ .../sso72-mysql-persistent.json | 838 ++++++++++ .../v3.11/xpaas-templates/sso72-mysql.json | 820 ++++++++++ .../sso72-postgresql-persistent.json | 811 ++++++++++ .../xpaas-templates/sso72-postgresql.json | 793 ++++++++++ .../xpaas-templates/sso72-x509-https.json | 368 +++++ .../sso72-x509-mysql-persistent.json | 637 ++++++++ .../sso72-x509-postgresql-persistent.json | 610 ++++++++ .../xpaas-streams/amq62-image-stream.json | 4 +- .../xpaas-streams/amq63-image-stream.json | 4 +- .../datagrid65-image-stream.json | 8 +- .../datagrid71-image-stream.json | 8 +- .../datavirt63-image-stream.json | 8 +- .../decisionserver62-image-stream.json | 4 +- .../decisionserver63-image-stream.json | 4 +- .../decisionserver64-image-stream.json | 4 +- .../xpaas-streams/eap70-image-stream.json | 4 +- .../xpaas-streams/eap71-image-stream.json | 38 +- .../v3.9/xpaas-streams/fis-image-streams.json | 340 +++- .../jws30-tomcat7-image-stream.json | 4 +- .../jws30-tomcat8-image-stream.json | 4 +- .../jws31-tomcat7-image-stream.json | 4 +- .../jws31-tomcat8-image-stream.json | 4 +- .../xpaas-streams/openjdk18-image-stream.json | 80 +- .../processserver63-image-stream.json | 4 +- .../processserver64-image-stream.json | 4 +- .../xpaas-streams/sso70-image-stream.json | 4 +- .../xpaas-streams/sso71-image-stream.json | 4 +- .../xpaas-streams/sso72-image-stream.json | 19 +- addons/xpaas/v3.9/xpaas-streams/stream.txt | 21 - .../v3.9/xpaas-templates/amq62-basic.json | 4 +- .../xpaas-templates/amq62-persistent-ssl.json | 4 +- .../xpaas-templates/amq62-persistent.json | 4 +- .../xpaas/v3.9/xpaas-templates/amq62-ssl.json | 4 +- .../v3.9/xpaas-templates/amq63-basic.json | 4 +- .../xpaas-templates/amq63-persistent-ssl.json | 4 +- .../xpaas-templates/amq63-persistent.json | 4 +- .../xpaas/v3.9/xpaas-templates/amq63-ssl.json | 4 +- .../xpaas-templates/datagrid65-basic.json | 4 +- .../xpaas-templates/datagrid65-https.json | 4 +- .../datagrid65-mysql-persistent.json | 4 +- .../xpaas-templates/datagrid65-mysql.json | 4 +- .../datagrid65-postgresql-persistent.json | 4 +- .../datagrid65-postgresql.json | 4 +- .../xpaas-templates/datagrid71-basic.json | 4 +- .../xpaas-templates/datagrid71-https.json | 4 +- .../datagrid71-mysql-persistent.json | 4 +- .../xpaas-templates/datagrid71-mysql.json | 4 +- .../xpaas-templates/datagrid71-partition.json | 4 +- .../datagrid71-postgresql-persistent.json | 4 +- .../datagrid71-postgresql.json | 4 +- .../xpaas-templates/datavirt63-basic-s2i.json | 4 +- .../datavirt63-extensions-support-s2i.json | 4 +- .../datavirt63-secure-s2i.json | 4 +- .../decisionserver64-amq-s2i.json | 4 +- .../decisionserver64-basic-s2i.json | 4 +- .../decisionserver64-https-s2i.json | 4 +- .../eap-camel-amq-template.json | 560 +++++++ .../eap-camel-cdi-template.json | 525 +++++++ .../eap-camel-cxf-jaxrs-template.json | 525 +++++++ .../eap-camel-cxf-jaxws-template.json | 525 +++++++ .../eap-camel-jpa-template.json | 798 ++++++++++ .../eap70-amq-persistent-s2i.json | 4 +- .../v3.9/xpaas-templates/eap70-amq-s2i.json | 4 +- .../v3.9/xpaas-templates/eap70-basic-s2i.json | 4 +- .../v3.9/xpaas-templates/eap70-https-s2i.json | 4 +- .../eap70-mongodb-persistent-s2i.json | 4 +- .../xpaas-templates/eap70-mongodb-s2i.json | 4 +- .../eap70-mysql-persistent-s2i.json | 4 +- .../v3.9/xpaas-templates/eap70-mysql-s2i.json | 4 +- .../eap70-postgresql-persistent-s2i.json | 4 +- .../xpaas-templates/eap70-postgresql-s2i.json | 4 +- .../v3.9/xpaas-templates/eap70-sso-s2i.json | 4 +- .../eap70-third-party-db-s2i.json | 4 +- .../eap70-tx-recovery-s2i.json | 4 +- .../eap71-amq-persistent-s2i.json | 6 +- .../v3.9/xpaas-templates/eap71-amq-s2i.json | 6 +- .../v3.9/xpaas-templates/eap71-basic-s2i.json | 6 +- .../v3.9/xpaas-templates/eap71-https-s2i.json | 6 +- .../eap71-mongodb-persistent-s2i.json | 6 +- .../xpaas-templates/eap71-mongodb-s2i.json | 6 +- .../eap71-mysql-persistent-s2i.json | 6 +- .../v3.9/xpaas-templates/eap71-mysql-s2i.json | 6 +- .../eap71-postgresql-persistent-s2i.json | 6 +- .../xpaas-templates/eap71-postgresql-s2i.json | 6 +- .../v3.9/xpaas-templates/eap71-sso-s2i.json | 6 +- .../eap71-third-party-db-s2i.json | 6 +- .../eap71-tx-recovery-s2i.json | 6 +- .../jws31-tomcat7-basic-s2i.json | 4 +- .../jws31-tomcat7-https-s2i.json | 4 +- .../jws31-tomcat7-mongodb-persistent-s2i.json | 4 +- .../jws31-tomcat7-mongodb-s2i.json | 4 +- .../jws31-tomcat7-mysql-persistent-s2i.json | 4 +- .../jws31-tomcat7-mysql-s2i.json | 4 +- ...s31-tomcat7-postgresql-persistent-s2i.json | 4 +- .../jws31-tomcat7-postgresql-s2i.json | 4 +- .../jws31-tomcat8-basic-s2i.json | 4 +- .../jws31-tomcat8-https-s2i.json | 4 +- .../jws31-tomcat8-mongodb-persistent-s2i.json | 4 +- .../jws31-tomcat8-mongodb-s2i.json | 4 +- .../jws31-tomcat8-mysql-persistent-s2i.json | 4 +- .../jws31-tomcat8-mysql-s2i.json | 4 +- ...s31-tomcat8-postgresql-persistent-s2i.json | 4 +- .../jws31-tomcat8-postgresql-s2i.json | 4 +- .../karaf-camel-amq-template.json | 390 +++++ ...ate.json => karaf-camel-log-template.json} | 94 +- .../karaf-camel-rest-sql-template.json | 441 ++++++ .../karaf-cxf-rest-template.json | 405 +++++ ...cessserver64-amq-mysql-persistent-s2i.json | 4 +- .../processserver64-amq-mysql-s2i.json | 4 +- ...erver64-amq-postgresql-persistent-s2i.json | 4 +- .../processserver64-amq-postgresql-s2i.json | 4 +- .../processserver64-basic-s2i.json | 4 +- .../processserver64-mysql-persistent-s2i.json | 4 +- .../processserver64-mysql-s2i.json | 4 +- ...essserver64-postgresql-persistent-s2i.json | 4 +- .../processserver64-postgresql-s2i.json | 4 +- .../spring-boot-camel-amq-template.json | 102 +- .../spring-boot-camel-config-template.json | 103 +- .../spring-boot-camel-drools-template.json | 80 +- ...spring-boot-camel-infinispan-template.json | 80 +- .../spring-boot-camel-rest-sql-template.json | 84 +- .../spring-boot-camel-teiid-template.json | 80 +- .../spring-boot-camel-template.json | 80 +- .../spring-boot-camel-xa-template.json | 591 +++++++ .../spring-boot-camel-xml-template.json | 80 +- .../spring-boot-cxf-jaxrs-template.json | 86 +- .../spring-boot-cxf-jaxws-template.json | 86 +- .../v3.9/xpaas-templates/sso72-https.json | 6 +- .../sso72-mysql-persistent.json | 6 +- .../v3.9/xpaas-templates/sso72-mysql.json | 6 +- .../sso72-postgresql-persistent.json | 811 ++++++++++ .../xpaas-templates/sso72-postgresql.json | 6 +- .../xpaas-templates/sso72-x509-https.json | 55 +- .../sso72-x509-mysql-persistent.json | 56 +- .../sso72-x509-postgresql-persistent.json | 56 +- .../xpaas/v3.9/xpaas-templates/template.txt | 101 -- addons/xpaas/xpaas.addon | 9 +- centos_ci.sh | 2 +- .../addon/parser/addon_parser_test.go | 2 +- .../features/addons/addon-xpaas.feature | 30 +- 318 files changed, 96637 insertions(+), 1279 deletions(-) create mode 100644 addons/xpaas/v3.10/xpaas-streams/eap72-image-stream.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/eap72-basic-s2i.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/eap72-https-s2i.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/eap72-mongodb-persistent-s2i.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/eap72-mongodb-s2i.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/eap72-mysql-persistent-s2i.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/eap72-mysql-s2i.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/eap72-postgresql-persistent-s2i.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/eap72-postgresql-s2i.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/eap72-sso-s2i.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/eap72-starter-s2i.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/eap72-third-party-db-s2i.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/fuse-apicurito.yml create mode 100644 addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-rest-sql-template.json create mode 100644 addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-xa-template.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/amq62-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/amq63-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/datagrid65-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/datagrid71-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/datagrid72-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/datavirt63-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/decisionserver62-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/decisionserver63-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/decisionserver64-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/eap70-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/eap71-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/fis-image-streams.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/jws30-tomcat7-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/jws30-tomcat8-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/jws31-tomcat7-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/jws31-tomcat8-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/openjdk18-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/processserver63-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/processserver64-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/rhdm70-image-streams.yaml create mode 100644 addons/xpaas/v3.11/xpaas-streams/rhpam70-image-streams.yaml create mode 100644 addons/xpaas/v3.11/xpaas-streams/sso70-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/sso71-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-streams/sso72-image-stream.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/amq62-basic.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/amq62-persistent-ssl.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/amq62-persistent.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/amq62-ssl.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/amq63-basic.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/amq63-persistent-ssl.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/amq63-persistent.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/amq63-ssl.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid65-basic.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid65-https.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid65-mysql-persistent.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid65-mysql.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid65-postgresql-persistent.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid65-postgresql.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid71-basic.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid71-https.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid71-mysql-persistent.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid71-mysql.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid71-partition.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid71-postgresql-persistent.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid71-postgresql.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid72-basic.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid72-https.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid72-mysql-persistent.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid72-mysql.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid72-partition.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid72-postgresql-persistent.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datagrid72-postgresql.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datavirt63-basic-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datavirt63-extensions-support-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/datavirt63-secure-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/decisionserver64-amq-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/decisionserver64-basic-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/decisionserver64-https-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap-camel-amq-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap-camel-cdi-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap-camel-cxf-jaxrs-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap-camel-cxf-jaxws-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap-camel-jpa-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-amq-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-amq-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-basic-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-https-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-mongodb-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-mongodb-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-mysql-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-mysql-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-postgresql-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-postgresql-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-sso-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-third-party-db-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/eap71-tx-recovery-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/fis-console-cluster-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/fis-console-namespace-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-basic-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-https-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mongodb-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mongodb-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mysql-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mysql-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-postgresql-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-postgresql-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-basic-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-https-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mongodb-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mongodb-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mysql-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mysql-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-postgresql-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-postgresql-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/karaf-camel-amq-template.json rename addons/xpaas/{v3.9/xpaas-templates/karaf2-camel-log-template.json => v3.11/xpaas-templates/karaf-camel-log-template.json} (84%) rename addons/xpaas/{v3.9/xpaas-templates/karaf2-camel-rest-sql-template.json => v3.11/xpaas-templates/karaf-camel-rest-sql-template.json} (86%) rename addons/xpaas/{v3.9/xpaas-templates/karaf2-cxf-rest-template.json => v3.11/xpaas-templates/karaf-cxf-rest-template.json} (85%) create mode 100644 addons/xpaas/v3.11/xpaas-templates/openjdk18-web-basic-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/processserver64-amq-mysql-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/processserver64-amq-mysql-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/processserver64-amq-postgresql-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/processserver64-amq-postgresql-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/processserver64-basic-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/processserver64-mysql-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/processserver64-mysql-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/processserver64-postgresql-persistent-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/processserver64-postgresql-s2i.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhdm70-full.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver-basic-s2i.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver-https-s2i.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhpam70-authoring-ha.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhpam70-authoring.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-externaldb.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-mysql.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-postgresql.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhpam70-prod-immutable-kieserver.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhpam70-prod-immutable-monitor.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhpam70-prod.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhpam70-sit.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/rhpam70-trial-ephemeral.yaml create mode 100644 addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-amq-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-config-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-drools-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-infinispan-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-rest-sql-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-teiid-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-xa-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-xml-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/spring-boot-cxf-jaxrs-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/spring-boot-cxf-jaxws-template.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/sso72-https.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/sso72-mysql-persistent.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/sso72-mysql.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/sso72-postgresql-persistent.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/sso72-postgresql.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/sso72-x509-https.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/sso72-x509-mysql-persistent.json create mode 100644 addons/xpaas/v3.11/xpaas-templates/sso72-x509-postgresql-persistent.json delete mode 100644 addons/xpaas/v3.9/xpaas-streams/stream.txt create mode 100644 addons/xpaas/v3.9/xpaas-templates/eap-camel-amq-template.json create mode 100644 addons/xpaas/v3.9/xpaas-templates/eap-camel-cdi-template.json create mode 100644 addons/xpaas/v3.9/xpaas-templates/eap-camel-cxf-jaxrs-template.json create mode 100644 addons/xpaas/v3.9/xpaas-templates/eap-camel-cxf-jaxws-template.json create mode 100644 addons/xpaas/v3.9/xpaas-templates/eap-camel-jpa-template.json create mode 100644 addons/xpaas/v3.9/xpaas-templates/karaf-camel-amq-template.json rename addons/xpaas/v3.9/xpaas-templates/{karaf2-camel-amq-template.json => karaf-camel-log-template.json} (79%) create mode 100644 addons/xpaas/v3.9/xpaas-templates/karaf-camel-rest-sql-template.json create mode 100644 addons/xpaas/v3.9/xpaas-templates/karaf-cxf-rest-template.json create mode 100644 addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-xa-template.json create mode 100644 addons/xpaas/v3.9/xpaas-templates/sso72-postgresql-persistent.json delete mode 100644 addons/xpaas/v3.9/xpaas-templates/template.txt diff --git a/addons/xpaas/v3.10/xpaas-streams/datagrid72-image-stream.json b/addons/xpaas/v3.10/xpaas-streams/datagrid72-image-stream.json index 21de18d09e..0ef18455a2 100644 --- a/addons/xpaas/v3.10/xpaas-streams/datagrid72-image-stream.json +++ b/addons/xpaas/v3.10/xpaas-streams/datagrid72-image-stream.json @@ -16,7 +16,8 @@ "name": "jboss-datagrid72-openshift", "annotations": { "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2", - "openshift.io/provider-display-name": "Red Hat, Inc." + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.1" } }, "spec": { @@ -31,9 +32,30 @@ "version": "1.0", "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2" }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-7/datagrid72-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat JBoss Data Grid 7.2 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:7.2", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2" + }, + "referencePolicy": { + "type": "Local" + }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/jboss-datagrid-7/datagrid72-openshift:1.0" + "name": "registry.redhat.io/jboss-datagrid-7/datagrid72-openshift:1.1" } } ] diff --git a/addons/xpaas/v3.10/xpaas-streams/eap72-image-stream.json b/addons/xpaas/v3.10/xpaas-streams/eap72-image-stream.json new file mode 100644 index 0000000000..a87123f2f8 --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-streams/eap72-image-stream.json @@ -0,0 +1,74 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "jboss-eap72-image-streams", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss EAP 7.2.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-eap72-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss EAP 7.2", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.0" + } + }, + "labels": { + "xpaas": "1.0.0" + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": { + "description": "Red Hat JBoss EAP 7.2 S2I Image [Tech Preview]", + "iconClass": "icon-eap", + "tags": "builder,eap,javaee,java,jboss,hidden", + "supports": "eap:7.2,javaee:7,java:8", + "sampleRepo": "https://github.com/jbossas/eap-quickstarts/openshift", + "sampleContextDir": "kitchensink", + "sampleRef": "openshift", + "version": "latest", + "openshift.io/display-name": "Red Hat JBoss EAP 7.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-eap-7-tech-preview/eap72-openshift:latest" + } + }, + { + "name": "1.0", + "annotations": { + "description": "Red Hat JBoss EAP 7.2 S2I Image [Tech Preview]", + "iconClass": "icon-eap", + "tags": "builder,eap,javaee,java,jboss,hidden", + "supports": "eap:7.2,javaee:7,java:8", + "sampleRepo": "https://github.com/jbossas/eap-quickstarts/openshift", + "sampleContextDir": "kitchensink", + "sampleRef": "openshift", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-eap-7-tech-preview/eap72-openshift:1.0" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-streams/fis-image-streams.json b/addons/xpaas/v3.10/xpaas-streams/fis-image-streams.json index e3b2b70639..65b90230ec 100644 --- a/addons/xpaas/v3.10/xpaas-streams/fis-image-streams.json +++ b/addons/xpaas/v3.10/xpaas-streams/fis-image-streams.json @@ -27,12 +27,15 @@ "openshift.io/display-name": "Red Hat Fuse 6.2.1 Java", "iconClass": "icon-rh-integration", "tags": "builder,jboss-fuse,java,xpaas,hidden", - "supports":"jboss-fuse:6.2.1,java:8,xpaas:1.2", + "supports": "jboss-fuse:6.2.1,java:8,xpaas:1.2", "version": "1.0" }, + "referencePolicy": { + "type": "Local" + }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/jboss-fuse-6/fis-java-openshift:1.0" + "name": "registry.redhat.io/jboss-fuse-6/fis-java-openshift:1.0" } }, { @@ -42,12 +45,15 @@ "openshift.io/display-name": "Red Hat Fuse 6.3 Java", "iconClass": "icon-rh-integration", "tags": "builder,jboss-fuse,java,xpaas,hidden", - "supports":"jboss-fuse:6.3.0,java:8,xpaas:1.2", + "supports": "jboss-fuse:6.3.0,java:8,xpaas:1.2", "version": "2.0" }, + "referencePolicy": { + "type": "Local" + }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/jboss-fuse-6/fis-java-openshift:2.0" + "name": "registry.redhat.io/jboss-fuse-6/fis-java-openshift:2.0" } } ] @@ -72,12 +78,15 @@ "openshift.io/display-name": "Red Hat Fuse 7.0 Java", "iconClass": "icon-rh-integration", "tags": "builder,jboss-fuse,java,xpaas,hidden", - "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "supports": "jboss-fuse:7.0.0,java:8,xpaas:1.2", "version": "1.0" }, + "referencePolicy": { + "type": "Local" + }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/fuse7/fuse-java-openshift:1.0" + "name": "registry.redhat.io/fuse7/fuse-java-openshift:1.0" } } ] @@ -102,12 +111,15 @@ "openshift.io/display-name": "Red Hat Fuse 6.2.1 Karaf", "iconClass": "icon-rh-integration", "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", - "supports":"jboss-fuse:6.2.1,java:8,xpaas:1.2", + "supports": "jboss-fuse:6.2.1,java:8,xpaas:1.2", "version": "1.0" }, + "referencePolicy": { + "type": "Local" + }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/jboss-fuse-6/fis-karaf-openshift:1.0" + "name": "registry.redhat.io/jboss-fuse-6/fis-karaf-openshift:1.0" } }, { @@ -117,12 +129,15 @@ "openshift.io/display-name": "Red Hat Fuse 6.3 Karaf", "iconClass": "icon-rh-integration", "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", - "supports":"jboss-fuse:6.3.0,java:8,xpaas:1.2", + "supports": "jboss-fuse:6.3.0,java:8,xpaas:1.2", "version": "2.0" }, + "referencePolicy": { + "type": "Local" + }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/jboss-fuse-6/fis-karaf-openshift:2.0" + "name": "registry.redhat.io/jboss-fuse-6/fis-karaf-openshift:2.0" } } ] @@ -147,12 +162,15 @@ "openshift.io/display-name": "Red Hat Fuse 7.0 Karaf", "iconClass": "icon-rh-integration", "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", - "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "supports": "jboss-fuse:7.0.0,java:8,xpaas:1.2", "version": "1.0" }, + "referencePolicy": { + "type": "Local" + }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/fuse7/fuse-karaf-openshift:1.0" + "name": "registry.redhat.io/fuse7/fuse-karaf-openshift:1.0" } } ] @@ -177,12 +195,15 @@ "openshift.io/display-name": "Red Hat Fuse 7.0 EAP", "iconClass": "icon-rh-integration", "tags": "builder,jboss-fuse,java,eap,xpaas,hidden", - "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "supports": "jboss-fuse:7.0.0,java:8,xpaas:1.2", "version": "1.0" }, + "referencePolicy": { + "type": "Local" + }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/fuse7/fuse-eap-openshift:1.0" + "name": "registry.redhat.io/fuse7/fuse-eap-openshift:1.0" } } ] @@ -198,6 +219,246 @@ "openshift.io/provider-display-name": "Red Hat, Inc." } }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Console image.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Console", + "iconClass": "icon-rh-integration", + "tags": "jboss-fuse,hawtio,java,xpaas,hidden", + "supports": "jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-console:1.0" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-java-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 Java", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-java-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-java-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat Fuse 7.2 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.2 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", + "supports":"jboss-fuse:7.2.0,java:8,xpaas:1.2", + "version": "1.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-java-openshift:1.2" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-karaf-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Karaf S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-karaf-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 Karaf S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-karaf-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat Fuse 7.2 Karaf S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.2 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", + "supports":"jboss-fuse:7.2.0,java:8,xpaas:1.2", + "version": "1.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-karaf-openshift:1.2" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-eap-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 EAP", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 EAP S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 EAP", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,eap,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-eap-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 EAP S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.1 EAP", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,eap,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-eap-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat Fuse 7.2 EAP S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.2 EAP", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,eap,xpaas,hidden", + "supports":"jboss-fuse:7.2.0,java:8,xpaas:1.2", + "version": "1.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-eap-openshift:1.2" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-console", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 Console", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, "spec": { "tags": [ { @@ -210,9 +471,108 @@ "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", "version": "1.0" }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-console:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 Console image.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Console", + "iconClass": "icon-rh-integration", + "tags": "jboss-fuse,hawtio,java,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-console:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat Fuse 7.2 Console image.", + "openshift.io/display-name": "Red Hat Fuse 7.2 Console", + "iconClass": "icon-rh-integration", + "tags": "jboss-fuse,hawtio,java,xpaas,hidden", + "supports":"jboss-fuse:7.2.0,java:8,xpaas:1.2", + "version": "1.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-console:1.2" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "apicurito-ui", + "annotations": { + "openshift.io/display-name": "Red Hat Apicurito UI", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.2", + "annotations": { + "description": "Red Hat Apicurito UI image.", + "openshift.io/display-name": "Red Hat Apicurito UI", + "tags": "apicurio,hidden" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-apicurito:1.2" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse-apicurito-generator", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse Apicurito Generator", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.2", + "annotations": { + "description": "Red Hat Apicurito Generator image.", + "openshift.io/display-name": "Red Hat Apicurito Generator", + "tags": "apicurio,fuse,hidden" + }, + "referencePolicy": { + "type": "Local" + }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/fuse7/fuse-console:1.0" + "name": "registry.redhat.io/fuse7/fuse-apicurito-generator:1.2" } } ] diff --git a/addons/xpaas/v3.10/xpaas-templates/datagrid72-basic.json b/addons/xpaas/v3.10/xpaas-templates/datagrid72-basic.json index 5e76a305b4..3ed875495a 100644 --- a/addons/xpaas/v3.10/xpaas-templates/datagrid72-basic.json +++ b/addons/xpaas/v3.10/xpaas-templates/datagrid72-basic.json @@ -5,19 +5,18 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss", - "version": "1.4.12", + "version": "1.1", "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 (Ephemeral, no https)", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "An exampleRed Hat JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", - "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based application, including a deployment configuration, using using ephemeral (temporary) storage and communication using http.", + "description": "An example Red Hat JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using ephemeral (temporary) storage and communication using http.", "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", "template.openshift.io/support-url": "https://access.redhat.com" }, "name": "datagrid72-basic" }, "labels": { - "template": "datagrid72-basic", - "xpaas": "1.4.12" + "template": "datagrid72-basic" }, "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", "parameters": [ @@ -112,18 +111,11 @@ "value": "", "required": false }, - { - "displayName": "Encryption Requires SSL Client Authentication?", - "description": "", - "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", - "value": "", - "required": false - }, { "displayName": "Memcached Cache Name", - "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "description": "The name of the cache to expose through this memcached connector", "name": "MEMCACHED_CACHE", - "value": "default", + "value": "default_memcached", "required": false }, { @@ -291,7 +283,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid72-openshift:1.0" + "name": "jboss-datagrid72-openshift:1.1" } } }, @@ -427,10 +419,6 @@ "name": "CACHE_TYPE_DEFAULT", "value": "${CACHE_TYPE_DEFAULT}" }, - { - "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", - "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" - }, { "name": "HOTROD_SERVICE_NAME", "value": "${APPLICATION_NAME}-hotrod" diff --git a/addons/xpaas/v3.10/xpaas-templates/datagrid72-https.json b/addons/xpaas/v3.10/xpaas-templates/datagrid72-https.json index 4cae7c0bd7..85e248a671 100644 --- a/addons/xpaas/v3.10/xpaas-templates/datagrid72-https.json +++ b/addons/xpaas/v3.10/xpaas-templates/datagrid72-https.json @@ -5,19 +5,18 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.1", "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "An exampleRed Hat JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", - "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based application, including a deployment configuration, using using ephemeral (temporary) storage and secure communication using https.", + "description": "An example Red Hat JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using ephemeral (temporary) storage and secure communication using https.", "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", "template.openshift.io/support-url": "https://access.redhat.com" }, "name": "datagrid72-https" }, "labels": { - "template": "datagrid72-https", - "xpaas": "1.4.12" + "template": "datagrid72-https" }, "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -149,16 +148,16 @@ }, { "displayName": "Encryption Requires SSL Client Authentication?", - "description": "", + "description": "Whether to require client certificate authentication. Defaults to false", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { "displayName": "Memcached Cache Name", - "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "description": "The name of the cache to expose through this memcached connector", "name": "MEMCACHED_CACHE", - "value": "default", + "value": "default_memcached", "required": false }, { @@ -401,7 +400,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid72-openshift:1.0" + "name": "jboss-datagrid72-openshift:1.1" } } }, diff --git a/addons/xpaas/v3.10/xpaas-templates/datagrid72-mysql-persistent.json b/addons/xpaas/v3.10/xpaas-templates/datagrid72-mysql-persistent.json index 835bd1d0bb..76bd79ece0 100644 --- a/addons/xpaas/v3.10/xpaas-templates/datagrid72-mysql-persistent.json +++ b/addons/xpaas/v3.10/xpaas-templates/datagrid72-mysql-persistent.json @@ -5,19 +5,18 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss", - "version": "1.4.12", + "version": "1.1", "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 + MySQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "An exampleRed Hat JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", - "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based application, including a deployment configuration, using MySQL databased using persistence and secure communication using https.", + "description": "An example Red Hat JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using MySQL database for persistence and secure communication using https.", "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", "template.openshift.io/support-url": "https://access.redhat.com" }, "name": "datagrid72-mysql-persistent" }, "labels": { - "template": "datagrid72-mysql-persistent", - "xpaas": "1.4.12" + "template": "datagrid72-mysql-persistent" }, "message": "A new data grid service (using MySQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -234,16 +233,16 @@ }, { "displayName": "Encryption Requires SSL Client Authentication?", - "description": "", + "description": "Whether to require client certificate authentication. Defaults to false", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { "displayName": "Memcached Cache Name", - "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "description": "The name of the cache to expose through this memcached connector", "name": "MEMCACHED_CACHE", - "value": "default", + "value": "default_memcached", "required": false }, { @@ -521,7 +520,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid72-openshift:1.0" + "name": "jboss-datagrid72-openshift:1.1" } } }, diff --git a/addons/xpaas/v3.10/xpaas-templates/datagrid72-mysql.json b/addons/xpaas/v3.10/xpaas-templates/datagrid72-mysql.json index c63829190f..62878bc729 100644 --- a/addons/xpaas/v3.10/xpaas-templates/datagrid72-mysql.json +++ b/addons/xpaas/v3.10/xpaas-templates/datagrid72-mysql.json @@ -5,19 +5,18 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.1", "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 + MySQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "An exampleRed Hat JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", - "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based application, including a deployment configuration, using MySQL databased using ephemeral (temporary) storage and secure communication using https.", + "description": "An example Red Hat JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using MySQL database with ephemeral (temporary) storage and secure communication using https.", "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", "template.openshift.io/support-url": "https://access.redhat.com" }, "name": "datagrid72-mysql" }, "labels": { - "template": "datagrid72-mysql", - "xpaas": "1.4.12" + "template": "datagrid72-mysql" }, "message": "A new data grid service (using MySQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -227,16 +226,16 @@ }, { "displayName": "Encryption Requires SSL Client Authentication?", - "description": "", + "description": "Whether to require client certificate authentication. Defaults to false", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { "displayName": "Memcached Cache Name", - "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "description": "The name of the cache to expose through this memcached connector", "name": "MEMCACHED_CACHE", - "value": "default", + "value": "default_memcached", "required": false }, { @@ -514,7 +513,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid72-openshift:1.0" + "name": "jboss-datagrid72-openshift:1.1" } } }, diff --git a/addons/xpaas/v3.10/xpaas-templates/datagrid72-partition.json b/addons/xpaas/v3.10/xpaas-templates/datagrid72-partition.json index 761e641b2c..e84add445c 100644 --- a/addons/xpaas/v3.10/xpaas-templates/datagrid72-partition.json +++ b/addons/xpaas/v3.10/xpaas-templates/datagrid72-partition.json @@ -5,19 +5,18 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.1", "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 (Ephemeral, no https)", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "An exampleRed Hat JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", - "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based application, including a deployment configuration, using using ephemeral (temporary) storage and communication using http.", + "description": "An example Red Hat JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using ephemeral (temporary) storage and communication using http.", "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", "template.openshift.io/support-url": "https://access.redhat.com" }, "name": "datagrid72-partition" }, "labels": { - "template": "datagrid72-partition", - "xpaas": "1.4.12" + "template": "datagrid72-partition" }, "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", "parameters": [ @@ -84,18 +83,11 @@ "value": "", "required": false }, - { - "displayName": "Encryption Requires SSL Client Authentication?", - "description": "", - "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", - "value": "", - "required": false - }, { "displayName": "Memcached Cache Name", - "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "description": "The name of the cache to expose through this memcached connector", "name": "MEMCACHED_CACHE", - "value": "default", + "value": "default_memcached", "required": false }, { @@ -329,7 +321,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid72-openshift:1.0" + "name": "jboss-datagrid72-openshift:1.1" } } }, @@ -460,10 +452,6 @@ "name": "CACHE_TYPE_DEFAULT", "value": "${CACHE_TYPE_DEFAULT}" }, - { - "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", - "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" - }, { "name": "HOTROD_SERVICE_NAME", "value": "${APPLICATION_NAME}-hotrod" diff --git a/addons/xpaas/v3.10/xpaas-templates/datagrid72-postgresql-persistent.json b/addons/xpaas/v3.10/xpaas-templates/datagrid72-postgresql-persistent.json index 26e6920b51..633f7c2f81 100644 --- a/addons/xpaas/v3.10/xpaas-templates/datagrid72-postgresql-persistent.json +++ b/addons/xpaas/v3.10/xpaas-templates/datagrid72-postgresql-persistent.json @@ -5,19 +5,18 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss", - "version": "1.4.12", + "version": "1.1", "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 + PostgreSQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "An exampleRed Hat JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", - "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based application, including a deployment configuration, using PostgreSQL database using persistence and secure communication using https.", + "description": "An example Red Hat JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using PostgreSQL database for persistence and secure communication using https.", "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", "template.openshift.io/support-url": "https://access.redhat.com" }, "name": "datagrid72-postgresql-persistent" }, "labels": { - "template": "datagrid72-postgresql-persistent", - "xpaas": "1.4.12" + "template": "datagrid72-postgresql-persistent" }, "message": "A new data grid service (using PostgreSQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -216,16 +215,16 @@ }, { "displayName": "Encryption Requires SSL Client Authentication?", - "description": "", + "description": "Whether to require client certificate authentication. Defaults to false", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { "displayName": "Memcached Cache Name", - "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "description": "The name of the cache to expose through this memcached connector", "name": "MEMCACHED_CACHE", - "value": "default", + "value": "default_memcached", "required": false }, { @@ -501,7 +500,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid72-openshift:1.0" + "name": "jboss-datagrid72-openshift:1.1" } } }, diff --git a/addons/xpaas/v3.10/xpaas-templates/datagrid72-postgresql.json b/addons/xpaas/v3.10/xpaas-templates/datagrid72-postgresql.json index 394e825396..c30c68e069 100644 --- a/addons/xpaas/v3.10/xpaas-templates/datagrid72-postgresql.json +++ b/addons/xpaas/v3.10/xpaas-templates/datagrid72-postgresql.json @@ -5,19 +5,18 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.1", "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 + PostgreSQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "An exampleRed Hat JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", - "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based application, including a deployment configuration, using PostgreSQL database using ephemeral (temporary) storage and secure communication using https.", + "description": "An example Red Hat JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using PostgreSQL database with ephemeral (temporary) storage and secure communication using https.", "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", "template.openshift.io/support-url": "https://access.redhat.com" }, "name": "datagrid72-postgresql" }, "labels": { - "template": "datagrid72-postgresql", - "xpaas": "1.4.12" + "template": "datagrid72-postgresql" }, "message": "A new data grid service (using PostgreSQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -209,16 +208,16 @@ }, { "displayName": "Encryption Requires SSL Client Authentication?", - "description": "", + "description": "Whether to require client certificate authentication. Defaults to false", "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", "value": "", "required": false }, { "displayName": "Memcached Cache Name", - "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "description": "The name of the cache to expose through this memcached connector", "name": "MEMCACHED_CACHE", - "value": "default", + "value": "default_memcached", "required": false }, { @@ -494,7 +493,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-datagrid72-openshift:1.0" + "name": "jboss-datagrid72-openshift:1.1" } } }, diff --git a/addons/xpaas/v3.10/xpaas-templates/eap-camel-amq-template.json b/addons/xpaas/v3.10/xpaas-templates/eap-camel-amq-template.json index f31863dff4..62929183b5 100644 --- a/addons/xpaas/v3.10/xpaas-templates/eap-camel-amq-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/eap-camel-amq-template.json @@ -3,31 +3,31 @@ "apiVersion": "v1", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel A-MQ with EAP", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel A-MQ with EAP", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Red Hat Fuse on EAP Camel A-MQ quickstart. This example demonstrates using the camel-activemq component to connect to A-MQ xPaaS message broker running in OpenShift. It is assumed that the broker is already deployed. More more information, refer to the documentation for the A-MQ xPaaS image related to the amq63-basic template.", "tags": "quickstart,javaee,java,jboss-fuse,fis", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-eap-camel-amq" + "name": "s2i-fuse72-eap-camel-amq" }, "labels": { - "template": "s2i-fuse70-eap-camel-amq" + "template": "s2i-fuse72-eap-camel-amq" }, "parameters": [ { "displayName": "Application Name", "description": "The name for the application.", "name": "APP_NAME", - "value": "s2i-fuse70-eap-camel-amq", + "value": "s2i-fuse72-eap-camel-amq", "required": true }, { "displayName": "Application Version", "description": "The application version.", "name": "APP_VERSION", - "value": "5.1.0.fuse-000040-redhat-1", + "value": "5.2.0.fuse-720021-redhat-00001", "required": true }, { @@ -48,7 +48,7 @@ "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "GIT_REF", - "value": "wildfly-camel-examples-5.1.0.fuse-000040-redhat-1", + "value": "wildfly-camel-examples-5.2.0.fuse-720021-redhat-00001", "required": false }, { @@ -62,7 +62,7 @@ "displayName": "Builder version", "description": "The version of the FIS S2I builder image to use.", "name": "BUILDER_VERSION", - "value": "1.0" + "value": "1.2" }, { "displayName": "A-MQ Service Prefix", @@ -183,6 +183,20 @@ "value": "1.0", "required": true }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, { "name": "BUILD_MEMORY_REQUEST", "displayName": "Build Memory request", @@ -339,7 +353,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-eap-openshift:${BUILDER_VERSION}" + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" } } }, @@ -528,10 +542,12 @@ ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.10/xpaas-templates/eap-camel-cdi-template.json b/addons/xpaas/v3.10/xpaas-templates/eap-camel-cdi-template.json index a1c060ef19..590335d034 100644 --- a/addons/xpaas/v3.10/xpaas-templates/eap-camel-cdi-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/eap-camel-cdi-template.json @@ -3,31 +3,31 @@ "apiVersion": "v1", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel CDI with EAP", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel CDI with EAP", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Red Hat Fuse on EAP Camel CDI quickstart. This example demonstrates using the camel-cdi component to integrate CDI beans with Camel routes.", "tags": "quickstart,javaee,java,jboss-fuse,fis", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-eap-camel-cdi" + "name": "s2i-fuse72-eap-camel-cdi" }, "labels": { - "template": "s2i-fuse70-eap-camel-cdi" + "template": "s2i-fuse72-eap-camel-cdi" }, "parameters": [ { "displayName": "Application Name", "description": "The name for the application.", "name": "APP_NAME", - "value": "s2i-fuse70-eap-camel-cdi", + "value": "s2i-fuse72-eap-camel-cdi", "required": true }, { "displayName": "Application Version", "description": "The application version.", "name": "APP_VERSION", - "value": "5.1.0.fuse-000040-redhat-1", + "value": "5.2.0.fuse-720021-redhat-00001", "required": true }, { @@ -48,7 +48,7 @@ "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "GIT_REF", - "value": "wildfly-camel-examples-5.1.0.fuse-000040-redhat-1", + "value": "wildfly-camel-examples-5.2.0.fuse-720021-redhat-00001", "required": false }, { @@ -62,7 +62,7 @@ "displayName": "Builder version", "description": "The version of the FIS S2I builder image to use.", "name": "BUILDER_VERSION", - "value": "1.0" + "value": "1.2" }, { "displayName": "Queues", @@ -159,6 +159,20 @@ "value": "1.0", "required": true }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, { "name": "BUILD_MEMORY_REQUEST", "displayName": "Build Memory request", @@ -320,7 +334,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-eap-openshift:${BUILDER_VERSION}" + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" } } }, @@ -493,10 +507,12 @@ ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.10/xpaas-templates/eap-camel-cxf-jaxrs-template.json b/addons/xpaas/v3.10/xpaas-templates/eap-camel-cxf-jaxrs-template.json index d6f0110d8c..d31d9ae0f8 100644 --- a/addons/xpaas/v3.10/xpaas-templates/eap-camel-cxf-jaxrs-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/eap-camel-cxf-jaxrs-template.json @@ -3,31 +3,31 @@ "apiVersion": "v1", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel CXF JAX-RS with EAP", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel CXF JAX-RS with EAP", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Red Hat Fuse on EAP Camel CXF JAX-RS quickstart. This example demonstrates using the camel-cxf component to produce and consume JAX-RS REST services.", "tags": "quickstart,javaee,java,jboss-fuse,fis", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-eap-camel-cxf-jaxrs" + "name": "s2i-fuse72-eap-camel-cxf-jaxrs" }, "labels": { - "template": "s2i-fuse70-eap-camel-cxf-jaxrs" + "template": "s2i-fuse72-eap-camel-cxf-jaxrs" }, "parameters": [ { "displayName": "Application Name", "description": "The name for the application.", "name": "APP_NAME", - "value": "s2i-fuse70-eap-camel-cxf-jaxrs", + "value": "s2i-fuse72-eap-camel-cxf-jaxrs", "required": true }, { "displayName": "Application Version", "description": "The application version.", "name": "APP_VERSION", - "value": "5.1.0.fuse-000040-redhat-1", + "value": "5.2.0.fuse-720021-redhat-00001", "required": true }, { @@ -48,7 +48,7 @@ "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "GIT_REF", - "value": "wildfly-camel-examples-5.1.0.fuse-000040-redhat-1", + "value": "wildfly-camel-examples-5.2.0.fuse-720021-redhat-00001", "required": false }, { @@ -62,7 +62,7 @@ "displayName": "Builder version", "description": "The version of the FIS S2I builder image to use.", "name": "BUILDER_VERSION", - "value": "1.0" + "value": "1.2" }, { "displayName": "Queues", @@ -159,6 +159,20 @@ "value": "1.0", "required": true }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, { "name": "BUILD_MEMORY_REQUEST", "displayName": "Build Memory request", @@ -320,7 +334,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-eap-openshift:${BUILDER_VERSION}" + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" } } }, @@ -493,10 +507,12 @@ ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.10/xpaas-templates/eap-camel-cxf-jaxws-template.json b/addons/xpaas/v3.10/xpaas-templates/eap-camel-cxf-jaxws-template.json index 7b76901686..9ac86a29c4 100644 --- a/addons/xpaas/v3.10/xpaas-templates/eap-camel-cxf-jaxws-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/eap-camel-cxf-jaxws-template.json @@ -3,31 +3,31 @@ "apiVersion": "v1", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel CXF JAX-WS with EAP", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel CXF JAX-WS with EAP", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Red Hat Fuse on EAP Camel CXF JAX-WS quickstart. This example demonstrates using the camel-cxf component to produce and consume JAX-WS web services.", "tags": "quickstart,javaee,java,jboss-fuse,fis", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-eap-camel-cxf-jaxws" + "name": "s2i-fuse72-eap-camel-cxf-jaxws" }, "labels": { - "template": "s2i-fuse70-eap-camel-cxf-jaxws" + "template": "s2i-fuse72-eap-camel-cxf-jaxws" }, "parameters": [ { "displayName": "Application Name", "description": "The name for the application.", "name": "APP_NAME", - "value": "s2i-fuse70-eap-camel-cxf-jaxws", + "value": "s2i-fuse72-eap-camel-cxf-jaxws", "required": true }, { "displayName": "Application Version", "description": "The application version.", "name": "APP_VERSION", - "value": "5.1.0.fuse-000040-redhat-1", + "value": "5.2.0.fuse-720021-redhat-00001", "required": true }, { @@ -48,7 +48,7 @@ "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "GIT_REF", - "value": "wildfly-camel-examples-5.1.0.fuse-000040-redhat-1", + "value": "wildfly-camel-examples-5.2.0.fuse-720021-redhat-00001", "required": false }, { @@ -62,7 +62,7 @@ "displayName": "Builder version", "description": "The version of the FIS S2I builder image to use.", "name": "BUILDER_VERSION", - "value": "1.0" + "value": "1.2" }, { "displayName": "Queues", @@ -159,6 +159,20 @@ "value": "1.0", "required": true }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, { "name": "BUILD_MEMORY_REQUEST", "displayName": "Build Memory request", @@ -320,7 +334,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-eap-openshift:${BUILDER_VERSION}" + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" } } }, @@ -493,10 +507,12 @@ ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.10/xpaas-templates/eap-camel-jpa-template.json b/addons/xpaas/v3.10/xpaas-templates/eap-camel-jpa-template.json index e0409d0a88..d823ed5d23 100644 --- a/addons/xpaas/v3.10/xpaas-templates/eap-camel-jpa-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/eap-camel-jpa-template.json @@ -3,31 +3,31 @@ "apiVersion": "v1", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel JPA + MySQL (Ephemeral) with EAP", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel JPA + MySQL (Ephemeral) with EAP", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Red Hat Fuse on EAP Camel JPA quickstart. This example demonstrates how to connect a Camel application with Red Hat Fuse on EAP to a MySQL database and expose a REST API. This example creates two containers, one container to run as a MySQL server, and another running the Camel application which acts as as a client to the database.", "tags": "quickstart,javaee,java,jboss-fuse,fis", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-eap-camel-jpa" + "name": "s2i-fuse72-eap-camel-jpa" }, "labels": { - "template": "s2i-fuse70-eap-camel-jpa" + "template": "s2i-fuse72-eap-camel-jpa" }, "parameters": [ { "displayName": "Application Name", "description": "The name for the application.", "name": "APP_NAME", - "value": "s2i-fuse70-eap-camel-jpa", + "value": "s2i-fuse72-eap-camel-jpa", "required": true }, { "displayName": "Application Version", "description": "The application version.", "name": "APP_VERSION", - "value": "5.1.0.fuse-000040-redhat-1", + "value": "5.2.0.fuse-720021-redhat-00001", "required": true }, { @@ -48,7 +48,7 @@ "displayName": "Git Reference", "description": "Git branch/tag reference", "name": "GIT_REF", - "value": "wildfly-camel-examples-5.1.0.fuse-000040-redhat-1", + "value": "wildfly-camel-examples-5.2.0.fuse-720021-redhat-00001", "required": false }, { @@ -62,7 +62,7 @@ "displayName": "Builder version", "description": "The version of the FIS S2I builder image to use.", "name": "BUILDER_VERSION", - "value": "1.0" + "value": "1.2" }, { "displayName": "Database JNDI Name", @@ -244,6 +244,20 @@ "value": "1.0", "required": true }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, { "name": "BUILD_MEMORY_REQUEST", "displayName": "Build Memory request", @@ -437,7 +451,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-eap-openshift:${BUILDER_VERSION}" + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" } } }, @@ -646,10 +660,12 @@ ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.10/xpaas-templates/eap72-basic-s2i.json b/addons/xpaas/v3.10/xpaas-templates/eap72-basic-s2i.json new file mode 100644 index 0000000000..4356dc4e66 --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/eap72-basic-s2i.json @@ -0,0 +1,423 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss", + "version": "1.0.0", + "openshift.io/display-name": "JBoss EAP 7.2 (no https) [Tech Preview]", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss EAP 7 application. For more information about using this template, see https://github.com/jboss-container-images/jboss-eap-7-openshift-image/blob/eap72/README.adoc", + "template.openshift.io/long-description": "This template defines resources needed to develop a Red Hat JBoss Enterprise Application Platform 7.2 based application, including a build configuration, application deployment configuration and insecure communication using http.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap72-basic-s2i" + }, + "labels": { + "template": "eap72-basic-s2i", + "xpaas": "1.0.0" + }, + "message": "A new EAP based application has been created in your project.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "openshift", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "kitchensink", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all queues used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all topics used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "AMQ cluster password", + "description": "AMQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "-Dcom.redhat.xpaas.repo.jbossorg", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap72-openshift:1.0" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/eap72-https-s2i.json b/addons/xpaas/v3.10/xpaas-templates/eap72-https-s2i.json new file mode 100644 index 0000000000..2f227e8025 --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/eap72-https-s2i.json @@ -0,0 +1,611 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.0.0", + "openshift.io/display-name": "JBoss EAP 7.2 (with https) [Tech Preview]", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss EAP 7 application configured with secure communication using HTTPS. For more information about using this template, see https://github.com/jboss-container-images/jboss-eap-7-openshift-image/blob/eap72/README.adoc", + "template.openshift.io/long-description": "This template defines resources needed to develop a Red Hat JBoss Enterprise Application Platform 7.2 application, including a build configuration, application deployment configuration and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap72-https-s2i" + }, + "labels": { + "template": "eap72-https-s2i", + "xpaas": "1.0.0" + }, + "message": "A new EAP based application with SSL support has been created in your project. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "openshift", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "kitchensink", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all queues used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all topics used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "AMQ cluster password", + "description": "AMQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "-Dcom.redhat.xpaas.repo.jbossorg", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap72-openshift:1.0" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/eap72-mongodb-persistent-s2i.json b/addons/xpaas/v3.10/xpaas-templates/eap72-mongodb-persistent-s2i.json new file mode 100644 index 0000000000..e2eb735d8a --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/eap72-mongodb-persistent-s2i.json @@ -0,0 +1,902 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.0.0", + "openshift.io/display-name": "JBoss EAP 7.2 + MongoDB (with https) [Tech Preview]", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss EAP 7 application with a MongoDB database. For more information about using this template, see https://github.com/jboss-container-images/jboss-eap-7-openshift-image/blob/eap72/README.adoc.", + "template.openshift.io/long-description": "This template defines resources needed to develop a Red Hat JBoss Enterprise Application Server 7.2 based application, including a build configuration, application deployment configuration, database deployment configuration for MongoDB using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap72-mongodb-persistent-s2i" + }, + "labels": { + "template": "eap72-mongodb-persistent-s2i", + "xpaas": "1.0.0" + }, + "message": "A new EAP and persistent MongoDB based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", + "name": "DB_JNDI", + "value": "", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all queues used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all topics used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MongoDB No Preallocation", + "description": "Disable data file preallocation.", + "name": "MONGODB_NOPREALLOC", + "required": false + }, + { + "displayName": "MongoDB Small Files", + "description": "Set MongoDB to use a smaller default data file size.", + "name": "MONGODB_SMALLFILES", + "required": false + }, + { + "displayName": "MongoDB Quiet", + "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", + "name": "MONGODB_QUIET", + "required": false + }, + { + "displayName": "AMQ cluster password", + "description": "AMQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database admin password", + "description": "Database admin password", + "name": "DB_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 27017, + "targetPort": 27017 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap72-openshift:1.0" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mongodb=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mongodb" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mongodb", + "image": "mongodb", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 27017, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 3, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 27017 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mongodb/data", + "name": "${APPLICATION_NAME}-mongodb-pvol" + } + ], + "env": [ + { + "name": "MONGODB_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MONGODB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MONGODB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MONGODB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "MONGODB_NOPREALLOC", + "value": "${MONGODB_NOPREALLOC}" + }, + { + "name": "MONGODB_SMALLFILES", + "value": "${MONGODB_SMALLFILES}" + }, + { + "name": "MONGODB_QUIET", + "value": "${MONGODB_QUIET}" + } + ] + } + ], + "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}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/eap72-mongodb-s2i.json b/addons/xpaas/v3.10/xpaas-templates/eap72-mongodb-s2i.json new file mode 100644 index 0000000000..18fffd75c7 --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/eap72-mongodb-s2i.json @@ -0,0 +1,875 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.0.0", + "openshift.io/display-name": "JBoss EAP 7.2 + MongoDB (Ephemeral with https) [Tech Preview]", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss EAP 7 application with a MongoDB database. For more information about using this template, see https://github.com/jboss-container-images/jboss-eap-7-openshift-image/blob/eap72/README.adoc.", + "template.openshift.io/long-description": "This template defines resources needed to develop a Red Hat JBoss Enterprise Application Server 7.2 based application, including a build configuration, application deployment configuration, database deployment configuration for MongoDB using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap72-mongodb-s2i" + }, + "labels": { + "template": "eap72-mongodb-s2i", + "xpaas": "1.0.0" + }, + "message": "A new EAP and non-persistent MongoDB based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", + "name": "DB_JNDI", + "value": "", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all queues used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all topics used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MongoDB No Preallocation", + "description": "Disable data file preallocation.", + "name": "MONGODB_NOPREALLOC", + "required": false + }, + { + "displayName": "MongoDB Small Files", + "description": "Set MongoDB to use a smaller default data file size.", + "name": "MONGODB_SMALLFILES", + "required": false + }, + { + "displayName": "MongoDB Quiet", + "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", + "name": "MONGODB_QUIET", + "required": false + }, + { + "displayName": "AMQ cluster password", + "description": "AMQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database admin password", + "description": "Database admin password", + "name": "DB_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 27017, + "targetPort": 27017 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap72-openshift:1.0" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mongodb=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mongodb" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mongodb", + "image": "mongodb", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 27017, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 3, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 27017 + } + }, + "env": [ + { + "name": "MONGODB_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MONGODB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MONGODB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MONGODB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "MONGODB_NOPREALLOC", + "value": "${MONGODB_NOPREALLOC}" + }, + { + "name": "MONGODB_SMALLFILES", + "value": "${MONGODB_SMALLFILES}" + }, + { + "name": "MONGODB_QUIET", + "value": "${MONGODB_QUIET}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mongodb/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/eap72-mysql-persistent-s2i.json b/addons/xpaas/v3.10/xpaas-templates/eap72-mysql-persistent-s2i.json new file mode 100644 index 0000000000..7d891af913 --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/eap72-mysql-persistent-s2i.json @@ -0,0 +1,919 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss", + "version": "1.0.0", + "openshift.io/display-name": "JBoss EAP 7.2 + MySQL (with https) [Tech Preview]", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss EAP 7.2 application with a MySQL database. For more information about using this template, see https://github.com/jboss-container-images/jboss-eap-7-openshift-image/blob/eap72/README.adoc.", + "template.openshift.io/long-description": "This template defines resources needed to develop a Red Hat JBoss Enterprise Application Server 7.2 based application, including a build configuration, application deployment configuration, database deployment configuration for MySQL using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap72-mysql-persistent-s2i" + }, + "labels": { + "template": "eap72-mysql-persistent-s2i", + "xpaas": "1.0.0" + }, + "message": "A new EAP and persistent MySQL based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/TodoListDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all queues used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all topics used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "AMQ cluster password", + "description": "AMQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap72-openshift:1.0" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "DEFAULT_JOB_REPOSITORY", + "value": "${APPLICATION_NAME}-mysql" + }, + { + "name": "TIMER_SERVICE_DATA_STORE", + "value": "${APPLICATION_NAME}-mysql" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/eap72-mysql-s2i.json b/addons/xpaas/v3.10/xpaas-templates/eap72-mysql-s2i.json new file mode 100644 index 0000000000..be46abf59a --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/eap72-mysql-s2i.json @@ -0,0 +1,892 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.0.0", + "openshift.io/display-name": "JBoss EAP 7.2 + MySQL (Ephemeral with https) [Tech Preview]", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss EAP 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-container-images/jboss-eap-7-openshift-image/blob/eap72/README.adoc.", + "template.openshift.io/long-description": "This template defines resources needed to develop a Red Hat JBoss Enterprise Application Server 7.2 based application, including a build configuration, application deployment configuration, database deployment configuration for MySQL using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap72-mysql-s2i" + }, + "labels": { + "template": "eap72-mysql-s2i", + "xpaas": "1.0.0" + }, + "message": "A new EAP and non-persistent MySQL based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/TodoListDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all queues used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all topics used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "AMQ cluster password", + "description": "AMQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap72-openshift:1.0" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "DEFAULT_JOB_REPOSITORY", + "value": "${APPLICATION_NAME}-mysql" + }, + { + "name": "TIMER_SERVICE_DATA_STORE", + "value": "${APPLICATION_NAME}-mysql" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/eap72-postgresql-persistent-s2i.json b/addons/xpaas/v3.10/xpaas-templates/eap72-postgresql-persistent-s2i.json new file mode 100644 index 0000000000..9b6d336c2d --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/eap72-postgresql-persistent-s2i.json @@ -0,0 +1,892 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss", + "version": "1.0.0", + "openshift.io/display-name": "JBoss EAP 7.2 + PostgreSQL (Persistent with https) [Tech Preview]", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss EAP 7 application with a persistent PostgreSQL database. For more information about using this template, see https://github.com/jboss-container-images/jboss-eap-7-openshift-image/blob/eap72/README.adoc", + "template.openshift.io/long-description": "This template defines resources needed to develop a Red Hat JBoss Enterprise Application Platform 7.2 based application, including a build configuration, application deployment configuration, database deployment configuration for PostgreSQL using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap72-postgresql-persistent-s2i" + }, + "labels": { + "template": "eap72-postgresql-persistent-s2i", + "xpaas": "1.0.0" + }, + "message": "A new EAP and persistent PostgreSQL based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/TodoListDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all queues used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all topics used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "AMQ cluster password", + "description": "AMQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap72-openshift:1.0" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "DEFAULT_JOB_REPOSITORY", + "value": "${APPLICATION_NAME}-postgresql" + }, + { + "name": "TIMER_SERVICE_DATA_STORE", + "value": "${APPLICATION_NAME}-postgresql" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/eap72-postgresql-s2i.json b/addons/xpaas/v3.10/xpaas-templates/eap72-postgresql-s2i.json new file mode 100644 index 0000000000..68401df570 --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/eap72-postgresql-s2i.json @@ -0,0 +1,865 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.0.0", + "openshift.io/display-name": "JBoss EAP 7.2 + PostgreSQL (Ephemeral with https) [Tech Preview]", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss EAP 7 application with an PostgreSQL database configured with secure communication using https and ephemeral storage. For more information about using this template, see https://github.com/jboss-container-images/jboss-eap-7-openshift-image/blob/eap72/README.adoc", + "template.openshift.io/long-description": "This template defines resources needed to develop a Red Hat JBoss Enterprise Application Platform 7.2 based application, including a build configuration, application deployment configuration, database deployment configuration for PostgreSQL using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap72-postgresql-s2i" + }, + "labels": { + "template": "eap72-postgresql-s2i", + "xpaas": "1.0.0" + }, + "message": "A new EAP and non-persistent PostgreSQL based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/TodoListDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all queues used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all topics used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "AMQ cluster password", + "description": "AMQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap72-openshift:1.0" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "DEFAULT_JOB_REPOSITORY", + "value": "${APPLICATION_NAME}-postgresql" + }, + { + "name": "TIMER_SERVICE_DATA_STORE", + "value": "${APPLICATION_NAME}-postgresql" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/eap72-sso-s2i.json b/addons/xpaas/v3.10/xpaas-templates/eap72-sso-s2i.json new file mode 100644 index 0000000000..2daf413918 --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/eap72-sso-s2i.json @@ -0,0 +1,845 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.0.0", + "openshift.io/display-name": "JBoss EAP 7.2 + Single Sign-On (with https) [Tech Preview]", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss EAP 7 application Single Sign-On application. For more information about using this template, see https://github.com/jboss-container-images/jboss-eap-7-openshift-image/blob/eap72/README.adoc", + "template.openshift.io/long-description": "This template defines resources needed to develop a Red Hat JBoss Enterprise Application Platform 7.2 based application, including a build configuration, application deployment configuration and integrated with Red Hat Single Sign-On.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap72-sso-s2i" + }, + "labels": { + "template": "eap72-sso-s2i", + "xpaas": "1.0.0" + }, + "message": "A new EAP based application with SSL and SSO support has been created in your project. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom https Route Hostname", + "description": "Hostname for https service route (e.g. secure-eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": true + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/redhat-developer/redhat-sso-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "7.0.x-ose", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all queues used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all topics used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "AMQ cluster password", + "description": "AMQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "URL for SSO", + "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", + "name": "SSO_URL", + "value": "", + "required": true + }, + { + "displayName": "URL for SSO (internal service)", + "description": "The URL for the internal SSO service, where secure-sso (the default) is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "name": "SSO_SERVICE_URL", + "value": "https://secure-sso:8443/auth", + "required": false + }, + { + "displayName": "SSO Realm", + "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": true + }, + { + "displayName": "SSO Username", + "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", + "name": "SSO_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Password", + "description": "The password for the SSO service user.", + "name": "SSO_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Public Key", + "description": "SSO Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability", + "name": "SSO_PUBLIC_KEY", + "value": "", + "required": false + }, + { + "displayName": "SSO Bearer Only?", + "description": "SSO Client Access Type", + "name": "SSO_BEARER_ONLY", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "app-jee-jsp/target,service-jee-jaxrs/target,app-profile-jee-jsp/target,app-profile-saml-jee-jsp/target", + "required": false + }, + { + "displayName": "SSO SAML Keystore Secret", + "description": "The name of the secret containing the keystore file", + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "SSO SAML Keystore", + "description": "The name of the keystore file within the secret", + "name": "SSO_SAML_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "SSO SAML Certificate Name", + "description": "The name associated with the server certificate", + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "SSO SAML Keystore Password", + "description": "The password for the keystore and certificate", + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "SSO Client Secret", + "description": "The SSO Client Secret for Confidential Access", + "name": "SSO_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Enable CORS for SSO?", + "description": "Enable CORS for SSO applications", + "name": "SSO_ENABLE_CORS", + "value": "false", + "required": false + }, + { + "displayName": "SSO SAML Logout Page", + "description": "SSO logout page for SAML applications", + "name": "SSO_SAML_LOGOUT_PAGE", + "value": "/", + "required": false + }, + { + "displayName": "Disable SSL Validation in EAP->SSO communication", + "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "value": "true", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap72-openshift:1.0" + }, + "env": [ + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "sso-saml-keystore-volume", + "mountPath": "/etc/sso-saml-secret-volume", + "readOnly": true + }, + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HOSTNAME_HTTP", + "value": "${HOSTNAME_HTTP}" + }, + { + "name": "HOSTNAME_HTTPS", + "value": "${HOSTNAME_HTTPS}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "SSO_URL", + "value": "${SSO_URL}" + }, + { + "name": "SSO_SERVICE_URL", + "value": "${SSO_SERVICE_URL}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_USERNAME", + "value": "${SSO_USERNAME}" + }, + { + "name": "SSO_PASSWORD", + "value": "${SSO_PASSWORD}" + }, + { + "name": "SSO_PUBLIC_KEY", + "value": "${SSO_PUBLIC_KEY}" + }, + { + "name": "SSO_BEARER_ONLY", + "value": "${SSO_BEARER_ONLY}" + }, + { + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "${SSO_SAML_KEYSTORE_SECRET}" + }, + { + "name": "SSO_SAML_KEYSTORE", + "value": "${SSO_SAML_KEYSTORE}" + }, + { + "name": "SSO_SAML_KEYSTORE_DIR", + "value": "/etc/sso-saml-secret-volume" + }, + { + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "${SSO_SAML_CERTIFICATE_NAME}" + }, + { + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "value": "${SSO_SAML_KEYSTORE_PASSWORD}" + }, + { + "name": "SSO_SECRET", + "value": "${SSO_SECRET}" + }, + { + "name": "SSO_ENABLE_CORS", + "value": "${SSO_ENABLE_CORS}" + }, + { + "name": "SSO_SAML_LOGOUT_PAGE", + "value": "${SSO_SAML_LOGOUT_PAGE}" + }, + { + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "value": "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "sso-saml-keystore-volume", + "secret": { + "secretName": "${SSO_SAML_KEYSTORE_SECRET}" + } + }, + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/eap72-starter-s2i.json b/addons/xpaas/v3.10/xpaas-templates/eap72-starter-s2i.json new file mode 100644 index 0000000000..b8c6399f22 --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/eap72-starter-s2i.json @@ -0,0 +1,338 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss", + "version": "1.0.0", + "openshift.io/display-name": "JBoss EAP 7.2 Starter [Tech Preview]", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss EAP 7 application. For more information about using this template, see https://github.com/jboss-container-images/jboss-eap-7-openshift-image/blob/eap72/README.adoc", + "template.openshift.io/long-description": "This template defines resources needed to develop a JBoss Enterprise Application Platform 7.2 based application, including a build configuration, application deployment configuration and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap72-starter-s2i" + }, + "labels": { + "template": "eap72-starter-s2i", + "xpaas": "1.0.0" + }, + "message": "A new EAP based application has been created in your project.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "openshift", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "kitchensink", + "required": false + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "-Dcom.redhat.xpaas.repo.jbossorg", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + }, + "tls": { + "insecureEdgeTerminationPolicy": "Redirect", + "termination": "edge" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap72-openshift:1.0" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/eap72-third-party-db-s2i.json b/addons/xpaas/v3.10/xpaas-templates/eap72-third-party-db-s2i.json new file mode 100644 index 0000000000..2f5c7a37fd --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/eap72-third-party-db-s2i.json @@ -0,0 +1,683 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.0.0", + "openshift.io/display-name": "JBoss EAP 7.2 (with https, DB drivers) [Tech Preview]", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss EAP 7 application. For more information about using this template, see https://github.com/jboss-container-images/jboss-eap-7-openshift-image/blob/eap72/README.adoc.", + "template.openshift.io/long-description": "This template defines resources needed to develop a Red Hat JBoss Enterprise Application Server 7.2 based application, including a build configuration, application deployment configuration, using third-party DB drivers and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap72-third-party-db-s2i" + }, + "labels": { + "template": "eap72-third-party-db-s2i", + "xpaas": "1.0.0" + }, + "message": "A new EAP based application with SSL support has been created in your project. Please be sure to create the following secrets:\"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed application(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Configuration Secret Name", + "description": "The name of the secret containing configuration properties for the datasources.", + "name": "CONFIGURATION_NAME", + "value": "eap-app-config", + "required": true + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "datavirt/hibernate-webapp", + "required": false + }, + { + "displayName": "Drivers ImageStreamTag", + "description": "ImageStreamTag definition for the image containing the drivers and configuration, e.g. jboss-datavirt63-driver-openshift:1.1", + "name": "EXTENSIONS_IMAGE", + "value": "jboss-datavirt63-driver-openshift:1.1", + "required": true + }, + { + "displayName": "Drivers ImageStream Namespace", + "description": "Namespace within which the ImageStream definition for the image containing the drivers and configuration is located.", + "name": "EXTENSIONS_IMAGE_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Drivers Image Install Directory", + "description": "Full path to the directory within the extensions image where the extensions are located (e.g. install.sh, modules/, etc.)", + "name": "EXTENSIONS_INSTALL_DIR", + "value": "/extensions", + "required": true + }, + { + "displayName": "Queue Names", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP. Note that all queues used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "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. Note that all topics used by the application *must* be specified here in order to be created automatically on the remote AMQ broker.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Messaging Cluster Admin Password", + "description": "Admin password for Messaging cluster.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "A secret string used to configure the GitHub webhook.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "A secret string used to configure the Generic webhook.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore to be used for securing JGroups communications.", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the JGroups secret.", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the JGroups server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "secret-key", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "password", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "Password used by JGroups to authenticate nodes in the cluster.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/extras", + "sourcePath": "${EXTENSIONS_INSTALL_DIR}/." + } + ] + } + ] + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap72-openshift:1.0" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + } + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "configuration", + "mountPath": "/etc/eap-environment", + "readOnly": true + }, + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "ENV_FILES", + "value": "/etc/eap-environment/*" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "configuration", + "secret": { + "secretName": "${CONFIGURATION_NAME}" + } + }, + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/fis-console-cluster-template.json b/addons/xpaas/v3.10/xpaas-templates/fis-console-cluster-template.json index da0459797a..4bf0702f94 100644 --- a/addons/xpaas/v3.10/xpaas-templates/fis-console-cluster-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/fis-console-cluster-template.json @@ -3,30 +3,31 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Console (cluster)", + "openshift.io/display-name": "Red Hat Fuse 7.2 Console (cluster)", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "The Red Hat Fuse Console eases the discovery and management of FIS applications deployed on OpenShift.", + "description": "The Red Hat Fuse Console eases the discovery and management of Fuse applications deployed on OpenShift.", "tags": "hawtio,java,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "1.0" + "version": "1.2" }, - "name": "fuse70-console-cluster" - }, - "labels": { - "template": "fuse70-console" + "labels": { + "template": "fuse-console" + }, + "name": "fuse72-console-cluster" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "fuse70-console", + "value": "fuse72-console", "description": "The name assigned to the application." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0", + "required": true, + "value": "1.2", "description": "The application version." }, { @@ -65,12 +66,22 @@ { "name": "MEMORY_LIMIT", "displayName": "Memory limit", - "value": "100Mi", + "value": "32Mi", "required": true, "description": "The amount of memory the container is limited to use." } ], "objects": [ + { + "apiVersion": "v1", + "kind": "ConfigMap", + "metadata": { + "name": "${APP_NAME}-config" + }, + "data": { + "hawtconfig.json": "{\n \"about\": {\n \"title\": \"Red Hat Fuse Console\",\n \"productInfo\": [],\n \"additionalInfo\": \"The Red Hat Fuse Console eases the discovery and management of Fuse applications deployed on OpenShift.\",\n \"copyright\": \"\"\n },\n \"branding\": {\n \"appName\": \"Fuse Console\",\n \"appLogoUrl\": \"../online/img/fuse-logo.svg\"\n },\n \"disabledRoutes\": []\n}\n" + } + }, { "kind": "Route", "apiVersion": "v1", @@ -91,7 +102,7 @@ }, "tls": { "insecureEdgeTerminationPolicy": "Redirect", - "termination": "edge" + "termination": "reencrypt" } } }, @@ -105,12 +116,15 @@ "group": "console", "app": "${APP_NAME}", "version": "${APP_VERSION}" + }, + "annotations": { + "service.alpha.openshift.io/serving-cert-secret-name": "${APP_NAME}-tls" } }, "spec": { "ports": [ { - "port": 80, + "port": 443, "protocol": "TCP", "targetPort": "nginx" } @@ -160,7 +174,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-console:${APP_VERSION}" + "name": "fuse7-console:${APP_VERSION}" } } } @@ -188,25 +202,27 @@ "containers": [ { "name": "${APP_NAME}", - "image": "jboss-fuse70-console:${APP_VERSION}", + "image": "fuse7-console:${APP_VERSION}", "readinessProbe" : { "httpGet" : { "path" : "/online", - "port" : "nginx" + "port" : "nginx", + "scheme": "HTTPS" }, "initialDelaySeconds" : 5 }, "livenessProbe" : { "httpGet" : { "path" : "/online", - "port" : "nginx" + "port" : "nginx", + "scheme": "HTTPS" }, "initialDelaySeconds" : 10, "periodSeconds": 10 }, "ports": [ { - "containerPort": 8080, + "containerPort": 8443, "name": "nginx" } ], @@ -220,6 +236,22 @@ "value": "${APP_NAME}-oauth-client" } ], + "volumeMounts": [ + { + "name": "${APP_NAME}-config", + "mountPath": "/opt/app-root/src/online/online/hawtconfig.json", + "subPath": "hawtconfig.json" + }, + { + "name": "${APP_NAME}-config", + "mountPath": "/opt/app-root/src/integration/hawtconfig.json", + "subPath": "hawtconfig.json" + }, + { + "mountPath": "/etc/tls/private", + "name": "${APP_NAME}-tls" + } + ], "resources": { "requests": { "cpu": "${CPU_REQUEST}", @@ -231,11 +263,24 @@ } } } + ], + "volumes": [ + { + "name": "${APP_NAME}-config", + "configMap": { + "name": "${APP_NAME}-config" + } + }, + { + "name": "${APP_NAME}-tls", + "secret": { + "secretName": "${APP_NAME}-tls" + } + } ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/fis-console-namespace-template.json b/addons/xpaas/v3.10/xpaas-templates/fis-console-namespace-template.json index 073f983104..d0545acf10 100644 --- a/addons/xpaas/v3.10/xpaas-templates/fis-console-namespace-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/fis-console-namespace-template.json @@ -3,30 +3,31 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Console", + "openshift.io/display-name": "Red Hat Fuse 7.2 Console", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "The Red Hat Fuse Console eases the discovery and management of FIS applications deployed on OpenShift.", + "description": "The Red Hat Fuse Console eases the discovery and management of Fuse applications deployed on OpenShift.", "tags": "hawtio,java,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "1.0" + "version": "1.2" }, - "name": "fuse70-console" - }, - "labels": { - "template": "fuse70-console" + "labels": { + "template": "fuse-console" + }, + "name": "fuse72-console" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "fuse70-console", + "value": "fuse72-console", "description": "The name assigned to the application." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0", + "required": true, + "value": "1.2", "description": "The application version." }, { @@ -64,12 +65,22 @@ { "name": "MEMORY_LIMIT", "displayName": "Memory limit", - "value": "100Mi", + "value": "32Mi", "required": true, "description": "The amount of memory the container is limited to use." } ], "objects": [ + { + "apiVersion": "v1", + "kind": "ConfigMap", + "metadata": { + "name": "${APP_NAME}-config" + }, + "data": { + "hawtconfig.json": "{\n \"about\": {\n \"title\": \"Red Hat Fuse Console\",\n \"productInfo\": [],\n \"additionalInfo\": \"The Red Hat Fuse Console eases the discovery and management of Fuse applications deployed on OpenShift.\",\n \"copyright\": \"\"\n },\n \"branding\": {\n \"appName\": \"Fuse Console\",\n \"appLogoUrl\": \"../online/img/fuse-logo.svg\"\n },\n \"disabledRoutes\": []\n}\n" + } + }, { "kind": "Route", "apiVersion": "v1", @@ -90,7 +101,7 @@ }, "tls": { "insecureEdgeTerminationPolicy": "Redirect", - "termination": "edge" + "termination": "reencrypt" } } }, @@ -104,12 +115,15 @@ "group": "console", "app": "${APP_NAME}", "version": "${APP_VERSION}" + }, + "annotations": { + "service.alpha.openshift.io/serving-cert-secret-name": "${APP_NAME}-tls" } }, "spec": { "ports": [ { - "port": 80, + "port": 443, "protocol": "TCP", "targetPort": "nginx" } @@ -166,7 +180,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-console:${APP_VERSION}" + "name": "fuse7-console:${APP_VERSION}" } } } @@ -194,25 +208,27 @@ "containers": [ { "name": "${APP_NAME}", - "image": "jboss-fuse70-console:${APP_VERSION}", + "image": "fuse7-console:${APP_VERSION}", "readinessProbe" : { "httpGet" : { "path" : "/online", - "port" : "nginx" + "port" : "nginx", + "scheme": "HTTPS" }, "initialDelaySeconds" : 5 }, "livenessProbe" : { "httpGet" : { "path" : "/online", - "port" : "nginx" + "port" : "nginx", + "scheme": "HTTPS" }, "initialDelaySeconds" : 10, "periodSeconds": 10 }, "ports": [ { - "containerPort": 8080, + "containerPort": 8443, "name": "nginx" } ], @@ -234,6 +250,22 @@ "value": "${APP_NAME}-service-account" } ], + "volumeMounts": [ + { + "name": "${APP_NAME}-config", + "mountPath": "/opt/app-root/src/online/online/hawtconfig.json", + "subPath": "hawtconfig.json" + }, + { + "name": "${APP_NAME}-config", + "mountPath": "/opt/app-root/src/integration/hawtconfig.json", + "subPath": "hawtconfig.json" + }, + { + "mountPath": "/etc/tls/private", + "name": "${APP_NAME}-tls" + } + ], "resources": { "requests": { "cpu": "${CPU_REQUEST}", @@ -245,11 +277,24 @@ } } } + ], + "volumes": [ + { + "name": "${APP_NAME}-config", + "configMap": { + "name": "${APP_NAME}-config" + } + }, + { + "name": "${APP_NAME}-tls", + "secret": { + "secretName": "${APP_NAME}-tls" + } + } ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/fuse-apicurito.yml b/addons/xpaas/v3.10/xpaas-templates/fuse-apicurito.yml new file mode 100644 index 0000000000..601aa848d7 --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/fuse-apicurito.yml @@ -0,0 +1,274 @@ +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: apicurito + labels: + app: apicurito + annotations: + openshift.io/display-name: "Red Hat Fuse Apicurito" + openshift.io/provider-display-name: "Red Hat, Inc." + description: "Design beautiful, functional APIs with zero coding, using a visual designer for OpenAPI documents." + tags: "fuse,apicurio,openapi,swagger,api" + iconClass: "icon-rh-integration" + version: "1.0" +message: |- + Apicurito is now deployed to https://${ROUTE_HOSTNAME}. +parameters: +- name: APP_VERSION + displayName: Application Version + required: true + value: "1.2" + description: The application version. +- name: IMAGE_STREAM_NAMESPACE + displayName: Image Stream Namespace + value: openshift + required: true + description: Namespace in which the Fuse image streams are installed. These image streams + are normally installed in the 'openshift' namespace. You should only need to modify + this if you've installed the image streams in a different namespace/project. +- name: ROUTE_HOSTNAME + description: The The external hostname to access Apicurito + required: true +- name: CPU_REQUEST + displayName: CPU request + value: '0.2' + required: true + description: The amount of CPU to request for each container. +- name: MEMORY_REQUEST + displayName: Memory request + value: 64Mi + required: true + description: The amount of memory required for each container to run. +- name: CPU_LIMIT + displayName: CPU limit + value: '1.0' + required: true + description: The amount of CPU each container is limited to use. +- name: MEMORY_LIMIT + displayName: Memory limit + value: 256Mi + required: true + description: The amount of memory each container is limited to use. +objects: +# +# OpenShift resources need to run the apicurito-ui pod +# +- apiVersion: v1 + kind: ConfigMap + metadata: + name: apicurito-ui-config + labels: + app: apicurito + data: + config.js: | + var ApicuritoConfig = { + "generators": [ + { + "name":"Fuse 7.1 Camel Project", + "url":"/api/v1/generate/camel-project.zip" + } + ] + } +- apiVersion: apps.openshift.io/v1 + kind: DeploymentConfig + metadata: + name: apicurito-ui + labels: + app: apicurito + component: apicurito-ui + spec: + replicas: 1 + selector: + app: apicurito + component: apicurito-ui + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + app: apicurito + component: apicurito-ui + spec: + containers: + - name: apicurito-ui + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: "/" + port: 8080 + initialDelaySeconds: 30 + readinessProbe: + httpGet: + path: "/" + port: 8080 + initialDelaySeconds: 1 + ports: + - containerPort: 8080 + volumeMounts: + - mountPath: /html/config + name: config-volume + resources: + limits: + cpu: ${CPU_LIMIT} + memory: ${MEMORY_LIMIT} + requests: + cpu: ${CPU_REQUEST} + memory: ${MEMORY_REQUEST} + volumes: + - name: config-volume + configMap: + name: apicurito-ui-config + triggers: + - imageChangeParams: + automatic: true + containerNames: + - apicurito-ui + from: + kind: ImageStreamTag + name: apicurito-ui:${APP_VERSION} + namespace: ${IMAGE_STREAM_NAMESPACE} + type: ImageChange + - type: ConfigChange +- apiVersion: v1 + kind: Service + metadata: + name: apicurito-ui + labels: + app: apicurito + spec: + ports: + - port: 80 + protocol: TCP + targetPort: 8080 + selector: + app: apicurito + component: apicurito-ui +- apiVersion: route.openshift.io/v1 + kind: Route + metadata: + labels: + app: apicurito + annotations: + console.alpha.openshift.io/overview-app-route: "true" + name: apicurito + spec: + host: ${ROUTE_HOSTNAME} + tls: + termination: edge + to: + kind: Service + name: apicurito-ui +# +# OpenShift resources need to run the fuse-apicurito-generator pod +# +- apiVersion: apps.openshift.io/v1 + kind: DeploymentConfig + metadata: + name: fuse-apicurito-generator + labels: + app: apicurito + component: fuse-apicurito-generator + spec: + replicas: 1 + selector: + app: apicurito + component: fuse-apicurito-generator + strategy: + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + app: apicurito + component: fuse-apicurito-generator + spec: + containers: + - name: fuse-apicurito-generator + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 3 + httpGet: + path: /health + port: 8181 + scheme: HTTP + initialDelaySeconds: 180 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + readinessProbe: + failureThreshold: 3 + httpGet: + path: /health + port: 8181 + scheme: HTTP + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + ports: + - containerPort: 8080 + name: http + protocol: TCP + - containerPort: 9779 + name: prometheus + protocol: TCP + - containerPort: 8778 + name: jolokia + protocol: TCP + resources: + limits: + cpu: ${CPU_LIMIT} + memory: ${MEMORY_LIMIT} + requests: + cpu: ${CPU_REQUEST} + memory: ${MEMORY_REQUEST} + triggers: + - imageChangeParams: + automatic: true + containerNames: + - fuse-apicurito-generator + from: + kind: ImageStreamTag + name: fuse-apicurito-generator:${APP_VERSION} + namespace: ${IMAGE_STREAM_NAMESPACE} + type: ImageChange + - type: ConfigChange +- apiVersion: v1 + kind: Service + metadata: + name: fuse-apicurito-generator + labels: + app: apicurito + spec: + ports: + - port: 80 + protocol: TCP + targetPort: 8080 + selector: + app: apicurito + component: fuse-apicurito-generator +- apiVersion: route.openshift.io/v1 + kind: Route + metadata: + labels: + app: apicurito + name: fuse-apicurito-generator + spec: + host: ${ROUTE_HOSTNAME} + path: /api/v1 + tls: + termination: edge + to: + kind: Service + name: fuse-apicurito-generator diff --git a/addons/xpaas/v3.10/xpaas-templates/karaf-camel-amq-template.json b/addons/xpaas/v3.10/xpaas-templates/karaf-camel-amq-template.json index a10a592557..c8552cee32 100644 --- a/addons/xpaas/v3.10/xpaas-templates/karaf-camel-amq-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/karaf-camel-amq-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel A-MQ with Karaf", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel A-MQ with Karaf", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "Camel route using ActiveMQ in Karaf container. This quickstart shows how to use Camel in a Karaf Container using Blueprint to connect to the A-MQ xPaaS message broker on OpenShift that should already be installed, one simple way to run a A-MQ service is following the documentation of the A-MQ xPaaS image for OpenShift related to the amq62-basic template.", + "description": "Camel route using AMQ in Karaf container. This quickstart demonstrates how to use Camel in a Karaf Container using Blueprint to connect to EnMasse (MaaS) and use JMS messaging between two Camel routes. It requires EnMasse to have been deployed and running first.", "tags": "quickstart,java,karaf,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-karaf-camel-amq" + "name": "s2i-fuse72-karaf-camel-amq" }, "labels": { - "template": "s2i-fuse70-karaf-camel-amq" + "template": "s2i-fuse72-karaf-camel-amq" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-karaf-camel-amq", + "value": "s2i-fuse72-karaf-camel-amq", "description": "The name assigned to the application." }, { @@ -33,25 +33,19 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "karaf-camel-amq-1.0.0.fuse-000031-redhat-2", + "value": "karaf-camel-amq-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, - { - "name": "SERVICE_NAME", - "displayName": "Service Name", - "value": "s2i-fuse70-karaf-camel-amq", - "description": "Exposed Service name." - }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000031-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -85,21 +79,26 @@ "from": "[a-zA-Z0-9]{40}" }, { - "name": "ACTIVEMQ_SERVICE_NAME", - "displayName": "ActiveMQ Broker Service", + "name": "AMQP_SERVICE_NAME", + "displayName": "EnMasse Service", "required": true, - "value": "broker-amq-tcp", - "description": "Set this to the name of the TCP service of the ActiveMQ broker. You may need to create a broker first." + "description": "Set this to the route host name attached to the TCP service of the external 'messaging' route exposed by EnMasse. E.g messaging-enmasse.192.168.64.1.nip.io." + }, + { + "name": "AMQP_USERNAME", + "displayName": "EnMasse Username", + "description": "The username used to authenticate with EnMasse." }, { - "name": "ACTIVEMQ_USERNAME", - "displayName": "ActiveMQ Broker Username", - "description": "The username used to authenticate with the ActiveMQ broker. Leave it empty if authentication is disabled." + "name": "AMQP_PASSWORD", + "displayName": "EnMasse Password", + "description": "The password used to authenticate with EnMasse." }, { - "name": "ACTIVEMQ_PASSWORD", - "displayName": "ActiveMQ Broker Password", - "description": "The password used to authenticate with the ActiveMQ broker. Leave it empty if authentication is disabled." + "name": "AMQP_PARAMETERS", + "displayName": "EnMasse Parameters", + "description": "The parameters passed to EnMasse.", + "value": "transport.trustAll=true&transport.verifyHost=false&amqp.idleTimeout=120000" }, { "name": "CPU_REQUEST", @@ -215,7 +214,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-karaf-openshift:${BUILDER_VERSION}" + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -352,14 +351,17 @@ } } }, { - "name": "ACTIVEMQ_SERVICE_NAME", - "value": "${ACTIVEMQ_SERVICE_NAME}" + "name": "AMQP_SERVICE_NAME", + "value": "${AMQP_SERVICE_NAME}" + }, { + "name": "AMQP_USERNAME", + "value": "${AMQP_USERNAME}" }, { - "name": "ACTIVEMQ_USERNAME", - "value": "${ACTIVEMQ_USERNAME}" + "name": "AMQP_PASSWORD", + "value": "${AMQP_PASSWORD}" }, { - "name": "ACTIVEMQ_PASSWORD", - "value": "${ACTIVEMQ_PASSWORD}" + "name": "AMQP_PARAMETERS", + "value": "${AMQP_PARAMETERS}" } ], "resources": { "requests": { @@ -375,8 +377,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/karaf-camel-log-template.json b/addons/xpaas/v3.10/xpaas-templates/karaf-camel-log-template.json index 5654f3240c..9ec86e5cae 100644 --- a/addons/xpaas/v3.10/xpaas-templates/karaf-camel-log-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/karaf-camel-log-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel log with Karaf", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel log with Karaf", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "A simple Camel route in Karaf container. This quickstart shows a simple Apache Camel application that logs a message to the server log every 5th second.", "tags": "quickstart,java,karaf,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-karaf-camel-log" + "name": "s2i-fuse72-karaf-camel-log" }, "labels": { - "template": "s2i-fuse70-karaf-camel-log" + "template": "s2i-fuse72-karaf-camel-log" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-karaf-camel-log", + "value": "s2i-fuse72-karaf-camel-log", "description": "The name assigned to the application." }, { @@ -33,25 +33,19 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "karaf-camel-log-1.0.0.fuse-000053-redhat-2", + "value": "karaf-camel-log-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, - { - "name": "SERVICE_NAME", - "displayName": "Service Name", - "value": "s2i-fuse70-karaf-camel-log", - "description": "Exposed Service name." - }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000053-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -198,7 +192,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-karaf-openshift:${BUILDER_VERSION}" + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -349,8 +343,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/karaf-camel-rest-sql-template.json b/addons/xpaas/v3.10/xpaas-templates/karaf-camel-rest-sql-template.json index 078fc5dafa..1c317e69c7 100644 --- a/addons/xpaas/v3.10/xpaas-templates/karaf-camel-rest-sql-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/karaf-camel-rest-sql-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel REST SQL with Karaf", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel REST SQL with Karaf", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Camel example using Rest DSL with SQL Database in Karaf container. This example demonstrates how to use SQL via JDBC along with Camel's REST DSL to expose a RESTful API. The OpenShift MySQL container image should already be installed and running on your OpenShift installation, one simple way to run a MySQL service is following the documentation of the OpenShift MySQL container image related to the mysql-ephemeral template..", "tags": "quickstart,java,karaf,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-karaf-camel-rest-sql" + "name": "s2i-fuse72-karaf-camel-rest-sql" }, "labels": { - "template": "s2i-fuse70-karaf-camel-rest-sql" + "template": "s2i-fuse72-karaf-camel-rest-sql" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-karaf-camel-rest-sql", + "value": "s2i-fuse72-karaf-camel-rest-sql", "description": "The name assigned to the application." }, { @@ -33,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "karaf-camel-rest-sql-1.0.0.fuse-000049-redhat-2", + "value": "karaf-camel-rest-sql-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -69,13 +69,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000049-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -271,7 +271,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-karaf-openshift:${BUILDER_VERSION}" + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -434,8 +434,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/karaf-cxf-rest-template.json b/addons/xpaas/v3.10/xpaas-templates/karaf-cxf-rest-template.json index 3d3c23b09f..dc177e086b 100644 --- a/addons/xpaas/v3.10/xpaas-templates/karaf-cxf-rest-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/karaf-cxf-rest-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel CXF REST with Karaf", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel CXF REST with Karaf", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "REST example using CXF in Karaf container. This quickstart demonstrates how to create a RESTful (JAX-RS) web service using CXF and expose it through the OSGi HTTP Service", "tags": "quickstart,java,karaf,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-karaf-cxf-rest" + "name": "s2i-fuse72-karaf-cxf-rest" }, "labels": { - "template": "s2i-fuse70-karaf-cxf-rest" + "template": "s2i-fuse72-karaf-cxf-rest" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-karaf-cxf-rest", + "value": "s2i-fuse72-karaf-cxf-rest", "description": "The name assigned to the application." }, { @@ -33,25 +33,25 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "karaf-cxf-rest-1.0.0.fuse-000045-redhat-2", + "value": "karaf-cxf-rest-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "SERVICE_NAME", "displayName": "Service Name", - "value": "s2i-fuse70-karaf-cxf-rest", + "value": "s2i-fuse72-karaf-cxf-rest", "description": "Exposed Service name." }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000045-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -247,7 +247,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-karaf-openshift:${BUILDER_VERSION}" + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -398,8 +398,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-amq-template.json b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-amq-template.json index 00273467fb..8713f47837 100644 --- a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-amq-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-amq-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel A-MQ with Spring Boot", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel A-MQ with Spring Boot", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Spring Boot, Camel and ActiveMQ QuickStart. This quickstart demonstrates how to connect a Spring Boot application to an ActiveMQ broker and use JMS messaging between two Camel routes using OpenShift. In this example we will use two containers, one container to run as a ActiveMQ broker, and another as a client to the broker, where the Camel routes are running. This quickstart requires the ActiveMQ broker has been deployed and running first, one simple way to run a A-MQ service is following the documentation of the A-MQ xPaaS image for OpenShift related to the amq63-basic template", "tags": "quickstart,java,springboot,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-spring-boot-camel-amq" + "name": "s2i-fuse72-spring-boot-camel-amq" }, "labels": { - "template": "s2i-fuse70-spring-boot-camel-amq" + "template": "s2i-fuse72-spring-boot-camel-amq" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-spring-boot-camel-amq", + "value": "s2i-fuse72-spring-boot-camel-amq", "description": "The name assigned to the application." }, { @@ -33,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-amq-1.0.0.fuse-000145-redhat-2", + "value": "spring-boot-camel-amq-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -56,13 +56,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000145-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -207,7 +207,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -360,8 +360,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-config-template.json b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-config-template.json index 574107270e..973bca3962 100644 --- a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-config-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-config-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel + ConfigMap with Spring Boot", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel + ConfigMap with Spring Boot", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "Spring Boot and Camel using ConfigMaps and Secrets. This quickstart demonstrates how to configure a Spring Boot application using OpenShift ConfigMaps and Secrets. This example requires that a ConfigMap named camel-config and a Secret named camel-config are present in the namespace before the application is deployed, instruction about how to manually create them can be found here: https://github.com/fabric8-quickstarts/spring-boot-camel-config/blob/spring-boot-camel-config-1.0.0.fuse-000129-redhat-2/README.redhat.md ", + "description": "Spring Boot and Camel using ConfigMaps and Secrets. This quickstart demonstrates how to configure a Spring Boot application using OpenShift ConfigMaps and Secrets. This example requires that a ConfigMap named camel-config and a Secret named camel-config are present in the namespace before the application is deployed, instruction about how to manually create them can be found here: https://github.com/fabric8-quickstarts/spring-boot-camel-config/blob/spring-boot-camel-config-1.0.0.fuse-720019/README.md ", "tags": "quickstart,java,springboot,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-spring-boot-camel-config" + "name": "s2i-fuse72-spring-boot-camel-config" }, "labels": { - "template": "s2i-fuse70-spring-boot-camel-config" + "template": "s2i-fuse72-spring-boot-camel-config" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-spring-boot-camel-config", + "value": "s2i-fuse72-spring-boot-camel-config", "description": "The name assigned to the application." }, { @@ -33,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-config-1.0.0.fuse-000129-redhat-2", + "value": "spring-boot-camel-config-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -60,13 +60,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000129-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -211,7 +211,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -377,8 +377,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-drools-template.json b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-drools-template.json index 74b230a5a3..0069d90ff3 100644 --- a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-drools-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-drools-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel + Drools with Spring Boot", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel + Drools with Spring Boot", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "Spring Boot, Camel and JBoss BRMS QuickStart. This example demonstrates how you can use Apache Camel and JBoss BRMS with Spring Boot on OpenShift. Camel routes, defined via Spring, are used to pass (insert) the Body of the message as a POJO to a Drools engine for execution. A Kie Server should be deployed and configured before running the application, more information about how to configure it can be found at https://github.com/fabric8-quickstarts/spring-boot-camel-drools/blob/spring-boot-camel-drools-1.0.0.fuse-000083-redhat-2/README.redhat.md", + "description": "Spring Boot, Camel and JBoss BRMS QuickStart. This example demonstrates how you can use Apache Camel and JBoss BRMS with Spring Boot on OpenShift. Camel routes, defined via Spring, are used to pass (insert) the Body of the message as a POJO to a Drools engine for execution. A Kie Server should be deployed and configured before running the application, more information about how to configure it can be found at https://github.com/fabric8-quickstarts/spring-boot-camel-drools/blob/spring-boot-camel-drools-1.0.0.fuse-720019/README.md", "tags": "quickstart,java,springboot,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-spring-boot-camel-drools" + "name": "s2i-fuse72-spring-boot-camel-drools" }, "labels": { - "template": "s2i-fuse70-spring-boot-camel-drools" + "template": "s2i-fuse72-spring-boot-camel-drools" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-spring-boot-camel-drools", + "value": "s2i-fuse72-spring-boot-camel-drools", "description": "The name assigned to the application." }, { @@ -33,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-drools-1.0.0.fuse-000083-redhat-2", + "value": "spring-boot-camel-drools-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -59,13 +59,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000083-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -210,7 +210,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -363,8 +363,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-infinispan-template.json b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-infinispan-template.json index d2262c440d..08e380c635 100644 --- a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-infinispan-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-infinispan-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel + JDG with Spring Boot", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel + JDG with Spring Boot", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Spring Boot, Camel and JBoss Data Grid QuickStart. This quickstart demonstrates how to connect a Spring Boot application to a JBoss Data Grid (or Infinispan) server using the Hot Rod protocol. It requires that the data grid server (or cluster) has been deployed first, one simple way to run a JDG service is following the documentation of the JDG xPaaS image for OpenShift related to the datagrid65-basic template.", "tags": "quickstart,java,springboot,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-spring-boot-camel-infinispan" + "name": "s2i-fuse72-spring-boot-camel-infinispan" }, "labels": { - "template": "s2i-fuse70-spring-boot-camel-infinispan" + "template": "s2i-fuse72-spring-boot-camel-infinispan" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-spring-boot-camel-infinispan", + "value": "s2i-fuse72-spring-boot-camel-infinispan", "description": "The name assigned to the application." }, { @@ -33,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-infinispan-1.0.0.fuse-000141-redhat-2", + "value": "spring-boot-camel-infinispan-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -46,13 +46,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000141-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -197,7 +197,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -344,8 +344,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-rest-sql-template.json b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-rest-sql-template.json new file mode 100644 index 0000000000..d91c2abe72 --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-rest-sql-template.json @@ -0,0 +1,438 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel REST SQL with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel REST DSL and MySQL QuickStart. This quickstart demonstrates how to connect a Spring Boot application to a MySQL database and expose a REST API with Camel on OpenShift. In this example we will use two containers, one container to run as a MySQL server, and another as a client to the database, where the Camel routes are running. This quickstart requires the MySQL server to be deployed and started first, one simple way to run a MySQL service is following the documentation of the OpenShift MySQL container image related to the mysql-ephemeral template.", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.2" + }, + "name": "s2i-fuse72-spring-boot-camel-rest-sql" + }, + "labels": { + "template": "s2i-fuse72-spring-boot-camel-rest-sql" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse72-spring-boot-camel-rest-sql", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/fabric8-quickstarts/spring-boot-camel-rest-sql.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-rest-sql-1.0.0.fuse-720019-redhat-00001", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "SERVICE_NAME", + "displayName": "Service Name", + "value": "camel-rest-sql", + "description": "Exposed service name." + }, + { + "name": "MYSQL_SERVICE_NAME", + "displayName": "MySQL Server Service", + "required": true, + "value": "mysql", + "description": "Set this to the name of the TCP service of the MySQL server. You may need to create a server first." + }, + { + "name": "MYSQL_SERVICE_DATABASE", + "displayName": "MySQL Server Database", + "value": "sampledb", + "description": "The database hosted by the MySQL server to be used by the application." + }, + { + "name": "MYSQL_SERVICE_USERNAME", + "displayName": "MySQL Server Username", + "description": "The username used to authenticate with the MySQL server. Leave it empty if authentication is disabled." + }, + { + "name": "MYSQL_SERVICE_PASSWORD", + "displayName": "MySQL Server Password", + "description": "The password used to authenticate with the MySQL server. Leave it empty if authentication is disabled." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.2", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-720019-redhat-00001", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "apiVersion": "v1", + "kind": "Route", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}-route" + }, + "spec": { + "to": { + "kind": "Service", + "name": "${SERVICE_NAME}" + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "annotations": { + }, + "labels": { + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}" + }, + "spec": { + "clusterIP": "None", + "deprecatedPublicIPs": [], + "ports": [ + { + "port": 9411, + "protocol": "TCP", + "targetPort": 8080 + } + ], + "selector": { + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8080, + "name": "http" + }, + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + } , { + "name": "MYSQL_SERVICE_NAME", + "value": "${MYSQL_SERVICE_NAME}" + }, { + "name": "MYSQL_SERVICE_DATABASE", + "value": "${MYSQL_SERVICE_DATABASE}" + }, { + "name": "MYSQL_SERVICE_USERNAME", + "value": "${MYSQL_SERVICE_USERNAME}" + }, { + "name": "MYSQL_SERVICE_PASSWORD", + "value": "${MYSQL_SERVICE_PASSWORD}" + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-teiid-template.json b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-teiid-template.json index 3be747abdb..e606c30597 100644 --- a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-teiid-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-teiid-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel + JDV with Spring Boot", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel + JDV with Spring Boot", "openshift.io/provider-display-name": "Red Hat, Inc.", - "description": "Spring Boot, Camel and JBoss Data Virtualization QuickStart. This example demonstrates how to connect Apache Camel to a remote JBoss Data Virtualization (or Teiid) Server using the JDBC protocol. This quickstart assumes that the JDV server is already running and configured on OpenShift, more information about to setup a JDV server can be found at https://github.com/fabric8-quickstarts/spring-boot-camel-teiid/blob/spring-boot-camel-teiid-1.0.0.fuse-000075-redhat-2/README.redhat.md", + "description": "Spring Boot, Camel and JBoss Data Virtualization QuickStart. This example demonstrates how to connect Apache Camel to a remote JBoss Data Virtualization (or Teiid) Server using the JDBC protocol. This quickstart assumes that the JDV server is already running and configured on OpenShift, more information about to setup a JDV server can be found at https://github.com/fabric8-quickstarts/spring-boot-camel-teiid/blob/spring-boot-camel-teiid-1.0.0.fuse-720019/README.md", "tags": "quickstart,java,springboot,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-spring-boot-camel-teiid" + "name": "s2i-fuse72-spring-boot-camel-teiid" }, "labels": { - "template": "s2i-fuse70-spring-boot-camel-teiid" + "template": "s2i-fuse72-spring-boot-camel-teiid" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-spring-boot-camel-teiid", + "value": "s2i-fuse72-spring-boot-camel-teiid", "description": "The name assigned to the application." }, { @@ -33,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-teiid-1.0.0.fuse-000075-redhat-2", + "value": "spring-boot-camel-teiid-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -64,13 +64,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000075-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -215,7 +215,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -372,8 +372,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-template.json b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-template.json index fdc0097a14..f14c282042 100644 --- a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel with Spring Boot", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel with Spring Boot", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Spring Boot and Camel QuickStart. This example demonstrates how you can use Apache Camel with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure an application which includes a Camel route that triggers a message every 5th second, and routes the message to a log.", "tags": "quickstart,java,springboot,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-spring-boot-camel" + "name": "s2i-fuse72-spring-boot-camel" }, "labels": { - "template": "s2i-fuse70-spring-boot-camel" + "template": "s2i-fuse72-spring-boot-camel" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-spring-boot-camel", + "value": "s2i-fuse72-spring-boot-camel", "description": "The name assigned to the application." }, { @@ -33,19 +33,19 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-1.0.0.fuse-000153-redhat-2", + "value": "spring-boot-camel-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000153-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -190,7 +190,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -334,8 +334,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-xa-template.json b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-xa-template.json new file mode 100644 index 0000000000..7dcdd047cb --- /dev/null +++ b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-xa-template.json @@ -0,0 +1,591 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel on Spring Boot with XA Transactions", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel and XA Transactions. This example demonstrates how to run a Camel Service on Spring-Boot that supports XA transactions on two external transactional resources: a JMS resource (A-MQ) and a database (PostgreSQL). This quickstart requires the PostgreSQL database and the A-MQ broker have been deployed and running first, one simple way to run them is to use the templates provided in the Openshift service catalog", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.2" + }, + "name": "s2i-fuse72-spring-boot-camel-xa" + }, + "labels": { + "template": "s2i-fuse72-spring-boot-camel-xa" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse72-xa", + "description": "The name assigned to the application (max 20 characters)." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/jboss-fuse/spring-boot-camel-xa.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-xa-1.0.0.fuse-720016-redhat-00001", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "BROKER_HOST", + "displayName": "A-MQ Broker Service", + "required": true, + "value": "broker-amq-tcp", + "description": "Set this to the name of the TCP service of the A-MQ broker. You may need to create a broker first." + }, + { + "name": "BROKER_USERNAME", + "displayName": "A-MQ Broker Username", + "required": true, + "description": "The username used to authenticate with the A-MQ broker." + }, + { + "name": "BROKER_PASSWORD", + "displayName": "A-MQ Broker Password", + "required": true, + "description": "The password used to authenticate with the A-MQ broker." + }, + { + "name": "DATABASE_HOST", + "displayName": "PostgreSQL Service", + "required": true, + "value": "postgresql", + "description": "Set this to the name of the PostgreSQL service. You may need to create the database first." + }, + { + "name": "DATABASE_USERNAME", + "displayName": "PostgreSQL Username", + "required": true, + "description": "The username used to authenticate with the PostgreSQL database." + }, + { + "name": "DATABASE_PASSWORD", + "displayName": "PostgreSQL Password", + "required": true, + "description": "The password used to authenticate with the PostgreSQL database." + }, + { + "name": "VOLUME_SIZE", + "displayName": "Volume size for transaction log", + "required": true, + "value": "1Gi", + "description": "The size of the volume used to store the transaction log." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.2", + "description": "The version of the Fuse S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-720016-redhat-00001", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "lookupPolicy": { + "local": true + } + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "StatefulSet", + "apiVersion": "apps/v1beta1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "annotations": { + "image.openshift.io/triggers": "[{\"from\":{\"kind\":\"ImageStreamTag\",\"name\":\"${APP_NAME}:latest\"},\"fieldPath\":\"spec.template.spec.containers[?(@.name==\\\"${APP_NAME}\\\")].image\"}]" + } + }, + "spec": { + "podManagementPolicy": "Parallel", + "updateStrategy": { + "type": "RollingUpdate" + }, + "replicas": 1, + "selector": { + "matchLabels": { + "app": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + }, + "serviceName": "${APP_NAME}-headless", + "template": { + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "containers": [ + { + "env": [ + { + "name": "CLUSTER_RECOVERY_ENABLED", + "value": "true" + }, + { + "name": "CLUSTER_BASE_DIR", + "value": "/var/transaction/data" + }, + { + "name": "CLUSTER_NAME", + "value": "${APP_NAME}" + }, + { + "name": "CLUSTER_NODENAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "metadata.name" + } + } + }, + { + "name": "BROKER_HOST", + "value": "${BROKER_HOST}" + }, + { + "name": "BROKER_USERNAME", + "value": "${BROKER_USERNAME}" + }, + { + "name": "BROKER_PASSWORD", + "value": "${BROKER_PASSWORD}" + }, + { + "name": "DATABASE_HOST", + "value": "${DATABASE_HOST}" + }, + { + "name": "DATABASE_USERNAME", + "value": "${DATABASE_USERNAME}" + }, + { + "name": "DATABASE_PASSWORD", + "value": "${DATABASE_PASSWORD}" + }, + { + "name": "KUBERNETES_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + } + ], + "image": "${APP_NAME}:latest", + "imagePullPolicy": "Always", + "livenessProbe": { + "httpGet": { + "path": "/health", + "port": 8080, + "scheme": "HTTP" + }, + "initialDelaySeconds": 180 + }, + "name": "${APP_NAME}", + "ports": [ + { + "containerPort": 8080, + "name": "http", + "protocol": "TCP" + }, + { + "containerPort": 8778, + "name": "jolokia", + "protocol": "TCP" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health", + "port": 8080, + "scheme": "HTTP" + }, + "initialDelaySeconds": 10 + }, + "resources": { + "limits": { + "cpu": "1.0", + "memory": "256Mi" + }, + "requests": { + "cpu": "0.2", + "memory": "256Mi" + } + }, + "securityContext": { + "privileged": false + }, + "volumeMounts": [ + { + "mountPath": "/var/transaction/data", + "name": "${APP_NAME}-data" + } + ] + } + ], + "serviceAccountName": "${APP_NAME}", + "terminationGracePeriodSeconds": 180, + "volumes": [ + { + "name": "${APP_NAME}-data", + "persistentVolumeClaim": { + "claimName": "${APP_NAME}" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${APP_NAME}" + }, + "spec": { + "ports": [ + { + "name": "http", + "port": 8080, + "protocol": "TCP", + "targetPort": 8080 + } + ], + "selector": { + "app": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + } + }, + { + "apiVersion" : "v1", + "kind" : "Service", + "metadata" : { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name" : "${APP_NAME}-headless" + }, + "spec" : { + "clusterIP" : "None", + "ports" : [ { + "name" : "http", + "port" : 8080, + "protocol" : "TCP", + "targetPort" : 8080 + } ], + "selector" : { + "app" : "${APP_NAME}", + "group" : "quickstarts", + "provider" : "s2i" + } + } + }, + { + "apiVersion" : "route.openshift.io/v1", + "kind" : "Route", + "metadata" : { + "labels" : { + "component" : "${APP_NAME}", + "app" : "${APP_NAME}", + "provider" : "s2i", + "version" : "${APP_VERSION}", + "group" : "quickstarts" + }, + "name" : "${APP_NAME}" + }, + "spec" : { + "port" : { + "targetPort" : 8080 + }, + "to" : { + "kind" : "Service", + "name" : "${APP_NAME}" + } + } + }, + { + "apiVersion": "v1", + "kind": "ServiceAccount", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${APP_NAME}" + } + }, + { + "apiVersion": "v1", + "kind": "RoleBinding", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${APP_NAME}" + }, + "roleRef": { + "name": "edit" + }, + "subjects": [ + { + "kind": "ServiceAccount", + "name": "${APP_NAME}" + } + ] + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "group": "quickstarts", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "name": "${APP_NAME}" + }, + "spec": { + "accessModes": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_SIZE}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-xml-template.json b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-xml-template.json index 1e7b61efc8..f1c11330ba 100644 --- a/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-xml-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/spring-boot-camel-xml-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 Camel XML DSL with Spring Boot", + "openshift.io/display-name": "Red Hat Fuse 7.2 Camel XML DSL with Spring Boot", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Spring Boot and Camel Xml QuickStart. This example demonstrates how you can use Apache Camel with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure an application which includes a Camel route (in Spring xml) that triggers a message every 5th second, and routes the message to a log.", "tags": "quickstart,java,springboot,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-spring-boot-camel-xml" + "name": "s2i-fuse72-spring-boot-camel-xml" }, "labels": { - "template": "s2i-fuse70-spring-boot-camel-xml" + "template": "s2i-fuse72-spring-boot-camel-xml" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-spring-boot-camel-xml", + "value": "s2i-fuse72-spring-boot-camel-xml", "description": "The name assigned to the application." }, { @@ -33,19 +33,19 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-xml-1.0.0.fuse-000128-redhat-2", + "value": "spring-boot-camel-xml-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000128-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -190,7 +190,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -334,8 +334,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/spring-boot-cxf-jaxrs-template.json b/addons/xpaas/v3.10/xpaas-templates/spring-boot-cxf-jaxrs-template.json index 01ac6990ac..58cd53edd6 100644 --- a/addons/xpaas/v3.10/xpaas-templates/spring-boot-cxf-jaxrs-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/spring-boot-cxf-jaxrs-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 CXF JAX-RS with Spring Boot", + "openshift.io/display-name": "Red Hat Fuse 7.2 CXF JAX-RS with Spring Boot", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Spring Boot and CXF JAX-RS QuickStart. This example demonstrates how you can use Apache CXF JAX-RS with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure a CXF application which includes a JAX-RS endpoint with Swagger enabled.", "tags": "quickstart,java,springboot,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-spring-boot-cxf-jaxrs" + "name": "s2i-fuse72-spring-boot-cxf-jaxrs" }, "labels": { - "template": "s2i-fuse70-spring-boot-cxf-jaxrs" + "template": "s2i-fuse72-spring-boot-cxf-jaxrs" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-spring-boot-cxf-jaxrs", + "value": "s2i-fuse72-spring-boot-cxf-jaxrs", "description": "The name assigned to the application." }, { @@ -33,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-cxf-jaxrs-1.0.0.fuse-000115-redhat-2", + "value": "spring-boot-cxf-jaxrs-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -45,13 +45,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000115-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -249,7 +249,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -393,8 +393,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.10/xpaas-templates/spring-boot-cxf-jaxws-template.json b/addons/xpaas/v3.10/xpaas-templates/spring-boot-cxf-jaxws-template.json index 1a06a36538..0fd18c2239 100644 --- a/addons/xpaas/v3.10/xpaas-templates/spring-boot-cxf-jaxws-template.json +++ b/addons/xpaas/v3.10/xpaas-templates/spring-boot-cxf-jaxws-template.json @@ -3,24 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "openshift.io/display-name": "Red Hat Fuse 7.0 CXF JAX-WS with Spring Boot", + "openshift.io/display-name": "Red Hat Fuse 7.2 CXF JAX-WS with Spring Boot", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Spring Boot and CXF JAX-WS QuickStart. This example demonstrates how you can use Apache CXF JAX-WS with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure a CXF application which includes a JAX-WS endpoint.", "tags": "quickstart,java,springboot,fis,jboss-fuse", "iconClass": "icon-rh-integration", - "version": "2.0" + "version": "1.2" }, - "name": "s2i-fuse70-spring-boot-cxf-jaxws" + "name": "s2i-fuse72-spring-boot-cxf-jaxws" }, "labels": { - "template": "s2i-fuse70-spring-boot-cxf-jaxws" + "template": "s2i-fuse72-spring-boot-cxf-jaxws" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-fuse70-spring-boot-cxf-jaxws", + "value": "s2i-fuse72-spring-boot-cxf-jaxws", "description": "The name assigned to the application." }, { @@ -33,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-cxf-jaxws-1.0.0.fuse-000114-redhat-2", + "value": "spring-boot-cxf-jaxws-1.0.0.fuse-720019-redhat-00001", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -45,13 +45,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "1.0", + "value": "1.2", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.fuse-000114-redhat-2", + "value": "1.0.0.fuse-720019-redhat-00001", "description": "The application version." }, { @@ -249,7 +249,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-fuse70-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -393,8 +393,7 @@ ] } } - }, - "status": {} + } } ] } diff --git a/addons/xpaas/v3.11/xpaas-streams/amq62-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/amq62-image-stream.json new file mode 100644 index 0000000000..7df260dbfd --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/amq62-image-stream.json @@ -0,0 +1,158 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "amq62-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss AMQ 6.2.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-amq-62", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.1", + "annotations": { + "description": "JBoss A-MQ 6.2 broker image.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "supports": "amq:6.2,messaging", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-amq-6/amq62-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "JBoss A-MQ 6.2 broker image.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "supports": "amq:6.2,messaging", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-amq-6/amq62-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss A-MQ 6.2 broker image.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "supports": "amq:6.2,messaging", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-amq-6/amq62-openshift:1.3" + } + }, + { + "name": "1.4", + "annotations": { + "description": "JBoss A-MQ 6.2 broker image.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "supports": "amq:6.2,messaging", + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-amq-6/amq62-openshift:1.4" + } + }, + { + "name": "1.5", + "annotations": { + "description": "JBoss A-MQ 6.2 broker image.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "supports": "amq:6.2,messaging", + "version": "1.5", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-amq-6/amq62-openshift:1.5" + } + }, + { + "name": "1.6", + "annotations": { + "description": "JBoss A-MQ 6.2 broker image.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "supports": "amq:6.2,messaging", + "version": "1.6", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-amq-6/amq62-openshift:1.6" + } + }, + { + "name": "1.7", + "annotations": { + "description": "JBoss A-MQ 6.2 broker image.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "supports": "amq:6.2,messaging", + "version": "1.7", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-amq-6/amq62-openshift:1.7" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/amq63-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/amq63-image-stream.json new file mode 100644 index 0000000000..a148bd7fd3 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/amq63-image-stream.json @@ -0,0 +1,104 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "amq63-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss AMQ 6.3.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-amq-63", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.3", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss A-MQ 6.3 broker image.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "supports": "amq:6.3,messaging", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.3" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-amq-6/amq63-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "JBoss A-MQ 6.3 broker image.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "supports": "amq:6.3,messaging", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.3" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-amq-6/amq63-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "JBoss A-MQ 6.3 broker image.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "supports": "amq:6.3,messaging", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.3" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-amq-6/amq63-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss A-MQ 6.3 broker image.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "supports": "amq:6.3,messaging", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.3" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-amq-6/amq63-openshift:1.3" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/datagrid65-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/datagrid65-image-stream.json new file mode 100644 index 0000000000..ba7bf2f79a --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/datagrid65-image-stream.json @@ -0,0 +1,175 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "datagrid65-image-streams", + "annotations": { + "description": "ImageStream definitions for Red Hat JBoss Data Grid 6.5.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datagrid65-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.2", + "annotations": { + "description": "JBoss Data Grid 6.5 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:6.5", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-6/datagrid65-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Data Grid 6.5 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:6.5", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-6/datagrid65-openshift:1.3" + } + }, + { + "name": "1.4", + "annotations": { + "description": "JBoss Data Grid 6.5 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:6.5", + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-6/datagrid65-openshift:1.4" + } + }, + { + "name": "1.5", + "annotations": { + "description": "JBoss Data Grid 6.5 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:6.5", + "version": "1.5", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-6/datagrid65-openshift:1.5" + } + }, + { + "name": "1.6", + "annotations": { + "description": "JBoss Data Grid 6.5 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:6.5", + "version": "1.6", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-6/datagrid65-openshift:1.6" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datagrid65-client-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 Client Modules for EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Data Grid 6.5 Client Modules for EAP.", + "iconClass": "icon-datagrid", + "tags": "client,jboss,hidden", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 Client Modules for EAP" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-6/datagrid65-client-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "JBoss Data Grid 6.5 Client Modules for EAP.", + "iconClass": "icon-datagrid", + "tags": "client,jboss,hidden", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 Client Modules for EAP" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-6/datagrid65-client-openshift:1.1" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/datagrid71-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/datagrid71-image-stream.json new file mode 100644 index 0000000000..51f1f4a2e1 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/datagrid71-image-stream.json @@ -0,0 +1,140 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "datagrid71-image-streams", + "annotations": { + "description": "ImageStream definitions for Red Hat JBoss Data Grid 7.1.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datagrid71-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.1", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Data Grid 7.1 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:7.1", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-7/datagrid71-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "JBoss Data Grid 7.1 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:7.1", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-7/datagrid71-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "JBoss Data Grid 7.1 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:7.1", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-7/datagrid71-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Data Grid 7.1 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:7.1", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-7/datagrid71-openshift:1.3" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datagrid71-client-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.1 Client Modules for EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Data Grid 7.1 Client Modules for EAP.", + "iconClass": "icon-datagrid", + "tags": "client,jboss,hidden", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.1 Client Modules for EAP" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-7/datagrid71-client-openshift:1.0" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/datagrid72-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/datagrid72-image-stream.json new file mode 100644 index 0000000000..0ef18455a2 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/datagrid72-image-stream.json @@ -0,0 +1,65 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "datagrid72-image-streams", + "annotations": { + "description": "ImageStream definitions for Red Hat JBoss Data Grid 7.2.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datagrid72-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.1" + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat JBoss Data Grid 7.2 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:7.2", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-7/datagrid72-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat JBoss Data Grid 7.2 S2I images.", + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "supports": "datagrid:7.2", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datagrid-7/datagrid72-openshift:1.1" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/datavirt63-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/datavirt63-image-stream.json new file mode 100644 index 0000000000..ad5979fedf --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/datavirt63-image-stream.json @@ -0,0 +1,175 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "datavirt63-image-streams", + "annotations": { + "description": "ImageStream definitions for Red Hat JBoss Data Virtualization 6.3.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datavirt63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", + "iconClass": "icon-datavirt", + "tags": "datavirt,jboss,hidden", + "supports": "datavirt:6.3", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datavirt-6/datavirt63-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", + "iconClass": "icon-datavirt", + "tags": "datavirt,jboss,hidden", + "supports": "datavirt:6.3", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datavirt-6/datavirt63-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", + "iconClass": "icon-datavirt", + "tags": "datavirt,jboss,hidden", + "supports": "datavirt:6.3", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datavirt-6/datavirt63-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", + "iconClass": "icon-datavirt", + "tags": "datavirt,jboss,hidden", + "supports": "datavirt:6.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datavirt-6/datavirt63-openshift:1.3" + } + }, + { + "name": "1.4", + "annotations": { + "description": "Red Hat JBoss Data Virtualization 6.3 S2I images.", + "iconClass": "icon-datavirt", + "tags": "datavirt,jboss,hidden", + "supports": "datavirt:6.3", + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datavirt-6/datavirt63-openshift:1.4" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-datavirt63-driver-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP.", + "iconClass": "icon-datavirt", + "tags": "client,jboss,hidden", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datavirt-6/datavirt63-driver-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP.", + "iconClass": "icon-datavirt", + "tags": "client,jboss,hidden", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-datavirt-6/datavirt63-driver-openshift:1.1" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/decisionserver62-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/decisionserver62-image-stream.json new file mode 100644 index 0000000000..e0d8c327d3 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/decisionserver62-image-stream.json @@ -0,0 +1,52 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "decisionserver62-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss BRMS 6.2 decision server.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-decisionserver62-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.2", + "annotations": { + "description": "Red Hat JBoss BRMS 6.2 decision server S2I images.", + "iconClass": "icon-decisionserver", + "tags": "builder,decisionserver,hidden", + "supports": "decisionserver:6.2", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "decisionserver/hellorules", + "sampleRef": "1.2", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-decisionserver-6/decisionserver62-openshift:1.2" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/decisionserver63-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/decisionserver63-image-stream.json new file mode 100644 index 0000000000..398e700a21 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/decisionserver63-image-stream.json @@ -0,0 +1,74 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "decisionserver63-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss BRMS 6.3 decision server.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-decisionserver63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.3", + "annotations": { + "description": "Red Hat JBoss BRMS 6.3 decision server S2I images.", + "iconClass": "icon-decisionserver", + "tags": "builder,decisionserver,hidden", + "supports": "decisionserver:6.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "decisionserver/hellorules", + "sampleRef": "1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-decisionserver-6/decisionserver63-openshift:1.3" + } + }, + { + "name": "1.4", + "annotations": { + "description": "Red Hat JBoss BRMS 6.3 decision server S2I images.", + "iconClass": "icon-decisionserver", + "tags": "builder,decisionserver,java,hidden", + "supports": "decisionserver:6.3,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "decisionserver/hellorules", + "sampleRef": "1.3", + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-decisionserver-6/decisionserver63-openshift:1.4" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/decisionserver64-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/decisionserver64-image-stream.json new file mode 100644 index 0000000000..676243fcec --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/decisionserver64-image-stream.json @@ -0,0 +1,116 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "decisionserver64-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss BRMS 6.4 decision server.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-decisionserver64-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BRMS 6.4 decision server", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat JBoss BRMS 6.4 decision server S2I images.", + "iconClass": "icon-decisionserver", + "tags": "builder,decisionserver,java,hidden", + "supports": "decisionserver:6.4,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "decisionserver/hellorules", + "sampleRef": "1.3", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.4 decision server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-decisionserver-6/decisionserver64-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat JBoss BRMS 6.4 decision server S2I images.", + "iconClass": "icon-decisionserver", + "tags": "builder,decisionserver,java,hidden", + "supports": "decisionserver:6.4,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "decisionserver/hellorules", + "sampleRef": "1.3", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.4 decision server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-decisionserver-6/decisionserver64-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat JBoss BRMS 6.4 decision server S2I images.", + "iconClass": "icon-decisionserver", + "tags": "builder,decisionserver,java,hidden", + "supports": "decisionserver:6.4,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "decisionserver/hellorules", + "sampleRef": "1.3", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.4 decision server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-decisionserver-6/decisionserver64-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "description": "Red Hat JBoss BRMS 6.4 decision server S2I images.", + "iconClass": "icon-decisionserver", + "tags": "builder,decisionserver,java,hidden", + "supports": "decisionserver:6.4,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "decisionserver/hellorules", + "sampleRef": "1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.4 decision server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-decisionserver-6/decisionserver64-openshift:1.3" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/eap70-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/eap70-image-stream.json new file mode 100644 index 0000000000..3b9db71cde --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/eap70-image-stream.json @@ -0,0 +1,137 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "eap70-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss EAP 7.0.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-eap70-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss EAP 7.0", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.3", + "annotations": { + "description": "JBoss EAP 7.0 S2I images.", + "iconClass": "icon-eap", + "tags": "builder,eap,javaee,java,jboss,hidden", + "supports": "eap:7.0,javaee:7,java:8", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.0.0.GA", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-eap-7/eap70-openshift:1.3" + } + }, + { + "name": "1.4", + "annotations": { + "description": "JBoss EAP 7.0 S2I images.", + "iconClass": "icon-eap", + "tags": "builder,eap,javaee,java,jboss,hidden", + "supports": "eap:7.0,javaee:7,java:8", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.0.0.GA", + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-eap-7/eap70-openshift:1.4" + } + }, + { + "name": "1.5", + "annotations": { + "description": "JBoss EAP 7.0 S2I images.", + "iconClass": "icon-eap", + "tags": "builder,eap,javaee,java,jboss,hidden", + "supports": "eap:7.0,javaee:7,java:8", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.0.0.GA", + "version": "1.5", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-eap-7/eap70-openshift:1.5" + } + }, + { + "name": "1.6", + "annotations": { + "description": "JBoss EAP 7.0 S2I images.", + "iconClass": "icon-eap", + "tags": "builder,eap,javaee,java,jboss,hidden", + "supports": "eap:7.0,javaee:7,java:8", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.0.0.GA", + "version": "1.6", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-eap-7/eap70-openshift:1.6" + } + }, + { + "name": "1.7", + "annotations": { + "description": "JBoss EAP 7.0 S2I images.", + "iconClass": "icon-eap", + "tags": "builder,eap,javaee,java,jboss,hidden", + "supports": "eap:7.0,javaee:7,java:8", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.0.0.GA", + "version": "1.7", + "openshift.io/display-name": "Red Hat JBoss EAP 7.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-eap-7/eap70-openshift:1.7" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/eap71-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/eap71-image-stream.json new file mode 100644 index 0000000000..f02c6d0d7d --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/eap71-image-stream.json @@ -0,0 +1,116 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "eap71-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss EAP 7.1.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-eap71-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss EAP 7.1", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "latest", + "annotations": { + "description": "JBoss EAP 7.1 S2I image (latest).", + "iconClass": "icon-eap", + "tags": "builder,eap,javaee,java,jboss,hidden", + "supports": "eap:7.1,javaee:7,java:8", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.1.0.GA", + "version": "latest", + "openshift.io/display-name": "Red Hat JBoss EAP 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-eap-7/eap71-openshift:latest" + } + }, + { + "name": "1.1", + "annotations": { + "description": "JBoss EAP 7.1 S2I image.", + "iconClass": "icon-eap", + "tags": "builder,eap,javaee,java,jboss,hidden", + "supports": "eap:7.1,javaee:7,java:8", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.1.0.GA", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss EAP 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-eap-7/eap71-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "JBoss EAP 7.1 S2I image.", + "iconClass": "icon-eap", + "tags": "builder,eap,javaee,java,jboss,hidden", + "supports": "eap:7.1,javaee:7,java:8", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.1.0.GA", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss EAP 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-eap-7/eap71-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss EAP 7.1 S2I image.", + "iconClass": "icon-eap", + "tags": "builder,eap,javaee,java,jboss,hidden", + "supports": "eap:7.1,javaee:7,java:8", + "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", + "sampleContextDir": "kitchensink", + "sampleRef": "7.1.0.GA", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss EAP 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-eap-7/eap71-openshift:1.3" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/fis-image-streams.json b/addons/xpaas/v3.11/xpaas-streams/fis-image-streams.json new file mode 100644 index 0000000000..6021102d93 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/fis-image-streams.json @@ -0,0 +1,402 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "jboss-fuse-image-streams", + "annotations": { + "description": "ImageStream definitions for Red Hat Fuse." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fis-java-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 6.3 Java", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 6.2.1 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 6.2.1 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", + "supports":"jboss-fuse:6.2.1,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-fuse-6/fis-java-openshift:1.0" + } + }, + { + "name": "2.0", + "annotations": { + "description": "Red Hat Fuse 6.3 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 6.3 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", + "supports":"jboss-fuse:6.3.0,java:8,xpaas:1.2", + "version": "2.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-fuse-6/fis-java-openshift:2.0" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-fuse70-java-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.0 Java", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-java-openshift:1.0" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fis-karaf-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 6.3 Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 6.2.1 Karaf S2I image.", + "openshift.io/display-name": "Red Hat Fuse 6.2.1 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", + "supports":"jboss-fuse:6.2.1,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-fuse-6/fis-karaf-openshift:1.0" + } + }, + { + "name": "2.0", + "annotations": { + "description": "Red Hat Fuse 6.3 Karaf S2I images.", + "openshift.io/display-name": "Red Hat Fuse 6.3 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", + "supports":"jboss-fuse:6.3.0,java:8,xpaas:1.2", + "version": "2.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-fuse-6/fis-karaf-openshift:2.0" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-fuse70-karaf-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.0 Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Karaf S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-karaf-openshift:1.0" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-fuse70-eap-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.0 EAP", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 EAP S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 EAP", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,eap,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-eap-openshift:1.0" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-fuse70-console", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.0 Console", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Console image.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Console", + "iconClass": "icon-rh-integration", + "tags": "jboss-fuse,hawtio,java,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-console:1.0" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-java-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 Java", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-java-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-java-openshift:1.1" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-karaf-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Karaf S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-karaf-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 Karaf S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-karaf-openshift:1.1" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-eap-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 EAP", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 EAP S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 EAP", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,eap,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-eap-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 EAP S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.1 EAP", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,eap,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-eap-openshift:1.1" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-console", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 Console", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Console image.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Console", + "iconClass": "icon-rh-integration", + "tags": "jboss-fuse,hawtio,java,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-console:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 Console image.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Console", + "iconClass": "icon-rh-integration", + "tags": "jboss-fuse,hawtio,java,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/fuse7/fuse-console:1.1" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/jws30-tomcat7-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/jws30-tomcat7-image-stream.json new file mode 100644 index 0000000000..ff953ff468 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/jws30-tomcat7-image-stream.json @@ -0,0 +1,92 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "webserver30-tomcat7-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss Web Server 3.0 Apache Tomcat 7.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-webserver30-tomcat7-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Apache Tomcat 7", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.1", + "annotations": { + "description": "JBoss Web Server 3.0 Apache Tomcat 7 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat7,java,jboss,hidden", + "supports": "tomcat7:3.0,tomcat:7,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Apache Tomcat 7" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver30-tomcat7-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "JBoss Web Server 3.0 Apache Tomcat 7 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat7,java,jboss,hidden", + "supports": "tomcat7:3.0,tomcat:7,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Apache Tomcat 7" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver30-tomcat7-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Web Server 3.0 Apache Tomcat 7 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat7,java,jboss,hidden", + "supports": "tomcat7:3.0,tomcat:7,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 ApacheTomcat 7" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver30-tomcat7-openshift:1.3" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/jws30-tomcat8-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/jws30-tomcat8-image-stream.json new file mode 100644 index 0000000000..48b3f0a9d3 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/jws30-tomcat8-image-stream.json @@ -0,0 +1,92 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "webserver30-tomcat8-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss Web Server 3.0 Apache Tomcat 8.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-webserver30-tomcat8-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Apache Tomcat 8", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.1", + "annotations": { + "description": "JBoss Web Server 3.0 Apache Tomcat 8 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat8,java,jboss,hidden", + "supports": "tomcat8:3.0,tomcat:8,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Apache Tomcat 8" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver30-tomcat8-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "JBoss Web Server 3.0 Apache Tomcat 8 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat8,java,jboss,hidden", + "supports": "tomcat8:3.0,tomcat:8,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Apache Tomcat 8" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver30-tomcat8-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "description": "JBoss Web Server 3.0 Apache Tomcat 8 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat8,java,jboss,hidden", + "supports": "tomcat8:3.0,tomcat:8,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Apache Tomcat 8" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver30-tomcat8-openshift:1.3" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/jws31-tomcat7-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/jws31-tomcat7-image-stream.json new file mode 100644 index 0000000000..60443daad1 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/jws31-tomcat7-image-stream.json @@ -0,0 +1,92 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "webserver31-tomcat7-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss Web Server 3.1 Apache Tomcat 7.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-webserver31-tomcat7-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss Web Server 3.1 Apache Tomcat 7", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Web Server 3.1 Apache Tomcat 7 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat7,java,jboss,hidden", + "supports": "tomcat7:3.1,tomcat:7,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.1 Apache Tomcat 7" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver31-tomcat7-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "JBoss Web Server 3.1 Apache Tomcat 7 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat7,java,jboss,hidden", + "supports": "tomcat7:3.1,tomcat:7,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.1 Apache Tomcat 7" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver31-tomcat7-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "JBoss Web Server 3.1 Apache Tomcat 7 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat7,java,jboss,hidden", + "supports": "tomcat7:3.1,tomcat:7,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.1 Apache Tomcat 7" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver31-tomcat7-openshift:1.2" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/jws31-tomcat8-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/jws31-tomcat8-image-stream.json new file mode 100644 index 0000000000..d736822f88 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/jws31-tomcat8-image-stream.json @@ -0,0 +1,92 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "webserver31-tomcat8-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss Web Server 3.1 Apache Tomcat 8.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-webserver31-tomcat8-openshift", + "annotations": { + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "JBoss Web Server 3.1 Apache Tomcat 8 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat8,java,jboss,hidden", + "supports": "tomcat8:3.1,tomcat:8,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.0", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver31-tomcat8-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "JBoss Web Server 3.1 Apache Tomcat 8 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat8,java,jboss,hidden", + "supports": "tomcat8:3.1,tomcat:8,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.1 Apache Tomcat 8" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver31-tomcat8-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "JBoss Web Server 3.1 Apache Tomcat 8 S2I images.", + "iconClass": "icon-rh-tomcat", + "tags": "builder,tomcat,tomcat8,java,jboss,hidden", + "supports": "tomcat8:3.1,tomcat:8,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "tomcat-websocket-chat", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.1 Apache Tomcat 8" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-webserver-3/webserver31-tomcat8-openshift:1.2" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/openjdk18-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/openjdk18-image-stream.json new file mode 100644 index 0000000000..b1b9b7aa6d --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/openjdk18-image-stream.json @@ -0,0 +1,191 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "openjdk18-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat OpenJDK 8.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redhat-openjdk18-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-rh-openjdk", + "tags": "builder,java,openjdk,hidden", + "supports": "java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "1.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-openjdk-18/openjdk18-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-rh-openjdk", + "tags": "builder,java,openjdk,hidden", + "supports": "java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "1.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-openjdk-18/openjdk18-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-rh-openjdk", + "tags": "builder,java,openjdk,hidden", + "supports": "java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "1.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-openjdk-18/openjdk18-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-rh-openjdk", + "tags": "builder,java,openjdk,hidden", + "supports": "java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "1.3" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-openjdk-18/openjdk18-openshift:1.3" + } + }, + { + "name": "1.4", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-rh-openjdk", + "tags": "builder,java,openjdk,hidden", + "supports": "java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "1.4" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-openjdk-18/openjdk18-openshift:1.4" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "java", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "8", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-rh-openjdk", + "tags": "builder,java,openjdk", + "supports": "java:8,java", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "8" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-openjdk-18/openjdk18-openshift:latest" + } + }, + { + "name": "latest", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-rh-openjdk", + "tags": "builder,java,openjdk", + "supports": "java:8,java", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "latest" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "ImageStreamTag", + "name": "java:8" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/processserver63-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/processserver63-image-stream.json new file mode 100644 index 0000000000..d8320915de --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/processserver63-image-stream.json @@ -0,0 +1,74 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "processserver63-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss BPM Suite 6.3 intelligent process server.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-processserver63-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.3", + "annotations": { + "description": "Red Hat JBoss BPM Suite 6.3 intelligent process server S2I images.", + "iconClass": "icon-processserver", + "tags": "builder,processserver,hidden", + "supports": "processserver:6.3", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "processserver/library", + "sampleRef": "1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-processserver-6/processserver63-openshift:1.3" + } + }, + { + "name": "1.4", + "annotations": { + "description": "Red Hat JBoss BPM Suite 6.3 intelligent process server S2I images.", + "iconClass": "icon-processserver", + "tags": "builder,processserver,java,hidden", + "supports": "processserver:6.3,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "processserver/library", + "sampleRef": "1.3", + "version": "1.4", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-processserver-6/processserver63-openshift:1.4" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/processserver64-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/processserver64-image-stream.json new file mode 100644 index 0000000000..bc593150a8 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/processserver64-image-stream.json @@ -0,0 +1,116 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "processserver64-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat JBoss BPM Suite 6.4 intelligent process server.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-processserver64-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.4 intelligent process server", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat JBoss BPM Suite 6.4 intelligent process server S2I images.", + "iconClass": "icon-processserver", + "tags": "builder,processserver,java,hidden", + "supports": "processserver:6.4,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "processserver/library", + "sampleRef": "1.3", + "version": "1.0", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.4 intelligent process server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-processserver-6/processserver64-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat JBoss BPM Suite 6.4 intelligent process server S2I images.", + "iconClass": "icon-processserver", + "tags": "builder,processserver,java,hidden", + "supports": "processserver:6.4,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "processserver/library", + "sampleRef": "1.3", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.4 intelligent process server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-processserver-6/processserver64-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat JBoss BPM Suite 6.4 intelligent process server S2I images.", + "iconClass": "icon-processserver", + "tags": "builder,processserver,java,hidden", + "supports": "processserver:6.4,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "processserver/library", + "sampleRef": "1.3", + "version": "1.2", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.4 intelligent process server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-processserver-6/processserver64-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "description": "Red Hat JBoss BPM Suite 6.4 intelligent process server S2I images.", + "iconClass": "icon-processserver", + "tags": "builder,processserver,java,hidden", + "supports": "processserver:6.4,java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "sampleContextDir": "processserver/library", + "sampleRef": "1.3", + "version": "1.3", + "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.4 intelligent process server" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/jboss-processserver-6/processserver64-openshift:1.3" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/rhdm70-image-streams.yaml b/addons/xpaas/v3.11/xpaas-streams/rhdm70-image-streams.yaml new file mode 100644 index 0000000000..98e629b540 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/rhdm70-image-streams.yaml @@ -0,0 +1,74 @@ +kind: List +apiVersion: v1 +metadata: + name: rhdm70-image-streams + annotations: + description: ImageStream definitions for Red Hat Decision Manager 7.0 + openshift.io/provider-display-name: Red Hat, Inc. +items: +- kind: ImageStream + apiVersion: v1 + metadata: + name: rhdm70-decisioncentral-openshift + annotations: + openshift.io/display-name: Red Hat Decision Manager Central 7.0 + openshift.io/provider-display-name: Red Hat, Inc. + spec: + tags: + - name: '1.0' + annotations: + description: Red Hat Decision Manager 7.0 - Decision Central image. + iconClass: icon-jboss + tags: rhdm,xpaas + supports: rhdm:7.0,xpaas:1.4 + version: '1.0' + from: + kind: DockerImage + name: registry.redhat.io/rhdm-7/rhdm70-decisioncentral-openshift:1.0 + referencePolicy: + type: Local + - name: '1.1' + annotations: + description: Red Hat Decision Manager 7.0 - Decision Central image. + iconClass: icon-jboss + tags: rhdm,xpaas + supports: rhdm:7.0,xpaas:1.4 + version: '1.1' + from: + kind: DockerImage + name: registry.redhat.io/rhdm-7/rhdm70-decisioncentral-openshift:1.1 + referencePolicy: + type: Local +- kind: ImageStream + apiVersion: v1 + metadata: + name: rhdm70-kieserver-openshift + annotations: + openshift.io/display-name: Red Hat Decision Manager KIE Server 7.0 + openshift.io/provider-display-name: Red Hat, Inc. + spec: + tags: + - name: '1.0' + annotations: + description: Red Hat Decision Manager 7.0 - KIE Server image. + iconClass: icon-jboss + tags: rhdm,xpaas + supports: rhdm:7.0,xpaas:1.4 + version: '1.0' + from: + kind: DockerImage + name: registry.redhat.io/rhdm-7/rhdm70-kieserver-openshift:1.0 + referencePolicy: + type: Local + - name: '1.1' + annotations: + description: Red Hat Decision Manager 7.0 - KIE Server image. + iconClass: icon-jboss + tags: rhdm,xpaas + supports: rhdm:7.0,xpaas:1.4 + version: '1.1' + from: + kind: DockerImage + name: registry.redhat.io/rhdm-7/rhdm70-kieserver-openshift:1.1 + referencePolicy: + type: Local diff --git a/addons/xpaas/v3.11/xpaas-streams/rhpam70-image-streams.yaml b/addons/xpaas/v3.11/xpaas-streams/rhpam70-image-streams.yaml new file mode 100644 index 0000000000..c1f353be2d --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/rhpam70-image-streams.yaml @@ -0,0 +1,122 @@ +kind: List +apiVersion: v1 +metadata: + name: rhpam70-image-streams + annotations: + description: ImageStream definitions for Red Hat Process Automation Manager 7.0 + openshift.io/provider-display-name: Red Hat, Inc. +items: +- kind: ImageStream + apiVersion: v1 + metadata: + name: rhpam70-businesscentral-openshift + annotations: + openshift.io/display-name: Red Hat Process Automation Manager Business Central 7.0 + openshift.io/provider-display-name: Red Hat, Inc. + spec: + tags: + - name: '1.0' + annotations: + description: Red Hat Process Automation Manager 7.0 - Business Central image. + iconClass: icon-jboss + tags: rhpam,xpaas + supports: rhpam:7.0,xpaas:1.4 + version: '1.0' + from: + kind: DockerImage + name: registry.redhat.io/rhpam-7/rhpam70-businesscentral-openshift:1.0 +- kind: ImageStream + apiVersion: v1 + metadata: + name: rhpam70-businesscentral-monitoring-openshift + annotations: + openshift.io/display-name: Red Hat Process Automation Manager Business Central Monitoring 7.0 + openshift.io/provider-display-name: Red Hat, Inc. + spec: + tags: + - name: '1.0' + annotations: + description: Red Hat Process Automation Manager 7.0 - Business Central Monitoring image. + iconClass: icon-jboss + tags: rhpam,xpaas + supports: rhpam:7.0,xpaas:1.4 + version: '1.0' + from: + kind: DockerImage + name: registry.redhat.io/rhpam-7/rhpam70-businesscentral-monitoring-openshift:1.0 +- kind: ImageStream + apiVersion: v1 + metadata: + name: rhpam70-controller-openshift + annotations: + openshift.io/display-name: Red Hat Process Automation Manager Standalone Controller 7.0 + openshift.io/provider-display-name: Red Hat, Inc. + spec: + tags: + - name: '1.0' + annotations: + description: Red Hat Process Automation Manager 7.0 - Standalone Controller image. + iconClass: icon-jboss + tags: rhpam,xpaas + supports: rhpam:7.0,xpaas:1.4 + version: '1.0' + from: + kind: DockerImage + name: registry.redhat.io/rhpam-7/rhpam70-controller-openshift:1.0 +- kind: ImageStream + apiVersion: v1 + metadata: + name: rhpam70-kieserver-openshift + annotations: + openshift.io/display-name: Red Hat Process Automation Manager KIE Server 7.0 + openshift.io/provider-display-name: Red Hat, Inc. + spec: + tags: + - name: '1.0' + annotations: + description: Red Hat Process Automation Manager 7.0 - KIE Server image. + iconClass: icon-jboss + tags: rhpam,xpaas + supports: rhpam:7.0,xpaas:1.4 + version: '1.0' + from: + kind: DockerImage + name: registry.redhat.io/rhpam-7/rhpam70-kieserver-openshift:1.0 +- kind: ImageStream + apiVersion: v1 + metadata: + name: rhpam70-smartrouter-openshift + annotations: + openshift.io/display-name: Red Hat Process Automation Manager Smart Router 7.0 + openshift.io/provider-display-name: Red Hat, Inc. + spec: + tags: + - name: '1.0' + annotations: + description: Red Hat Process Automation Manager 7.0 - Smart Router image. + iconClass: icon-jboss + tags: rhpam,xpaas + supports: rhpam:7.0,xpaas:1.4 + version: '1.0' + from: + kind: DockerImage + name: registry.redhat.io/rhpam-7/rhpam70-smartrouter-openshift:1.0 +- kind: ImageStream + apiVersion: v1 + metadata: + name: rhpam70-businesscentral-indexing-openshift + annotations: + openshift.io/display-name: Red Hat Process Automation Manager Business Central Indexing 7.0 + openshift.io/provider-display-name: Red Hat, Inc. + spec: + tags: + - name: '1.0' + annotations: + description: Red Hat Process Automation Manager 7.0 - Business Central Indexing image. + iconClass: icon-jboss + tags: rhpam,xpaas + supports: rhpam:7.0,xpaas:1.4 + version: '1.0' + from: + kind: DockerImage + name: registry.redhat.io/rhpam-7/rhpam70-businesscentral-indexing-openshift:1.0 diff --git a/addons/xpaas/v3.11/xpaas-streams/sso70-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/sso70-image-stream.json new file mode 100644 index 0000000000..be9ca3c1b7 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/sso70-image-stream.json @@ -0,0 +1,69 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "sso70-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat Single Sign-On 7.0.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redhat-sso70-openshift", + "annotations": { + "description": "Red Hat SSO 7.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.3", + "annotations": { + "description": "Red Hat SSO 7.0", + "iconClass": "icon-sso", + "tags": "sso,keycloak,redhat,hidden", + "supports": "sso:7.0", + "version": "1.3", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-sso-7/sso70-openshift:1.3" + } + }, + { + "name": "1.4", + "annotations": { + "description": "Red Hat SSO 7.0", + "iconClass": "icon-sso", + "tags": "sso,keycloak,redhat,hidden", + "supports": "sso:7.0", + "version": "1.4", + "openshift.io/display-name": "Red Hat Single Sign-On 7.0" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-sso-7/sso70-openshift:1.4" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/sso71-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/sso71-image-stream.json new file mode 100644 index 0000000000..884a78ff7c --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/sso71-image-stream.json @@ -0,0 +1,105 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "sso71-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat Single Sign-On 7.1.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redhat-sso71-openshift", + "annotations": { + "description": "Red Hat SSO 7.1", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat SSO 7.1", + "iconClass": "icon-sso", + "tags": "sso,keycloak,redhat,hidden", + "supports": "sso:7.1", + "version": "1.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-sso-7/sso71-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat SSO 7.1", + "iconClass": "icon-sso", + "tags": "sso,keycloak,redhat,hidden", + "supports": "sso:7.1", + "version": "1.1", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-sso-7/sso71-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat SSO 7.1", + "iconClass": "icon-sso", + "tags": "sso,keycloak,redhat,hidden", + "supports": "sso:7.1", + "version": "1.2", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-sso-7/sso71-openshift:1.2" + } + }, + { + "name": "1.3", + "annotations": { + "description": "Red Hat SSO 7.1", + "iconClass": "icon-sso", + "tags": "sso,keycloak,redhat,hidden", + "supports": "sso:7.1", + "version": "1.3", + "openshift.io/display-name": "Red Hat Single Sign-On 7.1" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-sso-7/sso71-openshift:1.3" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-streams/sso72-image-stream.json b/addons/xpaas/v3.11/xpaas-streams/sso72-image-stream.json new file mode 100644 index 0000000000..2e61c1d7e0 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-streams/sso72-image-stream.json @@ -0,0 +1,87 @@ +{ + "kind": "List", + "apiVersion": "v1", + "metadata": { + "name": "sso72-image-stream", + "annotations": { + "description": "ImageStream definition for Red Hat Single Sign-On 7.2.", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "items": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "redhat-sso72-openshift", + "annotations": { + "description": "Red Hat SSO 7.2", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat SSO 7.2", + "iconClass": "icon-sso", + "tags": "sso,keycloak,redhat,hidden", + "supports": "sso:7.2", + "version": "1.0", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-sso-7/sso72-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat SSO 7.2", + "iconClass": "icon-sso", + "tags": "sso,keycloak,redhat,hidden", + "supports": "sso:7.2", + "version": "1.1", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-sso-7/sso72-openshift:1.1" + } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat SSO 7.2", + "iconClass": "icon-sso", + "tags": "sso,keycloak,redhat,hidden", + "supports": "sso:7.2", + "version": "1.2", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2" + }, + "referencePolicy": { + "type": "Local" + }, + "from": { + "kind": "DockerImage", + "name": "registry.redhat.io/redhat-sso-7/sso72-openshift:1.2" + } + } + ] + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/amq62-basic.json b/addons/xpaas/v3.11/xpaas-templates/amq62-basic.json new file mode 100644 index 0000000000..5ce6206e28 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/amq62-basic.json @@ -0,0 +1,372 @@ +{ + "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-amq", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "tags": "messaging,amq,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss A-MQ 6.2 (Ephemeral, no SSL)" + }, + "name": "amq62-basic" + }, + "labels": { + "template": "amq62-basic", + "xpaas": "1.4.14" + }, + "message": "A new messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "broker", + "required": true + }, + { + "displayName": "A-MQ Protocols", + "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Serializable Packages", + "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Store Usage Limit", + "description": "Sets the store disk limit usage in activemq.xml. If the value set is greater than the disk size, it will be resized to the available disk space.", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Queue Memory Limit", + "description": "The queue memory limit (default is 1mb)", + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + } + ], + "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.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Rolling", + "rollingParams": { + "maxSurge": 0 + } + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-amq" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.7" + } + } + }, + { + "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", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "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": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" + }, + { + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "${AMQ_QUEUE_MEMORY_LIMIT}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/amq62-persistent-ssl.json b/addons/xpaas/v3.11/xpaas-templates/amq62-persistent-ssl.json new file mode 100644 index 0000000000..c769675cd7 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/amq62-persistent-ssl.json @@ -0,0 +1,718 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss A-MQ 6.2 (with SSL)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss A-MQ 6.2 based application, including a deployment configuration, using persistence and secure communication using SSL.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-amq/", + "template.openshift.io/support-url": "https://access.redhat.com" + + }, + "name": "amq62-persistent-ssl" + }, + "labels": { + "template": "amq62-persistent-ssl", + "xpaas": "1.4.14" + }, + "message": "A new persistent messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "broker", + "required": true + }, + { + "displayName": "Split Data?", + "description": "Split the data directory for each node in a mesh, this is now the default behaviour.", + "name": "AMQ_SPLIT", + "value": "true", + "required": false + }, + { + "displayName": "A-MQ Protocols", + "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Serializable Packages", + "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "Secret Name", + "description": "Name of a secret containing SSL related files", + "name": "AMQ_SECRET", + "value": "amq-app-secret", + "required": true + }, + { + "displayName": "Trust Store Filename", + "description": "SSL trust store filename", + "name": "AMQ_TRUSTSTORE", + "value": "broker.ts", + "required": true + }, + { + "displayName": "Trust Store Password", + "description": "SSL trust store password", + "name": "AMQ_TRUSTSTORE_PASSWORD", + "value": "", + "required": true + }, + { + "displayName": "A-MQ Keystore Filename", + "description": "SSL key store filename", + "name": "AMQ_KEYSTORE", + "value": "broker.ks", + "required": true + }, + { + "displayName": "A-MQ Keystore Password", + "description": "Password for accessing SSL keystore", + "name": "AMQ_KEYSTORE_PASSWORD", + "value": "", + "required": true + }, + { + "displayName": "A-MQ Store Usage Limit", + "description": "Sets the store disk limit usage in activemq.xml. If the value set is greater than the disk size, it will be resized to the available disk space.", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Queue Memory Limit", + "description": "The queue memory limit (default is 1mb)", + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + } + ], + "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": 5671, + "targetPort": 5671 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-amqp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's AMQP SSL 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": 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." + } + } + }, + { + "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": 61612, + "targetPort": 61612 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-stomp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's STOMP SSL 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": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 61617, + "targetPort": 61617 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-tcp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's OpenWire (SSL) port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp-ssl\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Rolling", + "rollingParams": { + "maxSurge": 0 + } + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-amq" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.7" + } + } + }, + { + "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": [ + { + "name": "broker-secret-volume", + "mountPath": "/etc/amq-secret-volume", + "readOnly": true + }, + { + "mountPath": "/opt/amq/data", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "amqp-ssl", + "containerPort": 5671, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "mqtt-ssl", + "containerPort": 8883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "stomp-ssl", + "containerPort": 61612, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + }, + { + "name": "tcp-ssl", + "containerPort": 61617, + "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": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "AMQ_SPLIT", + "value": "${AMQ_SPLIT}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_KEYSTORE_TRUSTSTORE_DIR", + "value": "/etc/amq-secret-volume" + }, + { + "name": "AMQ_TRUSTSTORE", + "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}" + }, + { + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "${AMQ_QUEUE_MEMORY_LIMIT}" + } + ] + } + ], + "volumes": [ + { + "name": "broker-secret-volume", + "secret": { + "secretName": "${AMQ_SECRET}" + } + }, + { + "name": "${APPLICATION_NAME}-amq-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-amq-claim" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-drainer", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-drainer" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.7" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-drainer" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-drainer", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-drainer", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-drainer", + "image": "jboss-amq-62", + "command": [ + "/opt/amq/bin/drain.sh" + ], + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "mountPath": "/opt/amq/data", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AMQ_USER", + "value": "${MQ_USERNAME}" + }, + { + "name": "AMQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + } + ] + } + ], + "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": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/amq62-persistent.json b/addons/xpaas/v3.11/xpaas-templates/amq62-persistent.json new file mode 100644 index 0000000000..9e70b78ff5 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/amq62-persistent.json @@ -0,0 +1,532 @@ +{ + "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, including message migration when the number of pods are reduced. This template doesn't feature SSL support.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss A-MQ 6.2 (no SSL)", + "openshift.io/provider-display-name": "Red Hat, Inc." + }, + "name": "amq62-persistent" + }, + "labels": { + "template": "amq62-persistent", + "xpaas": "1.4.14" + }, + "message": "A new persistent messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "broker", + "required": true + }, + { + "displayName": "Split Data?", + "description": "Split the data directory for each node in a mesh, this is now the default behaviour.", + "name": "AMQ_SPLIT", + "value": "true", + "required": false + }, + { + "displayName": "A-MQ Protocols", + "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Serializable Packages", + "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Store Usage Limit", + "description": "Sets the store disk limit usage in activemq.xml. If the value set is greater than the disk size, it will be resized to the available disk space.", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Queue Memory Limit", + "description": "The queue memory limit (default is 1mb)", + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + } + ], + "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.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Rolling", + "rollingParams": { + "maxSurge": 0 + } + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-amq" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.7" + } + } + }, + { + "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", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "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": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "AMQ_SPLIT", + "value": "${AMQ_SPLIT}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" + }, + { + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "${AMQ_QUEUE_MEMORY_LIMIT}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-amq-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-amq-claim" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-drainer", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-drainer" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.7" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-drainer" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-drainer", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-drainer", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-drainer", + "image": "jboss-amq-62", + "command": [ + "/opt/amq/bin/drain.sh" + ], + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "mountPath": "/opt/amq/data", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AMQ_USER", + "value": "${MQ_USERNAME}" + }, + { + "name": "AMQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + } + ] + } + ], + "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": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/amq62-ssl.json b/addons/xpaas/v3.11/xpaas-templates/amq62-ssl.json new file mode 100644 index 0000000000..5c0cf8674f --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/amq62-ssl.json @@ -0,0 +1,558 @@ +{ + "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 supports SSL and requires usage of OpenShift secrets.", + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss A-MQ 6.2 (Ephemeral with SSL)", + "openshift.io/provider-display-name": "Red Hat, Inc." + }, + "name": "amq62-ssl" + }, + "labels": { + "template": "amq62-ssl", + "xpaas": "1.4.14" + }, + "message": "A new messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "broker", + "required": true + }, + { + "displayName": "A-MQ Protocols", + "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. SSL variants of these protocols will be configured automaticaly.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Serializable Packages", + "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "Secret Name", + "description": "Name of a secret containing SSL related files", + "name": "AMQ_SECRET", + "value": "amq-app-secret", + "required": true + }, + { + "displayName": "Trust Store Filename", + "description": "SSL trust store filename", + "name": "AMQ_TRUSTSTORE", + "value": "broker.ts", + "required": true + }, + { + "displayName": "Trust Store Password", + "description": "SSL trust store password", + "name": "AMQ_TRUSTSTORE_PASSWORD", + "value": "", + "required": true + }, + { + "displayName": "A-MQ Keystore Filename", + "description": "SSL key store filename", + "name": "AMQ_KEYSTORE", + "value": "broker.ks", + "required": true + }, + { + "displayName": "A-MQ Keystore Password", + "description": "Password for accessing SSL keystore", + "name": "AMQ_KEYSTORE_PASSWORD", + "value": "", + "required": true + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Store Usage Limit", + "description": "Sets the store disk limit usage in activemq.xml. If the value set is greater than the disk size, it will be resized to the available disk space.", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Queue Memory Limit", + "description": "The queue memory limit (default is 1mb)", + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + } + ], + "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": 5671, + "targetPort": 5671 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-amqp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's AMQP SSL 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": 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." + } + } + }, + { + "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": 61612, + "targetPort": 61612 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-stomp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's STOMP SSL 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": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 61617, + "targetPort": 61617 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-tcp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's OpenWire (SSL) port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp-ssl\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Rolling", + "rollingParams": { + "maxSurge": 0 + } + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-amq" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-62:1.7" + } + } + }, + { + "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": [ + { + "name": "broker-secret-volume", + "mountPath": "/etc/amq-secret-volume", + "readOnly": true + } + ], + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "amqp-ssl", + "containerPort": 5671, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "mqtt-ssl", + "containerPort": 8883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "stomp-ssl", + "containerPort": 61612, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + }, + { + "name": "tcp-ssl", + "containerPort": 61617, + "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": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_KEYSTORE_TRUSTSTORE_DIR", + "value": "/etc/amq-secret-volume" + }, + { + "name": "AMQ_TRUSTSTORE", + "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}" + }, + { + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "${AMQ_QUEUE_MEMORY_LIMIT}" + } + ] + } + ], + "volumes": [ + { + "name": "broker-secret-volume", + "secret": { + "secretName": "${AMQ_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/amq63-basic.json b/addons/xpaas/v3.11/xpaas-templates/amq63-basic.json new file mode 100644 index 0000000000..e47e798bc9 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/amq63-basic.json @@ -0,0 +1,372 @@ +{ + "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-amq", + "tags": "messaging,amq,jboss", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat JBoss A-MQ 6.3 (Ephemeral, no SSL)", + "openshift.io/provider-display-name": "Red Hat, Inc." + }, + "name": "amq63-basic" + }, + "labels": { + "template": "amq63-basic", + "xpaas": "1.4.14" + }, + "message": "A new messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "broker", + "required": true + }, + { + "displayName": "A-MQ Protocols", + "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Serializable Packages", + "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Store Usage Limit", + "description": "Sets the store disk limit usage in activemq.xml. If the value set is greater than the disk size, it will be resized to the available disk space.", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Queue Memory Limit", + "description": "The queue memory limit (default is 1mb)", + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + } + ], + "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.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Rolling", + "rollingParams": { + "maxSurge": 0 + } + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-amq" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-63:1.3" + } + } + }, + { + "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-63", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "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": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" + }, + { + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "${AMQ_QUEUE_MEMORY_LIMIT}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/amq63-persistent-ssl.json b/addons/xpaas/v3.11/xpaas-templates/amq63-persistent-ssl.json new file mode 100644 index 0000000000..c16b79ef2b --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/amq63-persistent-ssl.json @@ -0,0 +1,717 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss A-MQ 6.3 (with SSL)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss A-MQ 6.3 based application, including a deployment configuration, using persistence and secure communication using SSL.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-amq/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "amq63-persistent-ssl" + }, + "labels": { + "template": "amq63-persistent-ssl", + "xpaas": "1.4.14" + }, + "message": "A new persistent messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "broker", + "required": true + }, + { + "displayName": "Split Data?", + "description": "Split the data directory for each node in a mesh, this is now the default behaviour.", + "name": "AMQ_SPLIT", + "value": "true", + "required": false + }, + { + "displayName": "A-MQ Protocols", + "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Serializable Packages", + "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "Secret Name", + "description": "Name of a secret containing SSL related files", + "name": "AMQ_SECRET", + "value": "amq-app-secret", + "required": true + }, + { + "displayName": "Trust Store Filename", + "description": "SSL trust store filename", + "name": "AMQ_TRUSTSTORE", + "value": "broker.ts", + "required": true + }, + { + "displayName": "Trust Store Password", + "description": "SSL trust store password", + "name": "AMQ_TRUSTSTORE_PASSWORD", + "value": "", + "required": true + }, + { + "displayName": "A-MQ Keystore Filename", + "description": "SSL key store filename", + "name": "AMQ_KEYSTORE", + "value": "broker.ks", + "required": true + }, + { + "displayName": "A-MQ Keystore Password", + "description": "Password for accessing SSL keystore", + "name": "AMQ_KEYSTORE_PASSWORD", + "value": "", + "required": true + }, + { + "displayName": "A-MQ Store Usage Limit", + "description": "Sets the store disk limit usage in activemq.xml. If the value set is greater than the disk size, it will be resized to the available disk space.", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Queue Memory Limit", + "description": "The queue memory limit (default is 1mb)", + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + } + ], + "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": 5671, + "targetPort": 5671 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-amqp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's AMQP SSL 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": 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." + } + } + }, + { + "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": 61612, + "targetPort": 61612 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-stomp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's STOMP SSL 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": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 61617, + "targetPort": 61617 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-tcp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's OpenWire (SSL) port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp-ssl\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Rolling", + "rollingParams": { + "maxSurge": 0 + } + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-amq" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-63:1.3" + } + } + }, + { + "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-63", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "broker-secret-volume", + "mountPath": "/etc/amq-secret-volume", + "readOnly": true + }, + { + "mountPath": "/opt/amq/data", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "amqp-ssl", + "containerPort": 5671, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "mqtt-ssl", + "containerPort": 8883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "stomp-ssl", + "containerPort": 61612, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + }, + { + "name": "tcp-ssl", + "containerPort": 61617, + "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": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "AMQ_SPLIT", + "value": "${AMQ_SPLIT}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_KEYSTORE_TRUSTSTORE_DIR", + "value": "/etc/amq-secret-volume" + }, + { + "name": "AMQ_TRUSTSTORE", + "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}" + }, + { + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "${AMQ_QUEUE_MEMORY_LIMIT}" + } + ] + } + ], + "volumes": [ + { + "name": "broker-secret-volume", + "secret": { + "secretName": "${AMQ_SECRET}" + } + }, + { + "name": "${APPLICATION_NAME}-amq-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-amq-claim" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-drainer", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-drainer" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-63:1.3" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-drainer" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-drainer", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-drainer", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-drainer", + "image": "jboss-amq-63", + "command": [ + "/opt/amq/bin/drain.sh" + ], + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "mountPath": "/opt/amq/data", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AMQ_USER", + "value": "${MQ_USERNAME}" + }, + { + "name": "AMQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + } + ] + } + ], + "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": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/amq63-persistent.json b/addons/xpaas/v3.11/xpaas-templates/amq63-persistent.json new file mode 100644 index 0000000000..88f007301b --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/amq63-persistent.json @@ -0,0 +1,535 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss A-MQ 6.3 (no SSL)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss A-MQ 6.3 based application, including a deployment configuration and using persistence.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-amq/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "amq63-persistent" + }, + "labels": { + "template": "amq63-persistent", + "xpaas": "1.4.14" + }, + "message": "A new persistent messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "broker", + "required": true + }, + { + "displayName": "Split Data?", + "description": "Split the data directory for each node in a mesh, this is now the default behaviour.", + "name": "AMQ_SPLIT", + "value": "true", + "required": false + }, + { + "displayName": "A-MQ Protocols", + "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Serializable Packages", + "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Store Usage Limit", + "description": "Sets the store disk limit usage in activemq.xml. If the value set is greater than the disk size, it will be resized to the available disk space.", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Queue Memory Limit", + "description": "The queue memory limit (default is 1mb)", + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + } + ], + "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.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Rolling", + "rollingParams": { + "maxSurge": 0 + } + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-amq" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-63:1.3" + } + } + }, + { + "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-63", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "mountPath": "/opt/amq/data", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "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": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "AMQ_SPLIT", + "value": "${AMQ_SPLIT}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" + }, + { + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "${AMQ_QUEUE_MEMORY_LIMIT}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-amq-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-amq-claim" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-drainer", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-drainer" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-63:1.3" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-drainer" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-drainer", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-drainer", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-drainer", + "image": "jboss-amq-63", + "command": [ + "/opt/amq/bin/drain.sh" + ], + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "mountPath": "/opt/amq/data", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AMQ_USER", + "value": "${MQ_USERNAME}" + }, + { + "name": "AMQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + } + ] + } + ], + "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": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/amq63-ssl.json b/addons/xpaas/v3.11/xpaas-templates/amq63-ssl.json new file mode 100644 index 0000000000..aec17e08a7 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/amq63-ssl.json @@ -0,0 +1,561 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-amq", + "tags": "messaging,amq,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss A-MQ 6.3 (Ephemeral with SSL)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss A-MQ 6.2 based application, including a deployment configuration, using ephemeral (temporary) storage and secure communication using SSL. These can be deployed as standalone or in a mesh.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-amq/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "amq63-ssl" + }, + "labels": { + "template": "amq63-ssl", + "xpaas": "1.4.14" + }, + "message": "A new messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "broker", + "required": true + }, + { + "displayName": "A-MQ Protocols", + "description": "Protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. SSL variants of these protocols will be configured automaticaly.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. If left empty, queues will be still created dynamically.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. If left empty, topics will be still created dynamically.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Serializable Packages", + "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "Secret Name", + "description": "Name of a secret containing SSL related files", + "name": "AMQ_SECRET", + "value": "amq-app-secret", + "required": true + }, + { + "displayName": "Trust Store Filename", + "description": "SSL trust store filename", + "name": "AMQ_TRUSTSTORE", + "value": "broker.ts", + "required": true + }, + { + "displayName": "Trust Store Password", + "description": "SSL trust store password", + "name": "AMQ_TRUSTSTORE_PASSWORD", + "value": "", + "required": true + }, + { + "displayName": "A-MQ Keystore Filename", + "description": "SSL key store filename", + "name": "AMQ_KEYSTORE", + "value": "broker.ks", + "required": true + }, + { + "displayName": "A-MQ Keystore Password", + "description": "Password for accessing SSL keystore", + "name": "AMQ_KEYSTORE_PASSWORD", + "value": "", + "required": true + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Store Usage Limit", + "description": "Sets the store disk limit usage in activemq.xml. If the value set is greater than the disk size, it will be resized to the available disk space.", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Queue Memory Limit", + "description": "The queue memory limit (default is 1mb)", + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + } + ], + "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": 5671, + "targetPort": 5671 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-amqp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's AMQP SSL 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": 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." + } + } + }, + { + "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": 61612, + "targetPort": 61612 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-stomp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's STOMP SSL 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": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 61617, + "targetPort": 61617 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-tcp-ssl", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The broker's OpenWire (SSL) port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-amqp-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-mqtt-ssl\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-stomp-ssl\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Rolling", + "rollingParams": { + "maxSurge": 0 + } + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-amq" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-63:1.3" + } + } + }, + { + "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-63", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "name": "broker-secret-volume", + "mountPath": "/etc/amq-secret-volume", + "readOnly": true + } + ], + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "amqp-ssl", + "containerPort": 5671, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "mqtt-ssl", + "containerPort": 8883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "stomp-ssl", + "containerPort": 61612, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + }, + { + "name": "tcp-ssl", + "containerPort": 61617, + "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": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_KEYSTORE_TRUSTSTORE_DIR", + "value": "/etc/amq-secret-volume" + }, + { + "name": "AMQ_TRUSTSTORE", + "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}" + }, + { + "name": "AMQ_QUEUE_MEMORY_LIMIT", + "value": "${AMQ_QUEUE_MEMORY_LIMIT}" + } + ] + } + ], + "volumes": [ + { + "name": "broker-secret-volume", + "secret": { + "secretName": "${AMQ_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid65-basic.json b/addons/xpaas/v3.11/xpaas-templates/datagrid65-basic.json new file mode 100644 index 0000000000..cd6cc610de --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid65-basic.json @@ -0,0 +1,411 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "description": "Application template for JDG 6.5 applications.", + "tags": "datagrid,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 6.5 (Ephemeral, no https)", + "openshift.io/provider-display-name": "Red Hat, Inc." + }, + "name": "datagrid65-basic" + }, + "labels": { + "template": "datagrid65-basic", + "xpaas": "1.4.14" + }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-openshift:1.6" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid65-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid65-https.json b/addons/xpaas/v3.11/xpaas-templates/datagrid65-https.json new file mode 100644 index 0000000000..f4444f13d9 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid65-https.json @@ -0,0 +1,592 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "description": "Application template for JDG 6.5 applications.", + "tags": "datagrid,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 6.5 (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc." + }, + "name": "datagrid65-https" + }, + "labels": { + "template": "datagrid65-https", + "xpaas": "1.4.14" + }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-openshift:1.6" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid65-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid65-mysql-persistent.json b/addons/xpaas/v3.11/xpaas-templates/datagrid65-mysql-persistent.json new file mode 100644 index 0000000000..f655a0a886 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid65-mysql-persistent.json @@ -0,0 +1,912 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 6.5 + MySQL (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 6.5 based application, including a deployment configuration, using MySQL databased using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid65-mysql-persistent" + }, + "labels": { + "template": "datagrid65-mysql-persistent", + "xpaas": "1.4.14" + }, + "message": "A new data grid service (using MySQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:/jboss/datasources/mysql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-openshift:1.6" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid65-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid65-mysql.json b/addons/xpaas/v3.11/xpaas-templates/datagrid65-mysql.json new file mode 100644 index 0000000000..cbaf0b5fd3 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid65-mysql.json @@ -0,0 +1,882 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "description": "Application template for JDG 6.5 and MySQL applications.", + "tags": "datagrid,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 6.5 + MySQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc." + }, + "name": "datagrid65-mysql" + }, + "labels": { + "template": "datagrid65-mysql", + "xpaas": "1.4.14" + }, + "message": "A new data grid service (using MySQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:/jboss/datasources/mysql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-openshift:1.6" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid65-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid65-postgresql-persistent.json b/addons/xpaas/v3.11/xpaas-templates/datagrid65-postgresql-persistent.json new file mode 100644 index 0000000000..2e304d7900 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid65-postgresql-persistent.json @@ -0,0 +1,884 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "description": "Application template for JDG 6.5 and PostgreSQL applications with persistent storage.", + "tags": "datagrid,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 6.5 + PostgreSQL (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 6.5 based application, including a deployment configuration, using PostgreSQL database using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid65-postgresql-persistent" + }, + "labels": { + "template": "datagrid65-postgresql-persistent", + "xpaas": "1.4.14" + }, + "message": "A new data grid service (using PostgreSQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/postgresql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-openshift:1.6" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid65-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid65-postgresql.json b/addons/xpaas/v3.11/xpaas-templates/datagrid65-postgresql.json new file mode 100644 index 0000000000..68987f7909 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid65-postgresql.json @@ -0,0 +1,853 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "description": "Application template for JDG 6.5 and PostgreSQL applications built using.", + "tags": "datagrid,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 6.5 + PostgreSQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc." + }, + "name": "datagrid65-postgresql" + }, + "labels": { + "template": "datagrid65-postgresql", + "xpaas": "1.4.14" + }, + "message": "A new data grid service (using PostgreSQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/postgresql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configurd for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-openshift:1.6" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid65-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid71-basic.json b/addons/xpaas/v3.11/xpaas-templates/datagrid71-basic.json new file mode 100644 index 0000000000..188b76467a --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid71-basic.json @@ -0,0 +1,458 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 7.1 (Ephemeral, no https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.1 based application, including a deployment configuration, using using ephemeral (temporary) storage and communication using http.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid71-basic" + }, + "labels": { + "template": "datagrid71-basic", + "xpaas": "1.4.14" + }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid71-openshift:1.3" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid71-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid71-https.json b/addons/xpaas/v3.11/xpaas-templates/datagrid71-https.json new file mode 100644 index 0000000000..952f9e866d --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid71-https.json @@ -0,0 +1,639 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 7.1 (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.1 based application, including a deployment configuration, using using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid71-https" + }, + "labels": { + "template": "datagrid71-https", + "xpaas": "1.4.14" + }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid71-openshift:1.3" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid71-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid71-mysql-persistent.json b/addons/xpaas/v3.11/xpaas-templates/datagrid71-mysql-persistent.json new file mode 100644 index 0000000000..94bbffb281 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid71-mysql-persistent.json @@ -0,0 +1,956 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 7.1 + MySQL (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.1 based application, including a deployment configuration, using MySQL databased using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid71-mysql-persistent" + }, + "labels": { + "template": "datagrid71-mysql-persistent", + "xpaas": "1.4.14" + }, + "message": "A new data grid service (using MySQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:/jboss/datasources/mysql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid71-openshift:1.3" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid71-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid71-mysql.json b/addons/xpaas/v3.11/xpaas-templates/datagrid71-mysql.json new file mode 100644 index 0000000000..6bebf6610c --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid71-mysql.json @@ -0,0 +1,929 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 7.1 + MySQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.1 based application, including a deployment configuration, using MySQL databased using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid71-mysql" + }, + "labels": { + "template": "datagrid71-mysql", + "xpaas": "1.4.14" + }, + "message": "A new data grid service (using MySQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:/jboss/datasources/mysql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid71-openshift:1.3" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid71-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid71-partition.json b/addons/xpaas/v3.11/xpaas-templates/datagrid71-partition.json new file mode 100644 index 0000000000..eac110083c --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid71-partition.json @@ -0,0 +1,539 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 7.1 (Ephemeral, no https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.1 based application, including a deployment configuration, using using ephemeral (temporary) storage and communication using http.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid71-partition" + }, + "labels": { + "template": "datagrid71-partition", + "xpaas": "1.4.14" + }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "ADMIN_GROUP", + "description": "Comma delimited list of groups/roles for the Application Realm User", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "HOTROD_AUTHENTICATION", + "description": "True/False for HotRod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "CONTAINER_SECURITY_ROLE_MAPPER", + "description": "Container Role Mapper", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "CONTAINER_SECURITY_ROLES", + "description": "Comma Delimited List of Container Roles", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datagrid Volume Size", + "description": "Size of the volume used by Datagrid for persisting metadata.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Split Data?", + "description": "Split the data directory for each node in a mesh, this is now the default behaviour.", + "name": "DATAGRID_SPLIT", + "value": "true", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8787, + "targetPort": 8787 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-debug", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid71-openshift:1.3" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid71-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "mountPath": "/opt/datagrid/standalone/partitioned_data", + "name": "${APPLICATION_NAME}-datagrid-pvol" + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + }, + { + "name": "debug", + "containerPort": 8787, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "DATAGRID_SPLIT", + "value": "${DATAGRID_SPLIT}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-datagrid-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-datagrid-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-datagrid-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid71-postgresql-persistent.json b/addons/xpaas/v3.11/xpaas-templates/datagrid71-postgresql-persistent.json new file mode 100644 index 0000000000..c53ae4b9ed --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid71-postgresql-persistent.json @@ -0,0 +1,927 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 7.1 + PostgreSQL (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.1 based application, including a deployment configuration, using PostgreSQL database using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid71-postgresql-persistent" + }, + "labels": { + "template": "datagrid71-postgresql-persistent", + "xpaas": "1.4.14" + }, + "message": "A new data grid service (using PostgreSQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/postgresql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid71-openshift:1.3" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid71-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid71-postgresql.json b/addons/xpaas/v3.11/xpaas-templates/datagrid71-postgresql.json new file mode 100644 index 0000000000..157e68ae30 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid71-postgresql.json @@ -0,0 +1,900 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Grid 7.1 + PostgreSQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.1 based application, including a deployment configuration, using PostgreSQL database using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid71-postgresql" + }, + "labels": { + "template": "datagrid71-postgresql", + "xpaas": "1.4.14" + }, + "message": "A new data grid service (using PostgreSQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/postgresql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configurd for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector (defaults to 'default')", + "name": "MEMCACHED_CACHE", + "value": "default", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid71-openshift:1.3" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid71-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid72-basic.json b/addons/xpaas/v3.11/xpaas-templates/datagrid72-basic.json new file mode 100644 index 0000000000..3ed875495a --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid72-basic.json @@ -0,0 +1,446 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 (Ephemeral, no https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using ephemeral (temporary) storage and communication using http.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid72-basic" + }, + "labels": { + "template": "datagrid72-basic" + }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector", + "name": "MEMCACHED_CACHE", + "value": "default_memcached", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid72-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid72-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid72-https.json b/addons/xpaas/v3.11/xpaas-templates/datagrid72-https.json new file mode 100644 index 0000000000..85e248a671 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid72-https.json @@ -0,0 +1,638 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid72-https" + }, + "labels": { + "template": "datagrid72-https" + }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "Whether to require client certificate authentication. Defaults to false", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector", + "name": "MEMCACHED_CACHE", + "value": "default_memcached", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid72-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid72-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid72-mysql-persistent.json b/addons/xpaas/v3.11/xpaas-templates/datagrid72-mysql-persistent.json new file mode 100644 index 0000000000..76bd79ece0 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid72-mysql-persistent.json @@ -0,0 +1,955 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 + MySQL (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using MySQL database for persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid72-mysql-persistent" + }, + "labels": { + "template": "datagrid72-mysql-persistent" + }, + "message": "A new data grid service (using MySQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:/jboss/datasources/mysql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "Whether to require client certificate authentication. Defaults to false", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector", + "name": "MEMCACHED_CACHE", + "value": "default_memcached", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid72-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid72-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid72-mysql.json b/addons/xpaas/v3.11/xpaas-templates/datagrid72-mysql.json new file mode 100644 index 0000000000..62878bc729 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid72-mysql.json @@ -0,0 +1,928 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 + MySQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using MySQL database with ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid72-mysql" + }, + "labels": { + "template": "datagrid72-mysql" + }, + "message": "A new data grid service (using MySQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:/jboss/datasources/mysql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "Whether to require client certificate authentication. Defaults to false", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector", + "name": "MEMCACHED_CACHE", + "value": "default_memcached", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid72-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid72-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid72-partition.json b/addons/xpaas/v3.11/xpaas-templates/datagrid72-partition.json new file mode 100644 index 0000000000..e84add445c --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid72-partition.json @@ -0,0 +1,527 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 (Ephemeral, no https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using ephemeral (temporary) storage and communication using http.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid72-partition" + }, + "labels": { + "template": "datagrid72-partition" + }, + "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector", + "name": "MEMCACHED_CACHE", + "value": "default_memcached", + "required": false + }, + { + "displayName": "ADMIN_GROUP", + "description": "Comma delimited list of groups/roles for the Application Realm User", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "HOTROD_AUTHENTICATION", + "description": "True/False for HotRod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "CONTAINER_SECURITY_ROLE_MAPPER", + "description": "Container Role Mapper", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "CONTAINER_SECURITY_ROLES", + "description": "Comma Delimited List of Container Roles", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datagrid Volume Size", + "description": "Size of the volume used by Datagrid for persisting metadata.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Split Data?", + "description": "Split the data directory for each node in a mesh, this is now the default behaviour.", + "name": "DATAGRID_SPLIT", + "value": "true", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8787, + "targetPort": 8787 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-debug", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid72-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid72-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "mountPath": "/opt/datagrid/standalone/partitioned_data", + "name": "${APPLICATION_NAME}-datagrid-pvol" + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + }, + { + "name": "debug", + "containerPort": 8787, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "DATAGRID_SPLIT", + "value": "${DATAGRID_SPLIT}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-datagrid-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-datagrid-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-datagrid-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid72-postgresql-persistent.json b/addons/xpaas/v3.11/xpaas-templates/datagrid72-postgresql-persistent.json new file mode 100644 index 0000000000..633f7c2f81 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid72-postgresql-persistent.json @@ -0,0 +1,926 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 + PostgreSQL (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using PostgreSQL database for persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid72-postgresql-persistent" + }, + "labels": { + "template": "datagrid72-postgresql-persistent" + }, + "message": "A new data grid service (using PostgreSQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/postgresql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configured for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "Whether to require client certificate authentication. Defaults to false", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector", + "name": "MEMCACHED_CACHE", + "value": "default_memcached", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid72-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid72-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datagrid72-postgresql.json b/addons/xpaas/v3.11/xpaas-templates/datagrid72-postgresql.json new file mode 100644 index 0000000000..c30c68e069 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datagrid72-postgresql.json @@ -0,0 +1,899 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datagrid", + "tags": "datagrid,jboss,hidden", + "version": "1.1", + "openshift.io/display-name": "Red Hat JBoss Data Grid 7.2 + PostgreSQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Red Hat JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Data Grid 7.2 based applications, including a deployment configuration, using PostgreSQL database with ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-grid/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datagrid72-postgresql" + }, + "labels": { + "template": "datagrid72-postgresql" + }, + "message": "A new data grid service (using PostgreSQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "datagrid-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Username", + "description": "User name for JDG user.", + "name": "USERNAME", + "value": "", + "required": false + }, + { + "displayName": "Password", + "description": "The password to access the JDG Caches. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)", + "name": "PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JDG User Roles/Groups", + "description": "Comma delimited list of roles/groups associated with the JDG user", + "name": "ADMIN_GROUP", + "value": "", + "required": false + }, + { + "displayName": "Hotrod Authentication", + "description": "Enable Hotrod Authentication", + "name": "HOTROD_AUTHENTICATION", + "value": "", + "required": false + }, + { + "displayName": "Container Security Role Mapper", + "description": "Defines which role mapper to use for cache authentication", + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "", + "required": false + }, + { + "displayName": "Container Security Roles", + "description": "Comma delimited list of role names and assigned permissions", + "name": "CONTAINER_SECURITY_ROLES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "datagrid-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/postgresql", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Infinispan Connectors", + "description": "Comma-separated list of connector types that should be configured (defaults to 'memcached,hotrod,rest')", + "name": "INFINISPAN_CONNECTORS", + "value": "hotrod,memcached,rest", + "required": false + }, + { + "displayName": "Cache Names", + "description": "Comma-separated list of caches to configure. By default, a distributed-cache, with a mode of SYNC will be configurd for each entry.", + "name": "CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Datavirt Cache Names", + "description": "Comma-separated list of caches to configure for use by Red Hat JBoss Data Virtualization for materialization of views. Three caches will be created for each named cache: , _staging and _alias.", + "name": "DATAVIRT_CACHE_NAMES", + "value": "", + "required": false + }, + { + "displayName": "Default Cache Type", + "description": "Default cache type for all caches. If empty then distributed will be the default", + "name": "CACHE_TYPE_DEFAULT", + "value": "", + "required": false + }, + { + "displayName": "Encryption Requires SSL Client Authentication?", + "description": "Whether to require client certificate authentication. Defaults to false", + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "", + "required": false + }, + { + "displayName": "Memcached Cache Name", + "description": "The name of the cache to expose through this memcached connector", + "name": "MEMCACHED_CACHE", + "value": "default_memcached", + "required": false + }, + { + "displayName": "REST Security Domain", + "description": "The domain, declared in the security subsystem, that should be used to authenticate access to the REST endpoint", + "name": "REST_SECURITY_DOMAIN", + "value": "", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datagrid-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11211, + "targetPort": 11211 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-memcached", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Memcached service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 11333, + "targetPort": 11333 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-hotrod", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Hot Rod service for clustered applications." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid72-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "jboss-datagrid72-openshift", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "datagrid-keystore-volume", + "mountPath": "/etc/datagrid-secret-volume", + "readOnly": true + }, + { + "name": "datagrid-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/datagrid/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + }, + { + "name": "memcached", + "containerPort": 11211, + "protocol": "TCP" + }, + { + "name": "hotrod-internal", + "containerPort": 11222, + "protocol": "TCP" + }, + { + "name": "hotrod", + "containerPort": 11333, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "USERNAME", + "value": "${USERNAME}" + }, + { + "name": "PASSWORD", + "value": "${PASSWORD}" + }, + { + "name": "ADMIN_GROUP", + "value": "${ADMIN_GROUP}" + }, + { + "name": "HOTROD_AUTHENTICATION", + "value": "${HOTROD_AUTHENTICATION}" + }, + { + "name": "CONTAINER_SECURITY_ROLE_MAPPER", + "value": "${CONTAINER_SECURITY_ROLE_MAPPER}" + }, + { + "name": "CONTAINER_SECURITY_ROLES", + "value": "${CONTAINER_SECURITY_ROLES}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datagrid-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "DEFAULT_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "DEFAULT_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "MEMCACHED_JDBC_STORE_TYPE", + "value": "string" + }, + { + "name": "MEMCACHED_JDBC_STORE_DATASOURCE", + "value": "${DB_JNDI}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "INFINISPAN_CONNECTORS", + "value": "${INFINISPAN_CONNECTORS}" + }, + { + "name": "CACHE_NAMES", + "value": "${CACHE_NAMES}" + }, + { + "name": "DATAVIRT_CACHE_NAMES", + "value": "${DATAVIRT_CACHE_NAMES}" + }, + { + "name": "CACHE_TYPE_DEFAULT", + "value": "${CACHE_TYPE_DEFAULT}" + }, + { + "name": "ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH", + "value": "${ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH}" + }, + { + "name": "HOTROD_SERVICE_NAME", + "value": "${APPLICATION_NAME}-hotrod" + }, + { + "name": "HOTROD_ENCRYPTION", + "value": "${HTTPS_NAME}" + }, + { + "name": "MEMCACHED_CACHE", + "value": "${MEMCACHED_CACHE}" + }, + { + "name": "REST_SECURITY_DOMAIN", + "value": "${REST_SECURITY_DOMAIN}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "datagrid-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datagrid-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datavirt63-basic-s2i.json b/addons/xpaas/v3.11/xpaas-templates/datavirt63-basic-s2i.json new file mode 100644 index 0000000000..18d0e211ef --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datavirt63-basic-s2i.json @@ -0,0 +1,521 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datavirt", + "description": "Application template for JBoss Data Virtualization 6.3 services built using S2I.", + "tags": "jdv,datavirt,database,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Virtualization 6.3 (no SSL)", + "openshift.io/provider-display-name": "Red Hat, Inc." + }, + "name": "datavirt63-basic-s2i" + }, + "labels": { + "template": "datavirt63-basic-s2i", + "xpaas": "1.4.14" + }, + "message": "A new data service has been created in your project. The username/password for accessing the service is ${TEIID_USERNAME}/${TEIID_PASSWORD}. Please be sure to create the secret named ${CONFIGURATION_NAME} containing the datasource configuration details required by the deployed VDB(s).", + "parameters": [ + { + "description": "The name for the application.", + "displayName": "Application Name", + "name": "APPLICATION_NAME", + "value": "datavirt-app", + "required": true + }, + { + "description": "The name of the secret containing configuration properties for the data sources.", + "displayName": "Configuration Secret Name", + "name": "CONFIGURATION_NAME", + "value": "datavirt-app-config", + "required": true + }, + { + "description": "Specify a custom hostname for the http route. Leave blank to use default hostname, e.g.: -.", + "displayName": "Custom http Route Hostname", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "description": "The URL of the repository with your application source code.", + "displayName": "Git Repository URL", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.", + "displayName": "Git Reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "description": "Set this to the relative path to your project if it is not in the root of your repository.", + "displayName": "Context Directory", + "name": "CONTEXT_DIR", + "value": "datavirt/dynamicvdb-datafederation/app", + "required": false + }, + { + "description": "Username associated with Teiid data service.", + "displayName": "Teiid Username", + "name": "TEIID_USERNAME", + "from": "[\\a]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Password for Teiid user.", + "displayName": "Teiid User Password", + "name": "TEIID_PASSWORD", + "from": "[\\a\\A]{8}[\\d]{1}[\\A]{1}", + "generate": "expression", + "required": true + }, + { + "description": "Username associated with ModeShape.", + "displayName": "ModeShape Username", + "name": "MODESHAPE_USERNAME", + "from": "[\\a]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Password for ModeShape user.", + "displayName": "ModeShape User Password", + "name": "MODESHAPE_PASSWORD", + "from": "[\\a\\A]{8}[\\d]{1}[\\A]{1}", + "generate": "expression", + "required": true + }, + { + "description": "A secret string used to configure the GitHub webhook.", + "displayName": "Github Webhook Secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "A secret string used to configure the Generic webhook.", + "displayName": "Generic Webhook Secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "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.", + "displayName": "ImageStream Namespace", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "description": "Password used by JGroups to authenticate nodes in the cluster.", + "displayName": "JGroups Cluster Password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Controls whether exploded deployment content should be automatically deployed", + "displayName": "Deploy Exploded Archives", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "name": "http", + "port": 8080, + "targetPort": "http" + }, + { + "name": "jdbc", + "port": 31000, + "targetPort": "jdbc" + }, + { + "name": "odbc", + "port": 35432, + "targetPort": "odbc" + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The data virtualization services." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http (REST) service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "port": { + "targetPort": "http" + }, + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.1" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + } + ] + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datavirt63-openshift:1.4" + }, + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "configuration", + "mountPath": "/etc/datavirt-environment", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "jdbc", + "containerPort": 31000, + "protocol": "TCP" + }, + { + "name": "odbc", + "containerPort": 35432, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "TEIID_USERNAME", + "value": "${TEIID_USERNAME}" + }, + { + "name": "TEIID_PASSWORD", + "value": "${TEIID_PASSWORD}" + }, + { + "name": "MODESHAPE_USERNAME", + "value": "${MODESHAPE_USERNAME}" + }, + { + "name": "MODESHAPE_PASSWORD", + "value": "${MODESHAPE_PASSWORD}" + }, + { + "name": "ENV_FILES", + "value": "/etc/datavirt-environment/*" + } + ] + } + ], + "volumes": [ + { + "name": "configuration", + "secret": { + "secretName": "${CONFIGURATION_NAME}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datavirt63-extensions-support-s2i.json b/addons/xpaas/v3.11/xpaas-templates/datavirt63-extensions-support-s2i.json new file mode 100644 index 0000000000..e5a692cba3 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datavirt63-extensions-support-s2i.json @@ -0,0 +1,874 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datavirt", + "tags": "jdv,datavirt,database,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Virtualization 6.3 (with SSL and Extensions)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Data Virtualization application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Data Virtualization based application, including a build configuration, application deployment configuration, support for installing extensions (e.g. third-party DB drivers) and the ability to configure certificates for serving secure content.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-virtualization/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datavirt63-extensions-support-s2i" + }, + "labels": { + "template": "datavirt63-extensions-support-s2i", + "xpaas": "1.4.14" + }, + "message": "A new data service has been created in your project. The username/password for accessing the service is ${TEIID_USERNAME}/${TEIID_PASSWORD}. Please be sure to create the following secrets: \"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed VDB(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "description": "The name for the application.", + "displayName": "Application Name", + "name": "APPLICATION_NAME", + "value": "datavirt-app", + "required": true + }, + { + "description": "The name of the secret containing configuration properties for the data sources.", + "displayName": "Configuration Secret Name", + "name": "CONFIGURATION_NAME", + "value": "datavirt-app-config", + "required": true + }, + { + "description": "Specify a custom hostname for the http route. Leave blank to use default hostname, e.g.: -.", + "displayName": "Custom http Route Hostname", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "description": "Specify a custom hostname for the https route. Leave blank to use default hostname, e.g.: secure--.", + "displayName": "Custom https Route Hostname", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "description": "Specify a custom hostname for the JDBC route. Leave blank to use default hostname, e.g.: secure--.", + "displayName": "Custom JDBC Route Hostname", + "name": "HOSTNAME_JDBC", + "value": "", + "required": false + }, + { + "description": "The URL of the repository with your application source code.", + "displayName": "Git Repository URL", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.", + "displayName": "Git Reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "description": "Set this to the relative path to your project if it is not in the root of your repository.", + "displayName": "Context Directory", + "name": "CONTEXT_DIR", + "value": "datavirt/dynamicvdb-datafederation/app", + "required": false + }, + { + "description": "The URL of the repository with source code for the extensions image. The image should have all modules, etc., placed in the \"/extensions/\" directory in the image. If the contents are in a different directory, the sourcePath for the ImageSource in the BuildConfig must be modified.", + "displayName": "Extensions Git Repository URL", + "name": "EXTENSIONS_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "description": "Set this to a branch name, tag or other ref of your extensions repository if you are not using the default branch.", + "displayName": "Extensions Git Reference", + "name": "EXTENSIONS_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "description": "Set this to the relative path to your project if it is not in the root of your extensions repository.", + "displayName": "Extensions Context Directory", + "name": "EXTENSIONS_DIR", + "value": "datavirt/derby-driver-image", + "required": false + }, + { + "description": "Set this to the relative path to the Dockerfile in your extensions directory.", + "displayName": "Extensions Dockerfile", + "name": "EXTENSIONS_DOCKERFILE", + "value": "Dockerfile", + "required": false + }, + { + "description": "The name of the secret containing the keystore to be used for serving secure content.", + "displayName": "Server Keystore Secret Name", + "name": "HTTPS_SECRET", + "value": "datavirt-app-secret", + "required": true + }, + { + "description": "The name of the keystore file within the secret.", + "displayName": "Server Keystore Filename", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "description": "The type of the keystore file (JKS or JCEKS).", + "displayName": "Server Keystore Type", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "description": "The name associated with the server certificate.", + "displayName": "Server Certificate Name", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "description": "The password for the keystore and certificate", + "displayName": "Server Keystore Password", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "description": "Username associated with Teiid data service.", + "displayName": "Teiid Username", + "name": "TEIID_USERNAME", + "from": "[\\a]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Password for Teiid user.", + "displayName": "Teiid User Password", + "name": "TEIID_PASSWORD", + "from": "[\\a\\A]{8}[\\d]{1}[\\A]{1}", + "generate": "expression", + "required": true + }, + { + "description": "Username associated with ModeShape.", + "displayName": "ModeShape Username", + "name": "MODESHAPE_USERNAME", + "from": "[\\a]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Password for ModeShape user.", + "displayName": "ModeShape User Password", + "name": "MODESHAPE_PASSWORD", + "from": "[\\a\\A]{8}[\\d]{1}[\\A]{1}", + "generate": "expression", + "required": true + }, + { + "description": "A secret string used to configure the GitHub webhook.", + "displayName": "Github Webhook Secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "A secret string used to configure the Generic webhook.", + "displayName": "Generic Webhook Secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "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.", + "displayName": "ImageStream Namespace", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "description": "The name of the secret containing the keystore to be used for securing JGroups communications.", + "displayName": "JGroups Secret Name", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datavirt-app-secret", + "required": false + }, + { + "description": "The name of the keystore file within the JGroups secret.", + "displayName": "JGroups Keystore Filename", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "description": "The name associated with the JGroups server certificate", + "displayName": "JGroups Certificate Name", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "secret-key", + "required": false + }, + { + "description": "The password for the keystore and certificate", + "displayName": "JGroups Keystore Password", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "password", + "required": false + }, + { + "description": "Password used by JGroups to authenticate nodes in the cluster.", + "displayName": "JGroups Cluster Password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Controls whether exploded deployment content should be automatically deployed", + "displayName": "Deploy Exploded Archives", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "name": "http", + "port": 8080, + "targetPort": "http" + }, + { + "name": "https", + "port": 8443, + "targetPort": "https" + }, + { + "name": "jdbc", + "port": 31000, + "targetPort": "jdbc" + }, + { + "name": "jdbcs", + "port": 31443, + "targetPort": "jdbcs" + }, + { + "name": "odbc", + "port": 35432, + "targetPort": "odbc" + }, + { + "name": "odbcs", + "port": 35443, + "targetPort": "odbcs" + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The data virtualization services." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http (REST) service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "port": { + "targetPort": "http" + }, + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https (REST) service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "port": { + "targetPort": "https" + }, + "to": { + "name": "${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-jdbc", + "metadata": { + "name": "jdbc-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's JDBC service." + } + }, + "spec": { + "host": "${HOSTNAME_JDBC}", + "port": { + "targetPort": "jdbcs" + }, + "to": { + "name": "${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-ext", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-ext", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${EXTENSIONS_REPOSITORY_URL}", + "ref": "${EXTENSIONS_REPOSITORY_REF}" + }, + "contextDir": "${EXTENSIONS_DIR}" + }, + "strategy": { + "type": "Docker", + "dockerStrategy": { + "dockerfilePath": "${EXTENSIONS_DOCKERFILE}" + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}-ext:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.1" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + }, + { + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}-ext:latest" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/extras", + "sourcePath": "/extensions/." + } + ] + } + ] + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datavirt63-openshift:1.4" + }, + "env": [ + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}-ext:latest" + } + } + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "configuration", + "mountPath": "/etc/datavirt-environment", + "readOnly": true + }, + { + "name": "datavirt-keystore-volume", + "mountPath": "/etc/datavirt-secret-volume", + "readOnly": true + }, + { + "name": "datavirt-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "jdbc", + "containerPort": 31000, + "protocol": "TCP" + }, + { + "name": "jdbcs", + "containerPort": 31443, + "protocol": "TCP" + }, + { + "name": "odbc", + "containerPort": 35432, + "protocol": "TCP" + }, + { + "name": "odbcs", + "containerPort": 35443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datavirt-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "TEIID_USERNAME", + "value": "${TEIID_USERNAME}" + }, + { + "name": "TEIID_PASSWORD", + "value": "${TEIID_PASSWORD}" + }, + { + "name": "MODESHAPE_USERNAME", + "value": "${MODESHAPE_USERNAME}" + }, + { + "name": "MODESHAPE_PASSWORD", + "value": "${MODESHAPE_PASSWORD}" + }, + { + "name": "ENV_FILES", + "value": "/etc/datavirt-environment/*" + }, + { + "name": "DATAVIRT_TRANSPORT_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "DATAVIRT_TRANSPORT_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "DATAVIRT_TRANSPORT_KEY_ALIAS", + "value": "${HTTPS_NAME}" + }, + { + "name": "DATAVIRT_TRANSPORT_KEYSTORE_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "QS_DB_TYPE", + "value": "derby", + "description": "Used soley by the quickstart and set here to ensure the template can be instatiated with its default parameter values, i.e. so itworks ootb." + } + ] + } + ], + "volumes": [ + { + "name": "configuration", + "secret": { + "secretName": "${CONFIGURATION_NAME}" + } + }, + { + "name": "datavirt-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datavirt-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/datavirt63-secure-s2i.json b/addons/xpaas/v3.11/xpaas-templates/datavirt63-secure-s2i.json new file mode 100644 index 0000000000..79d3521de8 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/datavirt63-secure-s2i.json @@ -0,0 +1,994 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-datavirt", + "tags": "jdv,datavirt,database,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Data Virtualization 6.3 (with SSL)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Data Virtualization application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Data Virtualization based application, including a build configuration, application deployment configuration and ability to configure certificates for serving secure content.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-virtualization/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "datavirt63-secure-s2i" + }, + "labels": { + "template": "datavirt63-secure-s2i", + "xpaas": "1.4.14" + }, + "message": "A new data service has been created in your project. The username/password for accessing the service is ${TEIID_USERNAME}/${TEIID_PASSWORD}. Please be sure to create the following secrets: \"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed VDB(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "description": "The name for the application.", + "displayName": "Application Name", + "name": "APPLICATION_NAME", + "value": "datavirt-app", + "required": true + }, + { + "description": "The name of the secret containing configuration properties for the data sources.", + "displayName": "Configuration Secret Name", + "name": "CONFIGURATION_NAME", + "value": "datavirt-app-config", + "required": true + }, + { + "description": "Specify a custom hostname for the http route. Leave blank to use default hostname, e.g.: -.", + "displayName": "Custom http Route Hostname", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "description": "Specify a custom hostname for the https route. Leave blank to use default hostname, e.g.: secure--.", + "displayName": "Custom https Route Hostname", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "description": "Specify a custom hostname for the JDBC route. Leave blank to use default hostname, e.g.: secure--.", + "displayName": "Custom JDBC Route Hostname", + "name": "HOSTNAME_JDBC", + "value": "", + "required": false + }, + { + "description": "The URL of the repository with your application source code.", + "displayName": "Git Repository URL", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.", + "displayName": "Git Reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "description": "Set this to the relative path to your project if it is not in the root of your repository.", + "displayName": "Context Directory", + "name": "CONTEXT_DIR", + "value": "datavirt/dynamicvdb-datafederation/app", + "required": false + }, + { + "description": "The name of the secret containing the keystore to be used for serving secure content.", + "displayName": "Server Keystore Secret Name", + "name": "HTTPS_SECRET", + "value": "datavirt-app-secret", + "required": true + }, + { + "description": "The name of the keystore file within the secret.", + "displayName": "Server Keystore Filename", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "description": "The type of the keystore file (JKS or JCEKS).", + "displayName": "Server Keystore Type", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "description": "The name associated with the server certificate.", + "displayName": "Server Certificate Name", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "description": "The password for the keystore and certificate", + "displayName": "Server Keystore Password", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "description": "Username associated with Teiid data service.", + "displayName": "Teiid Username", + "name": "TEIID_USERNAME", + "from": "[\\a]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Password for Teiid user.", + "displayName": "Teiid User Password", + "name": "TEIID_PASSWORD", + "from": "[\\a\\A]{8}[\\d]{1}[\\A]{1}", + "generate": "expression", + "required": true + }, + { + "description": "Username associated with ModeShape.", + "displayName": "ModeShape Username", + "name": "MODESHAPE_USERNAME", + "from": "[\\a]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Password for ModeShape user.", + "displayName": "ModeShape User Password", + "name": "MODESHAPE_PASSWORD", + "from": "[\\a\\A]{8}[\\d]{1}[\\A]{1}", + "generate": "expression", + "required": true + }, + { + "description": "A secret string used to configure the GitHub webhook.", + "displayName": "Github Webhook Secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "A secret string used to configure the Generic webhook.", + "displayName": "Generic Webhook Secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "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.", + "displayName": "ImageStream Namespace", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "description": "The name of the secret containing the keystore to be used for securing JGroups communications.", + "displayName": "JGroups Secret Name", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "datavirt-app-secret", + "required": false + }, + { + "description": "The name of the keystore file within the JGroups secret.", + "displayName": "JGroups Keystore Filename", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "description": "The name associated with the JGroups server certificate", + "displayName": "JGroups Certificate Name", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "secret-key", + "required": false + }, + { + "description": "The password for the keystore and certificate", + "displayName": "JGroups Keystore Password", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "password", + "required": false + }, + { + "description": "Password used by JGroups to authenticate nodes in the cluster.", + "displayName": "JGroups Cluster Password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Controls whether exploded deployment content should be automatically deployed", + "displayName": "Deploy Exploded Archives", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "description": "Comma delimited list of source directories containing VDBs for deployment", + "displayName": "VDB Deployment Directories", + "name": "VDB_DIRS", + "value": "", + "required": false + }, + { + "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", + "displayName": "SSO Server URL", + "name": "SSO_URL", + "value": "", + "required": false + }, + { + "description": "The URL for the interal SSO service, where secure-sso is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "displayName": "SSO Server Service URL", + "name": "SSO_SERVICE_URL", + "value": "", + "required": false + }, + { + "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", + "displayName": "SSO Realm", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", + "displayName": "SSO Username", + "name": "SSO_USERNAME", + "value": "", + "required": false + }, + { + "description": "The password for the SSO service user.", + "displayName": "SSO User's Password", + "name": "SSO_PASSWORD", + "value": "", + "required": false + }, + { + "description": "SSO Realm Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability. This can be retrieved from the SSO server, for the specified realm.", + "displayName": "SSO Realm Public Key", + "name": "SSO_PUBLIC_KEY", + "value": "", + "required": false + }, + { + "description": "SSO Client Access Type. true or false", + "displayName": "SSO Bearer Only", + "name": "SSO_BEARER_ONLY", + "value": "", + "required": false + }, + { + "description": "The name of the secret containing the keystore file", + "displayName": "SSO SAML Keystore Secret", + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "datavirt-app-secret", + "required": false + }, + { + "description": "The name of the keystore file within the secret", + "displayName": "SSO SAML Keystore File", + "name": "SSO_SAML_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "description": "The name associated with the server certificate", + "displayName": "SSO SAML Certificate Alias", + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "", + "required": false + }, + { + "description": "The password for the keystore and certificate", + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "displayName": "SSO SAML Keystore Password", + "value": "", + "required": false + }, + { + "description": "The SSO Client Secret for Confidential Access", + "name": "SSO_SECRET", + "displayName": "SSO Client Secret", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "description": "Enable CORS for SSO applications. true or false", + "name": "SSO_ENABLE_CORS", + "displayName": "SSO Enable CORS", + "value": "false", + "required": false + }, + { + "description": "SSO logout page for SAML applications", + "name": "SSO_SAML_LOGOUT_PAGE", + "displayName": "SSO SAML Logout Page", + "value": "/", + "required": false + }, + { + "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "displayName": "SSO Disable SSL Certificate Validation", + "value": "true", + "required": false + }, + { + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "displayName": "SSO Truststore File", + "value": "", + "required": false + }, + { + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "displayName": "SSO Truststore Password", + "value": "", + "required": false + }, + { + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "displayName": "SSO Truststore Secret", + "value": "datavirt-app-secret", + "required": false + }, + { + "description": "Comma delimited list of deployments that shoulds be exploded and enabled for SSO OpenIDConnect via auth-method", + "name": "SSO_OPENIDCONNECT_DEPLOYMENTS", + "displayName": "SSO OpenIDConnect Deployments", + "value": "", + "required": false + }, + { + "description": "Comma delimited list of deployments that shoulds be exploded and enabled for SSO SAML via auth-method", + "name": "SSO_SAML_DEPLOYMENTS", + "displayName": "SSO SAML Deployments", + "value": "", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "name": "http", + "port": 8080, + "targetPort": "http" + }, + { + "name": "https", + "port": 8443, + "targetPort": "https" + }, + { + "name": "jdbc", + "port": 31000, + "targetPort": "jdbc" + }, + { + "name": "jdbcs", + "port": 31443, + "targetPort": "jdbcs" + }, + { + "name": "odbc", + "port": 35432, + "targetPort": "odbc" + }, + { + "name": "odbcs", + "port": 35443, + "targetPort": "odbcs" + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The data virtualization services." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http (REST) service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "port": { + "targetPort": "http" + }, + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https (REST) service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "port": { + "targetPort": "https" + }, + "to": { + "name": "${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-jdbc", + "metadata": { + "name": "jdbc-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's JDBC service." + } + }, + "spec": { + "host": "${HOSTNAME_JDBC}", + "port": { + "targetPort": "jdbcs" + }, + "to": { + "name": "${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datagrid65-client-openshift:1.1" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65", + "sourcePath": "/extensions/." + } + ] + } + ] + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-datavirt63-openshift:1.4" + }, + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "VDB_DIRS", + "value": "${VDB_DIRS}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "name": "jboss-datagrid65-client-openshift:1.1" + } + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "configuration", + "mountPath": "/etc/datavirt-environment", + "readOnly": true + }, + { + "name": "datavirt-keystore-volume", + "mountPath": "/etc/datavirt-secret-volume", + "readOnly": true + }, + { + "name": "datavirt-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "jdbc", + "containerPort": 31000, + "protocol": "TCP" + }, + { + "name": "jdbcs", + "containerPort": 31443, + "protocol": "TCP" + }, + { + "name": "odbc", + "containerPort": 35432, + "protocol": "TCP" + }, + { + "name": "odbcs", + "containerPort": 35443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/datavirt-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "TEIID_USERNAME", + "value": "${TEIID_USERNAME}" + }, + { + "name": "TEIID_PASSWORD", + "value": "${TEIID_PASSWORD}" + }, + { + "name": "MODESHAPE_USERNAME", + "value": "${MODESHAPE_USERNAME}" + }, + { + "name": "MODESHAPE_PASSWORD", + "value": "${MODESHAPE_PASSWORD}" + }, + { + "name": "ENV_FILES", + "value": "/etc/datavirt-environment/*" + }, + { + "name": "DATAVIRT_TRANSPORT_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "DATAVIRT_TRANSPORT_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "DATAVIRT_TRANSPORT_KEY_ALIAS", + "value": "${HTTPS_NAME}" + }, + { + "name": "DATAVIRT_TRANSPORT_KEYSTORE_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "SSO_URL", + "value": "${SSO_URL}" + }, + { + "name": "SSO_SERVICE_URL", + "value": "${SSO_SERVICE_URL}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_USERNAME", + "value": "${SSO_USERNAME}" + }, + { + "name": "SSO_PASSWORD", + "value": "${SSO_PASSWORD}" + }, + { + "name": "SSO_PUBLIC_KEY", + "value": "${SSO_PUBLIC_KEY}" + }, + { + "name": "SSO_BEARER_ONLY", + "value": "${SSO_BEARER_ONLY}" + }, + { + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "${SSO_SAML_KEYSTORE_SECRET}" + }, + { + "name": "SSO_SAML_KEYSTORE", + "value": "${SSO_SAML_KEYSTORE}" + }, + { + "name": "SSO_SAML_KEYSTORE_DIR", + "value": "/etc/sso-saml-secret-volume" + }, + { + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "${SSO_SAML_CERTIFICATE_NAME}" + }, + { + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "value": "${SSO_SAML_KEYSTORE_PASSWORD}" + }, + { + "name": "SSO_SECRET", + "value": "${SSO_SECRET}" + }, + { + "name": "SSO_ENABLE_CORS", + "value": "${SSO_ENABLE_CORS}" + }, + { + "name": "SSO_SAML_LOGOUT_PAGE", + "value": "${SSO_SAML_LOGOUT_PAGE}" + }, + { + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "value": "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + }, + { + "name": "SSO_OPENIDCONNECT_DEPLOYMENTS", + "value": "${SSO_OPENIDCONNECT_DEPLOYMENTS}" + }, + { + "name": "SSO_SAML_DEPLOYMENTS", + "value": "${SSO_SAML_DEPLOYMENTS}" + }, + { + "name": "HOSTNAME_HTTP", + "value": "${HOSTNAME_HTTP}" + }, + { + "name": "HOSTNAME_HTTPS", + "value": "${HOSTNAME_HTTPS}" + } + ] + } + ], + "volumes": [ + { + "name": "configuration", + "secret": { + "secretName": "${CONFIGURATION_NAME}" + } + }, + { + "name": "datavirt-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "datavirt-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/decisionserver64-amq-s2i.json b/addons/xpaas/v3.11/xpaas-templates/decisionserver64-amq-s2i.json new file mode 100644 index 0000000000..f1da7cdcf7 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/decisionserver64-amq-s2i.json @@ -0,0 +1,789 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-decisionserver", + "tags": "decisionserver,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss BRMS 6.4 decision server + A-MQ (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example BRMS decision server A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss BRMS 6.4 decision server with A-MQ application, including a build configuration and application deployment configuration.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-brms/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "decisionserver64-amq-s2i" + }, + "labels": { + "template": "decisionserver64-amq-s2i", + "xpaas": "1.4.14" + }, + "message": "A new BRMS/A-MQ application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "KIE Server Domain", + "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", + "name": "KIE_SERVER_DOMAIN", + "value": "other", + "required": false + }, + { + "displayName": "KIE Server JMS Queues Request", + "description": "JNDI name of request queue for JMS.", + "name": "KIE_SERVER_JMS_QUEUES_REQUEST", + "value": "queue/KIE.SERVER.REQUEST", + "required": false + }, + { + "displayName": "KIE Server JMS Queues Response", + "description": "JNDI name of response queue for JMS.", + "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", + "value": "queue/KIE.SERVER.RESPONSE", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "decisionserver/hellorules", + "required": false + }, + { + "displayName": "JMS Connection Factory JNDI Name", + "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", + "name": "MQ_JNDI", + "value": "java:/JmsXA", + "required": false + }, + { + "displayName": "A-MQ Protocols", + "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_QUEUES", + "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "decisionserver-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Storage Limit", + "description": "The A-MQ storage usage limit", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "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": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-decisionserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "decisionserver-keystore-volume", + "mountPath": "/etc/decisionserver-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "KIE_SERVER_DOMAIN", + "value": "${KIE_SERVER_DOMAIN}" + }, + { + "name": "KIE_SERVER_JMS_QUEUES_REQUEST", + "value": "${KIE_SERVER_JMS_QUEUES_REQUEST}" + }, + { + "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", + "value": "${KIE_SERVER_JMS_QUEUES_RESPONSE}" + }, + { + "name": "MQ_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-amq=MQ" + }, + { + "name": "MQ_JNDI", + "value": "${MQ_JNDI}" + }, + { + "name": "MQ_USERNAME", + "value": "${MQ_USERNAME}" + }, + { + "name": "MQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "MQ_PROTOCOL", + "value": "tcp" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/decisionserver-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "decisionserver-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "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-63:1.3" + } + } + }, + { + "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-63", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "amqp-ssl", + "containerPort": 5671, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "stomp-ssl", + "containerPort": 61612, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + }, + { + "name": "tcp-ssl", + "containerPort": 61617, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AMQ_USER", + "value": "${MQ_USERNAME}" + }, + { + "name": "AMQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "AMQ_TRANSPORTS", + "value": "${MQ_PROTOCOL}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/decisionserver64-basic-s2i.json b/addons/xpaas/v3.11/xpaas-templates/decisionserver64-basic-s2i.json new file mode 100644 index 0000000000..244e00b7a4 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/decisionserver64-basic-s2i.json @@ -0,0 +1,388 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for Red Hat JBoss BRMS 6.4 decision server applications built using S2I.", + "iconClass": "icon-decisionserver", + "tags": "decisionserver,jboss,xpaas", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat JBoss BRMS 6.4 decision server (no https)" + }, + "name": "decisionserver64-basic-s2i" + }, + "labels": { + "template": "decisionserver64-basic-s2i", + "xpaas": "1.4.14" + }, + "message": "A new BRMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "decisionserver/hellorules", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "HORNETQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "HORNETQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "HornetQ Password", + "description": "HornetQ cluster admin password", + "name": "HORNETQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-decisionserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "HORNETQ_CLUSTER_PASSWORD", + "value": "${HORNETQ_CLUSTER_PASSWORD}" + }, + { + "name": "HORNETQ_QUEUES", + "value": "${HORNETQ_QUEUES}" + }, + { + "name": "HORNETQ_TOPICS", + "value": "${HORNETQ_TOPICS}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/decisionserver64-https-s2i.json b/addons/xpaas/v3.11/xpaas-templates/decisionserver64-https-s2i.json new file mode 100644 index 0000000000..384277a325 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/decisionserver64-https-s2i.json @@ -0,0 +1,533 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for Red Hat JBoss BRMS 6.4 decision server HTTPS applications built using S2I.", + "iconClass": "icon-decisionserver", + "tags": "decisionserver,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss BRMS 6.4 decision server (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example BRMS decision server application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss BRMS 6.4 decision server, including a build configuration, application deployment configuration and secured using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-brms/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "decisionserver64-https-s2i" + }, + "labels": { + "template": "decisionserver64-https-s2i", + "xpaas": "1.4.14" + }, + "message": "A new BRMS application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "decisionserver-hellorules=org.openshift.quickstarts:decisionserver-hellorules:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Protocol", + "description": "The protocol to access the KIE Server REST interface.", + "name": "KIE_SERVER_PROTOCOL", + "value": "https", + "required": false + }, + { + "displayName": "KIE Server Port", + "description": "The port to access the KIE Server REST interface.", + "name": "KIE_SERVER_PORT", + "value": "8443", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "decisionserver/hellorules", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "HORNETQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "HORNETQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "decisionserver-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "HornetQ Password", + "description": "HornetQ cluster admin password", + "name": "HORNETQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-decisionserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "decisionserver-keystore-volume", + "mountPath": "/etc/decisionserver-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_PROTOCOL", + "value": "${KIE_SERVER_PROTOCOL}" + }, + { + "name": "KIE_SERVER_PORT", + "value": "${KIE_SERVER_PORT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/decisionserver-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "HORNETQ_CLUSTER_PASSWORD", + "value": "${HORNETQ_CLUSTER_PASSWORD}" + }, + { + "name": "HORNETQ_QUEUES", + "value": "${HORNETQ_QUEUES}" + }, + { + "name": "HORNETQ_TOPICS", + "value": "${HORNETQ_TOPICS}" + } + ] + } + ], + "volumes": [ + { + "name": "decisionserver-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap-camel-amq-template.json b/addons/xpaas/v3.11/xpaas-templates/eap-camel-amq-template.json new file mode 100644 index 0000000000..10cc3b325f --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap-camel-amq-template.json @@ -0,0 +1,560 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel A-MQ with EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Red Hat Fuse on EAP Camel A-MQ quickstart. This example demonstrates using the camel-activemq component to connect to A-MQ xPaaS message broker running in OpenShift. It is assumed that the broker is already deployed. More more information, refer to the documentation for the A-MQ xPaaS image related to the amq63-basic template.", + "tags": "quickstart,javaee,java,jboss-fuse,fis", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-eap-camel-amq" + }, + "labels": { + "template": "s2i-fuse71-eap-camel-amq" + }, + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APP_NAME", + "value": "s2i-fuse71-eap-camel-amq", + "required": true + }, + { + "displayName": "Application Version", + "description": "The application version.", + "name": "APP_VERSION", + "value": "5.2.0.fuse-710018-redhat-00001", + "required": true + }, + { + "displayName": "Custom http Route Hostname.", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application.", + "name": "GIT_REPO", + "value": "https://github.com/jboss-fuse/wildfly-camel-examples.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "GIT_REF", + "value": "wildfly-camel-examples-5.2.0.fuse-710018-redhat-00001", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Builder version", + "description": "The version of the FIS S2I builder image to use.", + "name": "BUILDER_VERSION", + "value": "1.1" + }, + { + "displayName": "A-MQ Service Prefix", + "description": "The prefix of the TCP service for the A-MQ broker without the protocol part. E.g for broker-amq-tcp the prefix is broker-amq. You may need to create a broker first.", + "name": "MQ_SERVICE_PREFIX", + "value": "broker-amq", + "required": true + }, + { + "displayName": "A-MQ Username", + "description": "The username used to authenticate with the broker. Leave it empty if authentication is disabled.", + "name": "MQ_USERNAME" + }, + { + "displayName": "A-MQ Password", + "description": "The password used to authenticate with the broker. Leave it empty if authentication is disabled.", + "name": "MQ_PASSWORD" + }, + { + "displayName": "JMS Connection Factory JNDI Name", + "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ActiveMQConnectionFactory", + "name": "MQ_JNDI", + "value": "java:/ActiveMQConnectionFactory", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the Fuse ImageStreams are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed.", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven Arguments To Append", + "description": "Additional arguments passed to mvn, e.g. for multi-module builds.", + "name": "MAVEN_ARGS_APPEND", + "value": "-pl camel-activemq -am", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds.", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "camel-activemq/target", + "required": false + }, + { + "displayName": "CPU request", + "description": "The amount of CPU to request.", + "name": "CPU_REQUEST", + "value": "0.2", + "required": true + }, + { + "displayName": "CPU limit", + "description": "The amount of CPU the container is limited to use.", + "name": "CPU_LIMIT", + "value": "1.0", + "required": true + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}-ping", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APP_NAME}-http", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APP_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "incremental": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}" + }, + "template": { + "metadata": { + "name": "${APP_NAME}", + "labels": { + "deploymentConfig": "${APP_NAME}", + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APP_NAME}", + "image": "${APP_NAME}", + "imagePullPolicy": "Always", + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APP_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_SERVICE_PREFIX_MAPPING", + "value": "${MQ_SERVICE_PREFIX}=MQ" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "MQ_USERNAME", + "value": "${MQ_USERNAME}" + }, + { + "name": "MQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "MQ_JNDI", + "value": "${MQ_JNDI}" + }, + { + "name": "MQ_PROTOCOL", + "value": "tcp" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap-camel-cdi-template.json b/addons/xpaas/v3.11/xpaas-templates/eap-camel-cdi-template.json new file mode 100644 index 0000000000..41b17122b2 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap-camel-cdi-template.json @@ -0,0 +1,525 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel CDI with EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Red Hat Fuse on EAP Camel CDI quickstart. This example demonstrates using the camel-cdi component to integrate CDI beans with Camel routes.", + "tags": "quickstart,javaee,java,jboss-fuse,fis", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-eap-camel-cdi" + }, + "labels": { + "template": "s2i-fuse71-eap-camel-cdi" + }, + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APP_NAME", + "value": "s2i-fuse71-eap-camel-cdi", + "required": true + }, + { + "displayName": "Application Version", + "description": "The application version.", + "name": "APP_VERSION", + "value": "5.2.0.fuse-710018-redhat-00001", + "required": true + }, + { + "displayName": "Custom http Route Hostname.", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application.", + "name": "GIT_REPO", + "value": "https://github.com/jboss-fuse/wildfly-camel-examples.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "GIT_REF", + "value": "wildfly-camel-examples-5.2.0.fuse-710018-redhat-00001", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Builder version", + "description": "The version of the FIS S2I builder image to use.", + "name": "BUILDER_VERSION", + "value": "1.1" + }, + { + "displayName": "Queues", + "description": "Queue names.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the Fuse ImageStreams are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed.", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven Arguments To Append", + "description": "Additional arguments passed to mvn, e.g. for multi-module builds.", + "name": "MAVEN_ARGS_APPEND", + "value": "-pl camel-cdi -am", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds.", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "camel-cdi/target", + "required": false + }, + { + "displayName": "CPU request", + "description": "The amount of CPU to request.", + "name": "CPU_REQUEST", + "value": "0.2", + "required": true + }, + { + "displayName": "CPU limit", + "description": "The amount of CPU the container is limited to use.", + "name": "CPU_LIMIT", + "value": "1.0", + "required": true + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}-ping", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APP_NAME}-http", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APP_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "incremental": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}" + }, + "template": { + "metadata": { + "name": "${APP_NAME}", + "labels": { + "deploymentConfig": "${APP_NAME}", + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APP_NAME}", + "image": "${APP_NAME}", + "imagePullPolicy": "Always", + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APP_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap-camel-cxf-jaxrs-template.json b/addons/xpaas/v3.11/xpaas-templates/eap-camel-cxf-jaxrs-template.json new file mode 100644 index 0000000000..fd1beb13d0 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap-camel-cxf-jaxrs-template.json @@ -0,0 +1,525 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel CXF JAX-RS with EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Red Hat Fuse on EAP Camel CXF JAX-RS quickstart. This example demonstrates using the camel-cxf component to produce and consume JAX-RS REST services.", + "tags": "quickstart,javaee,java,jboss-fuse,fis", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-eap-camel-cxf-jaxrs" + }, + "labels": { + "template": "s2i-fuse71-eap-camel-cxf-jaxrs" + }, + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APP_NAME", + "value": "s2i-fuse71-eap-camel-cxf-jaxrs", + "required": true + }, + { + "displayName": "Application Version", + "description": "The application version.", + "name": "APP_VERSION", + "value": "5.2.0.fuse-710018-redhat-00001", + "required": true + }, + { + "displayName": "Custom http Route Hostname.", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application.", + "name": "GIT_REPO", + "value": "https://github.com/jboss-fuse/wildfly-camel-examples.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "GIT_REF", + "value": "wildfly-camel-examples-5.2.0.fuse-710018-redhat-00001", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Builder version", + "description": "The version of the FIS S2I builder image to use.", + "name": "BUILDER_VERSION", + "value": "1.1" + }, + { + "displayName": "Queues", + "description": "Queue names.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the Fuse ImageStreams are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed.", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven Arguments To Append", + "description": "Additional arguments passed to mvn, e.g. for multi-module builds.", + "name": "MAVEN_ARGS_APPEND", + "value": "-pl camel-cxf-jaxrs -am", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds.", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "camel-cxf-jaxrs/target", + "required": false + }, + { + "displayName": "CPU request", + "description": "The amount of CPU to request.", + "name": "CPU_REQUEST", + "value": "0.2", + "required": true + }, + { + "displayName": "CPU limit", + "description": "The amount of CPU the container is limited to use.", + "name": "CPU_LIMIT", + "value": "1.0", + "required": true + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}-ping", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APP_NAME}-http", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APP_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "incremental": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}" + }, + "template": { + "metadata": { + "name": "${APP_NAME}", + "labels": { + "deploymentConfig": "${APP_NAME}", + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APP_NAME}", + "image": "${APP_NAME}", + "imagePullPolicy": "Always", + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APP_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap-camel-cxf-jaxws-template.json b/addons/xpaas/v3.11/xpaas-templates/eap-camel-cxf-jaxws-template.json new file mode 100644 index 0000000000..99a3950994 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap-camel-cxf-jaxws-template.json @@ -0,0 +1,525 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel CXF JAX-WS with EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Red Hat Fuse on EAP Camel CXF JAX-WS quickstart. This example demonstrates using the camel-cxf component to produce and consume JAX-WS web services.", + "tags": "quickstart,javaee,java,jboss-fuse,fis", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-eap-camel-cxf-jaxws" + }, + "labels": { + "template": "s2i-fuse71-eap-camel-cxf-jaxws" + }, + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APP_NAME", + "value": "s2i-fuse71-eap-camel-cxf-jaxws", + "required": true + }, + { + "displayName": "Application Version", + "description": "The application version.", + "name": "APP_VERSION", + "value": "5.2.0.fuse-710018-redhat-00001", + "required": true + }, + { + "displayName": "Custom http Route Hostname.", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application.", + "name": "GIT_REPO", + "value": "https://github.com/jboss-fuse/wildfly-camel-examples.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "GIT_REF", + "value": "wildfly-camel-examples-5.2.0.fuse-710018-redhat-00001", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Builder version", + "description": "The version of the FIS S2I builder image to use.", + "name": "BUILDER_VERSION", + "value": "1.1" + }, + { + "displayName": "Queues", + "description": "Queue names.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the Fuse ImageStreams are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed.", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven Arguments To Append", + "description": "Additional arguments passed to mvn, e.g. for multi-module builds.", + "name": "MAVEN_ARGS_APPEND", + "value": "-pl camel-cxf-jaxws -am", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds.", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "camel-cxf-jaxws/target", + "required": false + }, + { + "displayName": "CPU request", + "description": "The amount of CPU to request.", + "name": "CPU_REQUEST", + "value": "0.2", + "required": true + }, + { + "displayName": "CPU limit", + "description": "The amount of CPU the container is limited to use.", + "name": "CPU_LIMIT", + "value": "1.0", + "required": true + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}-ping", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APP_NAME}-http", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APP_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "incremental": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}" + }, + "template": { + "metadata": { + "name": "${APP_NAME}", + "labels": { + "deploymentConfig": "${APP_NAME}", + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APP_NAME}", + "image": "${APP_NAME}", + "imagePullPolicy": "Always", + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APP_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap-camel-jpa-template.json b/addons/xpaas/v3.11/xpaas-templates/eap-camel-jpa-template.json new file mode 100644 index 0000000000..c02d231741 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap-camel-jpa-template.json @@ -0,0 +1,798 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel JPA + MySQL (Ephemeral) with EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Red Hat Fuse on EAP Camel JPA quickstart. This example demonstrates how to connect a Camel application with Red Hat Fuse on EAP to a MySQL database and expose a REST API. This example creates two containers, one container to run as a MySQL server, and another running the Camel application which acts as as a client to the database.", + "tags": "quickstart,javaee,java,jboss-fuse,fis", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-eap-camel-jpa" + }, + "labels": { + "template": "s2i-fuse71-eap-camel-jpa" + }, + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APP_NAME", + "value": "s2i-fuse71-eap-camel-jpa", + "required": true + }, + { + "displayName": "Application Version", + "description": "The application version.", + "name": "APP_VERSION", + "value": "5.2.0.fuse-710018-redhat-00001", + "required": true + }, + { + "displayName": "Custom http Route Hostname.", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application.", + "name": "GIT_REPO", + "value": "https://github.com/jboss-fuse/wildfly-camel-examples.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "GIT_REF", + "value": "wildfly-camel-examples-5.2.0.fuse-710018-redhat-00001", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Builder version", + "description": "The version of the FIS S2I builder image to use.", + "name": "BUILDER_VERSION", + "value": "1.1" + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/OrdersDS", + "name": "DB_JNDI", + "value": "java:jboss/datasources/OrdersDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "orders_db", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the Fuse ImageStreams are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed.", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven Arguments To Append", + "description": "Additional arguments passed to mvn, e.g. for multi-module builds.", + "name": "MAVEN_ARGS_APPEND", + "value": "-pl camel-jpa -am", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds.", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "camel-jpa/target", + "required": false + }, + { + "displayName": "CPU request", + "description": "The amount of CPU to request.", + "name": "CPU_REQUEST", + "value": "0.2", + "required": true + }, + { + "displayName": "CPU limit", + "description": "The amount of CPU the container is limited to use.", + "name": "CPU_LIMIT", + "value": "1.0", + "required": true + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}-ping", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}-mysql" + } + }, + "metadata": { + "name": "${APP_NAME}-mysql", + "labels": { + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APP_NAME}-http", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APP_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + } + ], + "forcePull": true, + "incremental": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}" + }, + "template": { + "metadata": { + "name": "${APP_NAME}", + "labels": { + "deploymentConfig": "${APP_NAME}", + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APP_NAME}", + "image": "${APP_NAME}", + "imagePullPolicy": "Always", + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APP_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APP_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APP_NAME}-mysql=DB" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}-mysql", + "labels": { + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APP_NAME}-mysql", + "labels": { + "deploymentConfig": "${APP_NAME}-mysql", + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APP_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-amq-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-amq-persistent-s2i.json new file mode 100644 index 0000000000..007fae34d3 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-amq-persistent-s2i.json @@ -0,0 +1,943 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 + A-MQ (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration, using Red Hat JBoss A-MQ with persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-amq-persistent-s2i" + }, + "labels": { + "template": "eap71-amq-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 and A-MQ persistent based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "helloworld-mdb", + "required": false + }, + { + "displayName": "A-MQ Volume Size", + "description": "Size of the volume used by A-MQ for persisting messages.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "JMS Connection Factory JNDI Name", + "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", + "name": "MQ_JNDI", + "value": "java:/ConnectionFactory", + "required": false + }, + { + "displayName": "Split Data?", + "description": "Split the data directory for each node in a mesh.", + "name": "AMQ_SPLIT", + "value": "false", + "required": false + }, + { + "displayName": "A-MQ Protocols", + "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_QUEUES", + "value": "HELLOWORLDMDBQueue", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_TOPICS", + "value": "HELLOWORLDMDBTopic", + "required": false + }, + { + "displayName": "A-MQ Serializable Packages", + "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Storage Limit", + "description": "The A-MQ storage usage limit", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "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": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "MQ_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-amq=MQ" + }, + { + "name": "MQ_JNDI", + "value": "${MQ_JNDI}" + }, + { + "name": "MQ_USERNAME", + "value": "${MQ_USERNAME}" + }, + { + "name": "MQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "MQ_PROTOCOL", + "value": "tcp" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-amq", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Rolling", + "rollingParams": { + "maxSurge": 0 + } + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-amq" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-amq-63:1.3" + } + } + }, + { + "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-63", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "amqp-ssl", + "containerPort": 5671, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "stomp-ssl", + "containerPort": 61612, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + }, + { + "name": "tcp-ssl", + "containerPort": 61617, + "protocol": "TCP" + } + ], + "volumeMounts": [ + { + "mountPath": "/opt/amq/data/kahadb", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "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": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "AMQ_SPLIT", + "value": "${AMQ_SPLIT}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "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/addons/xpaas/v3.11/xpaas-templates/eap71-amq-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-amq-s2i.json new file mode 100644 index 0000000000..c174bc4cf1 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-amq-s2i.json @@ -0,0 +1,888 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 + A-MQ (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration, using Red Hat JBoss A-MQ and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-amq-s2i" + }, + "labels": { + "template": "eap71-amq-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 and A-MQ based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "helloworld-mdb", + "required": false + }, + { + "displayName": "JMS Connection Factory JNDI Name", + "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ConnectionFactory", + "name": "MQ_JNDI", + "value": "java:/ConnectionFactory", + "required": false + }, + { + "displayName": "A-MQ Protocols", + "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_QUEUES", + "value": "HELLOWORLDMDBQueue", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_TOPICS", + "value": "HELLOWORLDMDBTopic", + "required": false + }, + { + "displayName": "A-MQ Serializable Packages", + "description": "List of packages that are allowed to be serialized for use in ObjectMessage, separated by commas. If your app doesn't use ObjectMessages, leave this blank. This is a security enforcement. For the rationale, see http://activemq.apache.org/objectmessage.html", + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Storage Limit", + "description": "The A-MQ storage usage limit", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTP port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's HTTPS port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "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": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTP service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's HTTPS service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "MQ_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-amq=MQ" + }, + { + "name": "MQ_JNDI", + "value": "${MQ_JNDI}" + }, + { + "name": "MQ_USERNAME", + "value": "${MQ_USERNAME}" + }, + { + "name": "MQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "MQ_PROTOCOL", + "value": "tcp" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "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-63:1.3" + } + } + }, + { + "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-63", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "amqp-ssl", + "containerPort": 5671, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "stomp-ssl", + "containerPort": 61612, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + }, + { + "name": "tcp-ssl", + "containerPort": 61617, + "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": "MQ_SERIALIZABLE_PACKAGES", + "value": "${MQ_SERIALIZABLE_PACKAGES}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-basic-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-basic-s2i.json new file mode 100644 index 0000000000..e67a597c4b --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-basic-s2i.json @@ -0,0 +1,431 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 (no https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration and insecure communication using http.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-basic-s2i" + }, + "labels": { + "template": "eap71-basic-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 based application has been created in your project.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "7.1.0.GA", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "kitchensink", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "-Dcom.redhat.xpaas.repo.jbossorg", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-https-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-https-s2i.json new file mode 100644 index 0000000000..43360dcafa --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-https-s2i.json @@ -0,0 +1,619 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-https-s2i" + }, + "labels": { + "template": "eap71-https-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "7.1.0.GA", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "kitchensink", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "-Dcom.redhat.xpaas.repo.jbossorg", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-mongodb-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-mongodb-persistent-s2i.json new file mode 100644 index 0000000000..65fc3b8855 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-mongodb-persistent-s2i.json @@ -0,0 +1,910 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 + MongoDB (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 application with a MongoDB database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration, database deployment configuration for MongoDB using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-mongodb-persistent-s2i" + }, + "labels": { + "template": "eap71-mongodb-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 and MongoDB persistent based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", + "name": "DB_JNDI", + "value": "", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MongoDB No Preallocation", + "description": "Disable data file preallocation.", + "name": "MONGODB_NOPREALLOC", + "required": false + }, + { + "displayName": "MongoDB Small Files", + "description": "Set MongoDB to use a smaller default data file size.", + "name": "MONGODB_SMALLFILES", + "required": false + }, + { + "displayName": "MongoDB Quiet", + "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", + "name": "MONGODB_QUIET", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database admin password", + "description": "Database admin password", + "name": "DB_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 27017, + "targetPort": 27017 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mongodb=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mongodb" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mongodb", + "image": "mongodb", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 27017, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 3, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 27017 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mongodb/data", + "name": "${APPLICATION_NAME}-mongodb-pvol" + } + ], + "env": [ + { + "name": "MONGODB_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MONGODB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MONGODB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MONGODB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "MONGODB_NOPREALLOC", + "value": "${MONGODB_NOPREALLOC}" + }, + { + "name": "MONGODB_SMALLFILES", + "value": "${MONGODB_SMALLFILES}" + }, + { + "name": "MONGODB_QUIET", + "value": "${MONGODB_QUIET}" + } + ] + } + ], + "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}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-mongodb-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-mongodb-s2i.json new file mode 100644 index 0000000000..a3509d3abd --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-mongodb-s2i.json @@ -0,0 +1,883 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 + MongoDB (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 application with a MongoDB database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration, database deployment configuration for MongoDB using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-mongodb-s2i" + }, + "labels": { + "template": "eap71-mongodb-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 and MongoDB based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", + "name": "DB_JNDI", + "value": "", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MongoDB No Preallocation", + "description": "Disable data file preallocation.", + "name": "MONGODB_NOPREALLOC", + "required": false + }, + { + "displayName": "MongoDB Small Files", + "description": "Set MongoDB to use a smaller default data file size.", + "name": "MONGODB_SMALLFILES", + "required": false + }, + { + "displayName": "MongoDB Quiet", + "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", + "name": "MONGODB_QUIET", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database admin password", + "description": "Database admin password", + "name": "DB_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 27017, + "targetPort": 27017 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mongodb=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mongodb" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mongodb", + "image": "mongodb", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 27017, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 3, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 27017 + } + }, + "env": [ + { + "name": "MONGODB_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MONGODB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MONGODB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MONGODB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "MONGODB_NOPREALLOC", + "value": "${MONGODB_NOPREALLOC}" + }, + { + "name": "MONGODB_SMALLFILES", + "value": "${MONGODB_SMALLFILES}" + }, + { + "name": "MONGODB_QUIET", + "value": "${MONGODB_QUIET}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mongodb/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-mysql-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-mysql-persistent-s2i.json new file mode 100644 index 0000000000..e710b23827 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-mysql-persistent-s2i.json @@ -0,0 +1,927 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 + MySQL (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration, database deployment configuration for MySQL using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-mysql-persistent-s2i" + }, + "labels": { + "template": "eap71-mysql-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 and MySQL persistent based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/TodoListDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "DEFAULT_JOB_REPOSITORY", + "value": "${APPLICATION_NAME}-mysql" + }, + { + "name": "TIMER_SERVICE_DATA_STORE", + "value": "${APPLICATION_NAME}-mysql" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-mysql-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-mysql-s2i.json new file mode 100644 index 0000000000..8d34970dea --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-mysql-s2i.json @@ -0,0 +1,900 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 + MySQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration, database deployment configuration for MySQL using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-mysql-s2i" + }, + "labels": { + "template": "eap71-mysql-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 and MySQL based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/TodoListDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "DEFAULT_JOB_REPOSITORY", + "value": "${APPLICATION_NAME}-mysql" + }, + { + "name": "TIMER_SERVICE_DATA_STORE", + "value": "${APPLICATION_NAME}-mysql" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-postgresql-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-postgresql-persistent-s2i.json new file mode 100644 index 0000000000..07a7c15037 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-postgresql-persistent-s2i.json @@ -0,0 +1,900 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 + PostgreSQL (Persistent with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration, database deployment configuration for PostgreSQL using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-postgresql-persistent-s2i" + }, + "labels": { + "template": "eap71-postgresql-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 and PostgreSQL persistent based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/TodoListDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "DEFAULT_JOB_REPOSITORY", + "value": "${APPLICATION_NAME}-postgresql" + }, + { + "name": "TIMER_SERVICE_DATA_STORE", + "value": "${APPLICATION_NAME}-postgresql" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-postgresql-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-postgresql-s2i.json new file mode 100644 index 0000000000..866235fd11 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-postgresql-s2i.json @@ -0,0 +1,873 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 + PostgreSQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration, database deployment configuration for PostgreSQL using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-postgresql-s2i" + }, + "labels": { + "template": "eap71-postgresql-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 and PostgreSQL based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/TodoListDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "DEFAULT_JOB_REPOSITORY", + "value": "${APPLICATION_NAME}-postgresql" + }, + { + "name": "TIMER_SERVICE_DATA_STORE", + "value": "${APPLICATION_NAME}-postgresql" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-sso-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-sso-s2i.json new file mode 100644 index 0000000000..b55620ec53 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-sso-s2i.json @@ -0,0 +1,853 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 + Single Sign-On (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 Single Sign-On application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration and integrated with Red Hat Single Sign-On.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-sso-s2i" + }, + "labels": { + "template": "eap71-sso-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 based application with SSL and SSO support has been created in your project. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Hostname for http service route (e.g. eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": true + }, + { + "displayName": "Custom https Route Hostname", + "description": "Hostname for https service route (e.g. secure-eap-app-myproject.example.com). Required for SSO-enabled applications. This is added to the white list of redirects in the SSO server.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": true + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/redhat-developer/redhat-sso-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "7.0.x-ose", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap7-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "URL for SSO", + "description": "The URL for the SSO server (e.g. https://secure-sso-myproject.example.com/auth). This is the URL through which the user will be redirected when a login or token is required by the application.", + "name": "SSO_URL", + "value": "", + "required": true + }, + { + "displayName": "URL for SSO (internal service)", + "description": "The URL for the internal SSO service, where secure-sso (the default) is the kubernetes service exposed by the SSO server. This is used to create the application client(s) (see SSO_USERNAME). This can also be the same as SSO_URL.", + "name": "SSO_SERVICE_URL", + "value": "https://secure-sso:8443/auth", + "required": false + }, + { + "displayName": "SSO Realm", + "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).", + "name": "SSO_REALM", + "value": "", + "required": true + }, + { + "displayName": "SSO Username", + "description": "The username used to access the SSO service. This is used to create the appliction client(s) within the specified SSO realm. This should match the SSO_SERVICE_USERNAME specified through one of the sso70-* templates.", + "name": "SSO_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "SSO Password", + "description": "The password for the SSO service user.", + "name": "SSO_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Public Key", + "description": "SSO Public Key. Public key is recommended to be passed into the template to avoid man-in-the-middle security vulnerability", + "name": "SSO_PUBLIC_KEY", + "value": "", + "required": false + }, + { + "displayName": "SSO Bearer Only?", + "description": "SSO Client Access Type", + "name": "SSO_BEARER_ONLY", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "app-jee-jsp/target,service-jee-jaxrs/target,app-profile-jee-jsp/target,app-profile-saml-jee-jsp/target", + "required": false + }, + { + "displayName": "SSO SAML Keystore Secret", + "description": "The name of the secret containing the keystore file", + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "SSO SAML Keystore", + "description": "The name of the keystore file within the secret", + "name": "SSO_SAML_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "SSO SAML Certificate Name", + "description": "The name associated with the server certificate", + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "SSO SAML Keystore Password", + "description": "The password for the keystore and certificate", + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "SSO Client Secret", + "description": "The SSO Client Secret for Confidential Access", + "name": "SSO_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Enable CORS for SSO?", + "description": "Enable CORS for SSO applications", + "name": "SSO_ENABLE_CORS", + "value": "false", + "required": false + }, + { + "displayName": "SSO SAML Logout Page", + "description": "SSO logout page for SAML applications", + "name": "SSO_SAML_LOGOUT_PAGE", + "value": "/", + "required": false + }, + { + "displayName": "Disable SSL Validation in EAP->SSO communication", + "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)", + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "value": "true", + "required": false + }, + { + "displayName": "SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "eap7-app-secret", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + }, + "env": [ + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "sso-saml-keystore-volume", + "mountPath": "/etc/sso-saml-secret-volume", + "readOnly": true + }, + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HOSTNAME_HTTP", + "value": "${HOSTNAME_HTTP}" + }, + { + "name": "HOSTNAME_HTTPS", + "value": "${HOSTNAME_HTTPS}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "SSO_URL", + "value": "${SSO_URL}" + }, + { + "name": "SSO_SERVICE_URL", + "value": "${SSO_SERVICE_URL}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_USERNAME", + "value": "${SSO_USERNAME}" + }, + { + "name": "SSO_PASSWORD", + "value": "${SSO_PASSWORD}" + }, + { + "name": "SSO_PUBLIC_KEY", + "value": "${SSO_PUBLIC_KEY}" + }, + { + "name": "SSO_BEARER_ONLY", + "value": "${SSO_BEARER_ONLY}" + }, + { + "name": "SSO_SAML_KEYSTORE_SECRET", + "value": "${SSO_SAML_KEYSTORE_SECRET}" + }, + { + "name": "SSO_SAML_KEYSTORE", + "value": "${SSO_SAML_KEYSTORE}" + }, + { + "name": "SSO_SAML_KEYSTORE_DIR", + "value": "/etc/sso-saml-secret-volume" + }, + { + "name": "SSO_SAML_CERTIFICATE_NAME", + "value": "${SSO_SAML_CERTIFICATE_NAME}" + }, + { + "name": "SSO_SAML_KEYSTORE_PASSWORD", + "value": "${SSO_SAML_KEYSTORE_PASSWORD}" + }, + { + "name": "SSO_SECRET", + "value": "${SSO_SECRET}" + }, + { + "name": "SSO_ENABLE_CORS", + "value": "${SSO_ENABLE_CORS}" + }, + { + "name": "SSO_SAML_LOGOUT_PAGE", + "value": "${SSO_SAML_LOGOUT_PAGE}" + }, + { + "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION", + "value": "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "sso-saml-keystore-volume", + "secret": { + "secretName": "${SSO_SAML_KEYSTORE_SECRET}" + } + }, + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-third-party-db-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-third-party-db-s2i.json new file mode 100644 index 0000000000..0bbd89e04a --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-third-party-db-s2i.json @@ -0,0 +1,691 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 (with https, DB drivers)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 DB application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration, using third-party DB drivers and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-third-party-db-s2i" + }, + "labels": { + "template": "eap71-third-party-db-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the following secrets:\"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed application(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Configuration Secret Name", + "description": "The name of the secret containing configuration properties for the datasources.", + "name": "CONFIGURATION_NAME", + "value": "eap-app-config", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "datavirt/hibernate-webapp", + "required": false + }, + { + "displayName": "Drivers ImageStreamTag", + "description": "ImageStreamTag definition for the image containing the drivers and configuration, e.g. jboss-datavirt63-driver-openshift:1.1", + "name": "EXTENSIONS_IMAGE", + "value": "jboss-datavirt63-driver-openshift:1.1", + "required": true + }, + { + "displayName": "Drivers ImageStream Namespace", + "description": "Namespace within which the ImageStream definition for the image containing the drivers and configuration is located.", + "name": "EXTENSIONS_IMAGE_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Drivers Image Install Directory", + "description": "Full path to the directory within the extensions image where the extensions are located (e.g. install.sh, modules/, etc.)", + "name": "EXTENSIONS_INSTALL_DIR", + "value": "/extensions", + "required": true + }, + { + "displayName": "Queue Names", + "description": "Queue names to preconfigure within Messaging subsystem.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topic Names", + "description": "Topic names to preconfigure within Messaging subsystem.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "eap-app-secret", + "required": true + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Messaging Cluster Admin Password", + "description": "Admin password for Messaging cluster.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "A secret string used to configure the GitHub webhook.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "A secret string used to configure the Generic webhook.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore to be used for securing JGroups communications.", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "eap-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the JGroups secret.", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the JGroups server certificate", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "secret-key", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "password", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "Password used by JGroups to authenticate nodes in the cluster.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}", + "images": [ + { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + }, + "paths": [ + { + "destinationDir": "./${CONTEXT_DIR}/extensions/extras", + "sourcePath": "${EXTENSIONS_INSTALL_DIR}/." + } + ] + } + ] + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "CUSTOM_INSTALL_DIRECTORIES", + "value": "extensions/*" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ImageChange", + "imageChange": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${EXTENSIONS_IMAGE_NAMESPACE}", + "name": "${EXTENSIONS_IMAGE}" + } + } + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "configuration", + "mountPath": "/etc/eap-environment", + "readOnly": true + }, + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "ENV_FILES", + "value": "/etc/eap-environment/*" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ] + } + ], + "volumes": [ + { + "name": "configuration", + "secret": { + "secretName": "${CONFIGURATION_NAME}" + } + }, + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/eap71-tx-recovery-s2i.json b/addons/xpaas/v3.11/xpaas-templates/eap71-tx-recovery-s2i.json new file mode 100644 index 0000000000..6c30271ae0 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/eap71-tx-recovery-s2i.json @@ -0,0 +1,616 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-eap", + "tags": "eap,javaee,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss EAP 7.1 (tx recovery)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example EAP 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Enterprise Application Server 7.1 based application, including a build configuration, application deployment configuration and insecure communication using http. The template also demonstrates how to enable automated transaction recovery on scale down of application pods. Automated transaction recovery is currently Technology Preview.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "eap71-tx-recovery-s2i" + }, + "labels": { + "template": "eap71-tx-recovery-s2i", + "xpaas": "1.4.14" + }, + "message": "A new EAP 7 based application has been created in your project.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "eap-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-developer/jboss-eap-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "7.1.0.GA", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "kitchensink", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Maven Additional Arguments", + "description": "Maven additional arguments to use for S2I builds", + "name": "MAVEN_ARGS_APPEND", + "value": "-Dcom.redhat.xpaas.repo.jbossorg", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + }, + { + "displayName": "EAP Volume Size", + "description": "Size of the volume used by EAP for persisting data.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Split the data directory?", + "description": "Split the data directory for each node in a cluster.", + "name": "SPLIT_DATA", + "value": "true", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-eap71-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "volumeMounts": [ + { + "mountPath": "/opt/eap/standalone/partitioned_data", + "name": "${APPLICATION_NAME}-eap-pvol" + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "SPLIT_DATA", + "value": "${SPLIT_DATA}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-eap-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-eap-claim" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-migration", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-migration" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-migration" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-migration", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-migration", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}-migration", + "image": "${APPLICATION_NAME}", + "command": [ + "/opt/eap/bin/openshift-migrate.sh" + ], + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "mountPath": "/opt/eap/standalone/partitioned_data", + "name": "${APPLICATION_NAME}-eap-pvol" + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + }, + { + "name": "SPLIT_DATA", + "value": "${SPLIT_DATA}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-eap-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-eap-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-eap-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/fis-console-cluster-template.json b/addons/xpaas/v3.11/xpaas-templates/fis-console-cluster-template.json new file mode 100644 index 0000000000..d5172aaecb --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/fis-console-cluster-template.json @@ -0,0 +1,262 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Console (cluster)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "The Red Hat Fuse Console eases the discovery and management of Fuse applications deployed on OpenShift.", + "tags": "hawtio,java,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "labels": { + "template": "fuse-console" + }, + "name": "fuse71-console-cluster" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "fuse71-console", + "description": "The name assigned to the application." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "required": true, + "value": "1.1", + "description": "The application version." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "ROUTE_HOSTNAME", + "description": "The externally-reachable host name that routes to the Red Hat Fuse console service", + "required": true + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "32Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "32Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + } + ], + "objects": [ + { + "kind": "Route", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}-route", + "labels": { + "component": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}", + "version": "${APP_VERSION}" + } + }, + "spec": { + "host": "${ROUTE_HOSTNAME}", + "to": { + "kind": "Service", + "name": "${APP_NAME}-service" + }, + "tls": { + "insecureEdgeTerminationPolicy": "Redirect", + "termination": "reencrypt" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}-service", + "labels": { + "component": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}", + "version": "${APP_VERSION}" + }, + "annotations": { + "service.alpha.openshift.io/serving-cert-secret-name": "${APP_NAME}-tls" + } + }, + "spec": { + "ports": [ + { + "port": 443, + "protocol": "TCP", + "targetPort": "nginx" + } + ], + "selector": { + "component": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}" + } + } + }, + { + "kind": "OAuthClient", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}-oauth-client" + }, + "redirectURIs": [ + "https://${ROUTE_HOSTNAME}" + ] + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-console:${APP_VERSION}" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "fuse7-console:${APP_VERSION}", + "readinessProbe" : { + "httpGet" : { + "path" : "/online", + "port" : "nginx", + "scheme": "HTTPS" + }, + "initialDelaySeconds" : 5 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/online", + "port" : "nginx", + "scheme": "HTTPS" + }, + "initialDelaySeconds" : 10, + "periodSeconds": 10 + }, + "ports": [ + { + "containerPort": 8443, + "name": "nginx" + } + ], + "env": [ + { + "name": "HAWTIO_ONLINE_MODE", + "value": "cluster" + }, + { + "name": "HAWTIO_OAUTH_CLIENT_ID", + "value": "${APP_NAME}-oauth-client" + } + ], + "volumeMounts": [ + { + "mountPath": "/etc/tls/private", + "name": "${APP_NAME}-tls" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ], + "volumes": [ + { + "name": "${APP_NAME}-tls", + "secret": { + "secretName": "${APP_NAME}-tls" + } + } + ] + } + } + }, + "status": {} + } + ] + } + \ No newline at end of file diff --git a/addons/xpaas/v3.11/xpaas-templates/fis-console-namespace-template.json b/addons/xpaas/v3.11/xpaas-templates/fis-console-namespace-template.json new file mode 100644 index 0000000000..093ae6c8d1 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/fis-console-namespace-template.json @@ -0,0 +1,276 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Console", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "The Red Hat Fuse Console eases the discovery and management of Fuse applications deployed on OpenShift.", + "tags": "hawtio,java,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "labels": { + "template": "fuse-console" + }, + "name": "fuse71-console" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "fuse71-console", + "description": "The name assigned to the application." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "required": true, + "value": "1.1", + "description": "The application version." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "ROUTE_HOSTNAME", + "description": "The externally-reachable host name that routes to the Red Hat Fuse console service" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "32Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "32Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + } + ], + "objects": [ + { + "kind": "Route", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}-route", + "labels": { + "component": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}", + "version": "${APP_VERSION}" + } + }, + "spec": { + "host": "${ROUTE_HOSTNAME}", + "to": { + "kind": "Service", + "name": "${APP_NAME}-service" + }, + "tls": { + "insecureEdgeTerminationPolicy": "Redirect", + "termination": "reencrypt" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}-service", + "labels": { + "component": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}", + "version": "${APP_VERSION}" + }, + "annotations": { + "service.alpha.openshift.io/serving-cert-secret-name": "${APP_NAME}-tls" + } + }, + "spec": { + "ports": [ + { + "port": 443, + "protocol": "TCP", + "targetPort": "nginx" + } + ], + "selector": { + "component": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}" + } + } + }, + { + "kind": "ServiceAccount", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}-service-account", + "labels": { + "component": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}", + "version": "${APP_VERSION}" + }, + "annotations": { + "serviceaccounts.openshift.io/oauth-redirecturi.route": "https://", + "serviceaccounts.openshift.io/oauth-redirectreference.route": "{\"kind\": \"OAuthRedirectReference\", \"apiVersion\": \"v1\", \"reference\": {\"kind\": \"Route\", \"name\": \"${APP_NAME}-route\"}}" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-console:${APP_VERSION}" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "console", + "app": "${APP_NAME}", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "fuse7-console:${APP_VERSION}", + "readinessProbe" : { + "httpGet" : { + "path" : "/online", + "port" : "nginx", + "scheme": "HTTPS" + }, + "initialDelaySeconds" : 5 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/online", + "port" : "nginx", + "scheme": "HTTPS" + }, + "initialDelaySeconds" : 10, + "periodSeconds": 10 + }, + "ports": [ + { + "containerPort": 8443, + "name": "nginx" + } + ], + "env": [ + { + "name": "HAWTIO_ONLINE_MODE", + "value": "namespace" + }, + { + "name": "HAWTIO_ONLINE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "HAWTIO_OAUTH_CLIENT_ID", + "value": "${APP_NAME}-service-account" + } + ], + "volumeMounts": [ + { + "mountPath": "/etc/tls/private", + "name": "${APP_NAME}-tls" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ], + "volumes": [ + { + "name": "${APP_NAME}-tls", + "secret": { + "secretName": "${APP_NAME}-tls" + } + } + ] + } + } + }, + "status": {} + } + ] + } + \ No newline at end of file diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-basic-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-basic-s2i.json new file mode 100644 index 0000000000..c6f197f4a9 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-basic-s2i.json @@ -0,0 +1,320 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Application template for JWS applications built using S2I.", + "tags": "tomcat,tomcat7,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 (no https)" + }, + "name": "jws31-tomcat7-basic-s2i" + }, + "labels": { + "template": "jws31-tomcat7-basic-s2i", + "xpaas": "1.4.14" + }, + "message": "A new JWS application for Apache Tomcat 7 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "tomcat-websocket-chat", + "required": false + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat7-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-https-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-https-s2i.json new file mode 100644 index 0000000000..4c30589642 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-https-s2i.json @@ -0,0 +1,442 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example JBoss Web Server application configured for use with https. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "tags": "tomcat,tomcat7,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 (with https)", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 7 based application, including a build configuration, and application deployment configuration. This also illustrations how to connect to the web applicaiton using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-web-server/", + "template.openshift.io/support-url": "https://access.redhat.com" + + }, + "name": "jws31-tomcat7-https-s2i" + }, + "labels": { + "template": "jws31-tomcat7-https-s2i", + "xpaas": "1.4.14" + }, + "message": "A new JWS application for Apache Tomcat 7 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "tomcat-websocket-chat", + "required": false + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat7-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mongodb-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mongodb-persistent-s2i.json new file mode 100644 index 0000000000..49b68456e6 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mongodb-persistent-s2i.json @@ -0,0 +1,732 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "tags": "tomcat,tomcat7,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 + MongoDB (with https)", + "description": "An example JBoss Web Server application with a MongoDB database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 7 based application, including a build configuration, application deployment configuration, database deployment configuration for MongoDB using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-web-server/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "jws31-tomcat7-mongodb-persistent-s2i" + }, + "labels": { + "template": "jws31-tomcat7-mongodb-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new persistent JWS application for Apache Tomcat 7 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", + "name": "DB_JNDI", + "value": "", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MongoDB No Preallocation", + "description": "Disable data file preallocation.", + "name": "MONGODB_NOPREALLOC", + "required": false + }, + { + "displayName": "MongoDB Small Files", + "description": "Set MongoDB to use a smaller default data file size.", + "name": "MONGODB_SMALLFILES", + "required": false + }, + { + "displayName": "MongoDB Quiet", + "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", + "name": "MONGODB_QUIET", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database admin password", + "description": "Database admin password", + "name": "DB_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 27017, + "targetPort": 27017 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat7-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mongodb=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mongodb" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mongodb", + "image": "mongodb", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 27017, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 3, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 27017 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mongodb/data", + "name": "${APPLICATION_NAME}-mongodb-pvol" + } + ], + "env": [ + { + "name": "MONGODB_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MONGODB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MONGODB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MONGODB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "MONGODB_NOPREALLOC", + "value": "${MONGODB_NOPREALLOC}" + }, + { + "name": "MONGODB_SMALLFILES", + "value": "${MONGODB_SMALLFILES}" + }, + { + "name": "MONGODB_QUIET", + "value": "${MONGODB_QUIET}" + } + ] + } + ], + "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}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mongodb-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mongodb-s2i.json new file mode 100644 index 0000000000..3990b36357 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mongodb-s2i.json @@ -0,0 +1,702 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Application template for JWS MongoDB applications built using S2I.", + "tags": "tomcat,tomcat7,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 + MongoDB (Ephemeral with https)" + }, + "name": "jws31-tomcat7-mongodb-s2i" + }, + "labels": { + "template": "jws31-tomcat7-mongodb-s2i", + "xpaas": "1.4.14" + }, + "message": "A new JWS application for Apache Tomcat 7 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", + "name": "DB_JNDI", + "value": "", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MongoDB No Preallocation", + "description": "Disable data file preallocation.", + "name": "MONGODB_NOPREALLOC", + "required": false + }, + { + "displayName": "MongoDB Small Files", + "description": "Set MongoDB to use a smaller default data file size.", + "name": "MONGODB_SMALLFILES", + "required": false + }, + { + "displayName": "MongoDB Quiet", + "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", + "name": "MONGODB_QUIET", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database admin password", + "description": "Database admin password", + "name": "DB_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 27017, + "targetPort": 27017 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat7-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mongodb=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mongodb" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mongodb", + "image": "mongodb", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 27017, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 3, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 27017 + } + }, + "env": [ + { + "name": "MONGODB_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MONGODB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MONGODB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MONGODB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "MONGODB_NOPREALLOC", + "value": "${MONGODB_NOPREALLOC}" + }, + { + "name": "MONGODB_SMALLFILES", + "value": "${MONGODB_SMALLFILES}" + }, + { + "name": "MONGODB_QUIET", + "value": "${MONGODB_QUIET}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mongodb/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mysql-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mysql-persistent-s2i.json new file mode 100644 index 0000000000..c9247787f1 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mysql-persistent-s2i.json @@ -0,0 +1,737 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "tags": "tomcat,tomcat7,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat JBoss Web Server 3.1 Apache Tomcat 7 + MySQL (with https)", + "description": "An example JBoss Web Server application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 7 based application, including a build configuration, application deployment configuration, database deployment configuration for MySQL using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-web-server/", + "template.openshift.io/support-url": "https://access.redhat.com" + + }, + "name": "jws31-tomcat7-mysql-persistent-s2i" + }, + "labels": { + "template": "jws31-tomcat7-mysql-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new persistent JWS application for Apache Tomcat 7 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", + "name": "DB_JNDI", + "value": "jboss/datasources/defaultDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat7-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mysql-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mysql-s2i.json new file mode 100644 index 0000000000..4503734973 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-mysql-s2i.json @@ -0,0 +1,706 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Application template for JWS MySQL applications built using S2I.", + "tags": "tomcat,tomcat7,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 + MySQL (Ephemeral with https)" + }, + "name": "jws31-tomcat7-mysql-s2i" + }, + "labels": { + "template": "jws31-tomcat7-mysql-s2i", + "xpaas": "1.4.14" + }, + "message": "A new JWS application for Apache Tomcat 7 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", + "name": "DB_JNDI", + "value": "jboss/datasources/defaultDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat7-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-postgresql-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-postgresql-persistent-s2i.json new file mode 100644 index 0000000000..2379acb2f6 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-postgresql-persistent-s2i.json @@ -0,0 +1,709 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "tags": "tomcat,tomcat7,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 + PostgreSQL (with https)", + "description": "An example JBoss Web Server application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 8 based application, including a build configuration, application deployment configuration, database deployment configuration for PostgreSQL using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-web-server/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "jws31-tomcat7-postgresql-persistent-s2i" + }, + "labels": { + "template": "jws31-tomcat7-postgresql-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new persistent JWS application for Apache Tomcat 7 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", + "name": "DB_JNDI", + "value": "jboss/datasources/defaultDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat7-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-postgresql-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-postgresql-s2i.json new file mode 100644 index 0000000000..b2afb5c46f --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat7-postgresql-s2i.json @@ -0,0 +1,679 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Application template for JWS PostgreSQL applications built using S2I.", + "tags": "tomcat,tomcat7,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 + PostgreSQL (Ephemeral with https)" + }, + "name": "jws31-tomcat7-postgresql-s2i" + }, + "labels": { + "template": "jws31-tomcat7-postgresql-s2i", + "xpaas": "1.4.14" + }, + "message": "A new JWS application for Apache Tomcat 7 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", + "name": "DB_JNDI", + "value": "jboss/datasources/defaultDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat7-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-basic-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-basic-s2i.json new file mode 100644 index 0000000000..826a5e4e95 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-basic-s2i.json @@ -0,0 +1,323 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "tags": "tomcat,tomcat8,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 (no https)", + "description": "An example JBoss Web Server application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 8 based application, including a build configuration, and an application deployment configuration.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-web-server/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "jws31-tomcat8-basic-s2i" + }, + "labels": { + "template": "jws31-tomcat8-basic-s2i", + "xpaas": "1.4.14" + }, + "message": "A new JWS application for Apache Tomcat 8 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "tomcat-websocket-chat", + "required": false + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat8-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-https-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-https-s2i.json new file mode 100644 index 0000000000..c4323b4927 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-https-s2i.json @@ -0,0 +1,442 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "tags": "tomcat,tomcat8,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 (with https)", + "description": "An example JBoss Web Server application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 8 based application, including a build configuration, application deployment configuration, and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-web-server/", + "template.openshift.io/support-url": "https://access.redhat.com" + + }, + "name": "jws31-tomcat8-https-s2i" + }, + "labels": { + "template": "jws31-tomcat8-https-s2i", + "xpaas": "1.4.14" + }, + "message": "A new JWS application for Apache Tomcat 8 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "tomcat-websocket-chat", + "required": false + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat8-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mongodb-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mongodb-persistent-s2i.json new file mode 100644 index 0000000000..47b130c4c5 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mongodb-persistent-s2i.json @@ -0,0 +1,733 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "tags": "tomcat,tomcat8,java,jboss", + "version": "1.4.14", + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 + MongoDB (with https)", + "description": "An example JBoss Web Server application with a MongoDB database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 8 based application, including a build configuration, application deployment configuration, database deployment configuration for MongoDB using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-web-server/", + "template.openshift.io/support-url": "https://access.redhat.com" + + }, + "name": "jws31-tomcat8-mongodb-persistent-s2i" + }, + "message": "A new persistent JWS application for Apache Tomcat 8 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "labels": { + "template": "jws31-tomcat8-mongodb-persistent-s2i", + "xpaas": "1.4.14" + }, + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", + "name": "DB_JNDI", + "value": "", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MongoDB No Preallocation", + "description": "Disable data file preallocation.", + "name": "MONGODB_NOPREALLOC", + "required": false + }, + { + "displayName": "MongoDB Small Files", + "description": "Set MongoDB to use a smaller default data file size.", + "name": "MONGODB_SMALLFILES", + "required": false + }, + { + "displayName": "MongoDB Quiet", + "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", + "name": "MONGODB_QUIET", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database admin password", + "description": "Database admin password", + "name": "DB_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 27017, + "targetPort": 27017 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat8-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mongodb=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mongodb" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mongodb", + "image": "mongodb", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 27017, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 3, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 27017 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mongodb/data", + "name": "${APPLICATION_NAME}-mongodb-pvol" + } + ], + "env": [ + { + "name": "MONGODB_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MONGODB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MONGODB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MONGODB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "MONGODB_NOPREALLOC", + "value": "${MONGODB_NOPREALLOC}" + }, + { + "name": "MONGODB_SMALLFILES", + "value": "${MONGODB_SMALLFILES}" + }, + { + "name": "MONGODB_QUIET", + "value": "${MONGODB_QUIET}" + } + ] + } + ], + "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}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mongodb-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mongodb-s2i.json new file mode 100644 index 0000000000..615d5c4b7e --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mongodb-s2i.json @@ -0,0 +1,702 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Application template for JWS MongoDB applications built using S2I.", + "tags": "tomcat,tomcat8,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 + MongoDB (Ephemeral with https)" + }, + "name": "jws31-tomcat8-mongodb-s2i" + }, + "labels": { + "template": "jws31-tomcat8-mongodb-s2i", + "xpaas": "1.4.14" + }, + "message": "A new JWS application for Apache Tomcat 8 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-mongodb", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mongodb", + "name": "DB_JNDI", + "value": "", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MongoDB No Preallocation", + "description": "Disable data file preallocation.", + "name": "MONGODB_NOPREALLOC", + "required": false + }, + { + "displayName": "MongoDB Small Files", + "description": "Set MongoDB to use a smaller default data file size.", + "name": "MONGODB_SMALLFILES", + "required": false + }, + { + "displayName": "MongoDB Quiet", + "description": "Runs MongoDB in a quiet mode that attempts to limit the amount of output.", + "name": "MONGODB_QUIET", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database admin password", + "description": "Database admin password", + "name": "DB_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MongoDB Image Stream Tag", + "description": "The tag to use for the \"mongodb\" image stream. Typically, this aligns with the major.minor version of MongoDB.", + "name": "MONGODB_IMAGE_STREAM_TAG", + "value": "3.2", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mongodb\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 27017, + "targetPort": 27017 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat8-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mongodb=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mongodb" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mongodb:${MONGODB_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mongodb", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mongodb", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mongodb", + "image": "mongodb", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 27017, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 3, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 27017 + } + }, + "env": [ + { + "name": "MONGODB_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MONGODB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MONGODB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MONGODB_ADMIN_PASSWORD", + "value": "${DB_ADMIN_PASSWORD}" + }, + { + "name": "MONGODB_NOPREALLOC", + "value": "${MONGODB_NOPREALLOC}" + }, + { + "name": "MONGODB_SMALLFILES", + "value": "${MONGODB_SMALLFILES}" + }, + { + "name": "MONGODB_QUIET", + "value": "${MONGODB_QUIET}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mongodb/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mysql-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mysql-persistent-s2i.json new file mode 100644 index 0000000000..d4bbc98ba8 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mysql-persistent-s2i.json @@ -0,0 +1,736 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "tags": "tomcat,tomcat8,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 + MySQL (with https)", + "description": "An example JBoss Web Server application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 8 based application, including a build configuration, application deployment configuration, database deployment configuration for MySQL using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-web-server/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "jws31-tomcat8-mysql-persistent-s2i" + }, + "labels": { + "template": "jws31-tomcat8-mysql-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new persistent JWS application for Apache Tomcat 8 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", + "name": "DB_JNDI", + "value": "jboss/datasources/defaultDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat8-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mysql-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mysql-s2i.json new file mode 100644 index 0000000000..75c2025152 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-mysql-s2i.json @@ -0,0 +1,706 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Application template for JWS MySQL applications built using S2I.", + "tags": "tomcat,tomcat8,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 + MySQL (Ephemeral with https)" + }, + "name": "jws31-tomcat8-mysql-s2i" + }, + "labels": { + "template": "jws31-tomcat8-mysql-s2i", + "xpaas": "1.4.14" + }, + "message": "A new JWS application for Apache Tomcat 8 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/mysqlDS", + "name": "DB_JNDI", + "value": "jboss/datasources/defaultDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat8-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-postgresql-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-postgresql-persistent-s2i.json new file mode 100644 index 0000000000..257d306030 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-postgresql-persistent-s2i.json @@ -0,0 +1,706 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Application template for JWS PostgreSQL applications with persistent storage built using S2I.", + "tags": "tomcat,tomcat8,java,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 + PostgreSQL (with https)" + }, + "name": "jws31-tomcat8-postgresql-persistent-s2i" + }, + "labels": { + "template": "jws31-tomcat8-postgresql-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new persistent JWS application for Apache Tomcat 8 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", + "name": "DB_JNDI", + "value": "jboss/datasources/defaultDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat8-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-postgresql-s2i.json b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-postgresql-s2i.json new file mode 100644 index 0000000000..3b412e98d0 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/jws31-tomcat8-postgresql-s2i.json @@ -0,0 +1,677 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-tomcat", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Application template for JWS PostgreSQL applications built using S2I.", + "tags": "tomcat,tomcat8,java,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss Web Server 3.0 Apache Tomcat 8 + PostgreSQL (Ephemeral with https)" + }, + "name": "jws31-tomcat8-postgresql-s2i" + }, + "labels": { + "template": "jws31-tomcat8-postgresql-s2i", + "xpaas": "1.4.14" + }, + "message": "A new JWS application for Apache Tomcat 8 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "jws-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.2", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "todolist/todolist-jdbc", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. jboss/datasources/postgresqlDS", + "name": "DB_JNDI", + "value": "jboss/datasources/defaultDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Secret Name", + "description": "The name of the secret containing the certificate files", + "name": "JWS_HTTPS_SECRET", + "value": "jws-app-secret", + "required": true + }, + { + "displayName": "Certificate Name", + "description": "The name of the certificate file within the secret", + "name": "JWS_HTTPS_CERTIFICATE", + "value": "server.crt", + "required": false + }, + { + "displayName": "Certificate Key Name", + "description": "The name of the certificate key file within the secret", + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "server.key", + "required": false + }, + { + "displayName": "Certificate Password", + "description": "The certificate password", + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Username", + "description": "JWS Admin User", + "name": "JWS_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JWS Admin Password", + "description": "JWS Admin Password", + "name": "JWS_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-webserver31-tomcat8-openshift:1.2" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "curl --noproxy '*' -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" + ] + } + }, + "volumeMounts": [ + { + "name": "jws-certificate-volume", + "mountPath": "/etc/jws-secret-volume", + "readOnly": true + } + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_DIR", + "value": "/etc/jws-secret-volume" + }, + { + "name": "JWS_HTTPS_CERTIFICATE", + "value": "${JWS_HTTPS_CERTIFICATE}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_KEY", + "value": "${JWS_HTTPS_CERTIFICATE_KEY}" + }, + { + "name": "JWS_HTTPS_CERTIFICATE_PASSWORD", + "value": "${JWS_HTTPS_CERTIFICATE_PASSWORD}" + }, + { + "name": "JWS_ADMIN_USERNAME", + "value": "${JWS_ADMIN_USERNAME}" + }, + { + "name": "JWS_ADMIN_PASSWORD", + "value": "${JWS_ADMIN_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "jws-certificate-volume", + "secret": { + "secretName": "${JWS_HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/karaf-camel-amq-template.json b/addons/xpaas/v3.11/xpaas-templates/karaf-camel-amq-template.json new file mode 100644 index 0000000000..818fee97a6 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/karaf-camel-amq-template.json @@ -0,0 +1,390 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel A-MQ with Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Camel route using AMQ in Karaf container. This quickstart demonstrates how to use Camel in a Karaf Container using Blueprint to connect to EnMasse (MaaS) and use JMS messaging between two Camel routes. It requires EnMasse to have been deployed and running first.", + "tags": "quickstart,java,karaf,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-karaf-camel-amq" + }, + "labels": { + "template": "s2i-fuse71-karaf-camel-amq" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-karaf-camel-amq", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "value": "https://github.com/fabric8-quickstarts/karaf-camel-amq.git", + "required": true, + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "karaf-camel-amq-1.0.0.fuse-710018-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "SERVICE_NAME", + "displayName": "Service Name", + "value": "s2i-fuse70-karaf-camel-amq", + "description": "Exposed Service name." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710018-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "install -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "AMQP_SERVICE_NAME", + "displayName": "EnMasse Service", + "required": true, + "description": "Set this to the route host name attached to the TCP service of the external 'messaging' route exposed by EnMasse. E.g messaging-enmasse.192.168.64.1.nip.io." + }, + { + "name": "AMQP_USERNAME", + "displayName": "EnMasse Username", + "description": "The username used to authenticate with EnMasse." + }, + { + "name": "AMQP_PASSWORD", + "displayName": "EnMasse Password", + "description": "The password used to authenticate with EnMasse." + }, + { + "name": "AMQP_PARAMETERS", + "displayName": "EnMasse Parameters", + "description": "The parameters passed to EnMasse.", + "value": "transport.trustAll=true&transport.verifyHost=false&amqp.idleTimeout=120000" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "128Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "512Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "container": "karaf", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/readiness-check", + "port" : 8181 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health-check", + "port" : 8181 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8181, + "name": "http" + }, + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + }, { + "name": "AMQP_SERVICE_NAME", + "value": "${AMQP_SERVICE_NAME}" + }, { + "name": "AMQP_USERNAME", + "value": "${AMQP_USERNAME}" + }, { + "name": "AMQP_PASSWORD", + "value": "${AMQP_PASSWORD}" + }, { + "name": "AMQP_PARAMETERS", + "value": "${AMQP_PARAMETERS}" + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-templates/karaf2-camel-log-template.json b/addons/xpaas/v3.11/xpaas-templates/karaf-camel-log-template.json similarity index 84% rename from addons/xpaas/v3.9/xpaas-templates/karaf2-camel-log-template.json rename to addons/xpaas/v3.11/xpaas-templates/karaf-camel-log-template.json index 88db6bc8e0..0b4b9d8cfa 100644 --- a/addons/xpaas/v3.9/xpaas-templates/karaf2-camel-log-template.json +++ b/addons/xpaas/v3.11/xpaas-templates/karaf-camel-log-template.json @@ -3,53 +3,55 @@ "kind": "Template", "metadata": { "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel log with Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "A simple Camel route in Karaf container. This quickstart shows a simple Apache Camel application that logs a message to the server log every 5th second.", "tags": "quickstart,java,karaf,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-karaf2-camel-log" + "name": "s2i-fuse71-karaf-camel-log" }, "labels": { - "template": "s2i-karaf2-camel-log" + "template": "s2i-fuse71-karaf-camel-log" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-karaf2-camel-log", + "value": "s2i-fuse71-karaf-camel-log", "description": "The name assigned to the application." }, { "name": "GIT_REPO", "displayName": "Git Repository URL", - "value": "https://github.com/fabric8-quickstarts/karaf2-camel-log.git", + "value": "https://github.com/fabric8-quickstarts/karaf-camel-log.git", "required": true, "description": "The URL of the repository with your application source code." }, { "name": "GIT_REF", "displayName": "Git Reference", - "value": "karaf2-camel-log-1.0.0.redhat-000022", + "value": "karaf-camel-log-1.0.0.fuse-710018-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "SERVICE_NAME", "displayName": "Service Name", - "value": "s2i-karaf2-camel-log", + "value": "s2i-fuse70-karaf-camel-log", "description": "Exposed Service name." }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000022", + "value": "1.0.0.fuse-710018-redhat-00002", "description": "The application version." }, { @@ -87,12 +89,12 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." }, { "name": "MEMORY_REQUEST", "displayName": "Memory request", - "value": "1.5G", + "value": "128Mi", "required": true, "description": "The amount of memory required for the container to run." }, @@ -106,9 +108,23 @@ { "name": "MEMORY_LIMIT", "displayName": "Memory limit", - "value": "2G", + "value": "512Mi", "required": true, "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -122,7 +138,7 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -142,7 +158,7 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -182,7 +198,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-karaf-openshift:${BUILDER_VERSION}" + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -212,7 +228,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -228,15 +251,12 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -261,7 +281,7 @@ "container": "karaf", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -273,7 +293,7 @@ "container": "karaf", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } diff --git a/addons/xpaas/v3.9/xpaas-templates/karaf2-camel-rest-sql-template.json b/addons/xpaas/v3.11/xpaas-templates/karaf-camel-rest-sql-template.json similarity index 86% rename from addons/xpaas/v3.9/xpaas-templates/karaf2-camel-rest-sql-template.json rename to addons/xpaas/v3.11/xpaas-templates/karaf-camel-rest-sql-template.json index 71f3cbf601..cae03d0f5b 100644 --- a/addons/xpaas/v3.9/xpaas-templates/karaf2-camel-rest-sql-template.json +++ b/addons/xpaas/v3.11/xpaas-templates/karaf-camel-rest-sql-template.json @@ -3,41 +3,43 @@ "kind": "Template", "metadata": { "annotations": { - "description": "Camel example using Rest DSL with SQL Database in Karaf container. This example demonstrates how to use SQL via JDBC along with Camel's REST DSL to expose a RESTful API. The OpenShift MySQL container image should already be installed and running on your OpenShift installation, one simple way to run a MySQL service is following the documentation of the Openshift MySQL container image related to the mysql-ephemeral template..", + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel REST SQL with Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Camel example using Rest DSL with SQL Database in Karaf container. This example demonstrates how to use SQL via JDBC along with Camel's REST DSL to expose a RESTful API. The OpenShift MySQL container image should already be installed and running on your OpenShift installation, one simple way to run a MySQL service is following the documentation of the OpenShift MySQL container image related to the mysql-ephemeral template..", "tags": "quickstart,java,karaf,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-karaf2-camel-rest-sql" + "name": "s2i-fuse71-karaf-camel-rest-sql" }, "labels": { - "template": "s2i-karaf2-camel-rest-sql" + "template": "s2i-fuse71-karaf-camel-rest-sql" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-karaf2-camel-rest-sql", + "value": "s2i-fuse71-karaf-camel-rest-sql", "description": "The name assigned to the application." }, { "name": "GIT_REPO", "displayName": "Git Repository URL", - "value": "https://github.com/fabric8-quickstarts/karaf2-camel-rest-sql.git", + "value": "https://github.com/fabric8-quickstarts/karaf-camel-rest-sql.git", "required": true, "description": "The URL of the repository with your application source code." }, { "name": "GIT_REF", "displayName": "Git Reference", - "value": "karaf2-camel-rest-sql-1.0.0.redhat-000022", + "value": "karaf-camel-rest-sql-1.0.0.fuse-710018-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "SERVICE_NAME", "displayName": "Service Name", - "value": "s2i-karaf2-camel-rest", + "value": "s2i-karaf-camel-rest", "description": "Exposed Service name." }, { @@ -67,13 +69,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000022", + "value": "1.0.0.fuse-710018-redhat-00002", "description": "The application version." }, { @@ -104,12 +106,12 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." }, { "name": "MEMORY_REQUEST", "displayName": "Memory request", - "value": "1.5G", + "value": "128Mi", "required": true, "description": "The amount of memory required for the container to run." }, @@ -123,9 +125,23 @@ { "name": "MEMORY_LIMIT", "displayName": "Memory limit", - "value": "2G", + "value": "512Mi", "required": true, "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -137,7 +153,7 @@ "container": "karaf", "component": "${APP_NAME}", "provider": "s2i", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, @@ -160,7 +176,7 @@ "container": "karaf", "component": "${APP_NAME}", "provider": "s2i", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, @@ -178,7 +194,7 @@ ], "selector": { "container": "karaf", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "component": "${APP_NAME}", "provider": "s2i", "group": "quickstarts" @@ -195,7 +211,7 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -215,7 +231,7 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -255,7 +271,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-karaf-openshift:${BUILDER_VERSION}" + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -285,7 +301,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -301,15 +324,12 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -334,7 +354,7 @@ "container": "karaf", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -346,7 +366,7 @@ "container": "karaf", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } diff --git a/addons/xpaas/v3.9/xpaas-templates/karaf2-cxf-rest-template.json b/addons/xpaas/v3.11/xpaas-templates/karaf-cxf-rest-template.json similarity index 85% rename from addons/xpaas/v3.9/xpaas-templates/karaf2-cxf-rest-template.json rename to addons/xpaas/v3.11/xpaas-templates/karaf-cxf-rest-template.json index 2fab6e4007..2fa87c8427 100644 --- a/addons/xpaas/v3.9/xpaas-templates/karaf2-cxf-rest-template.json +++ b/addons/xpaas/v3.11/xpaas-templates/karaf-cxf-rest-template.json @@ -3,53 +3,55 @@ "kind": "Template", "metadata": { "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel CXF REST with Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "REST example using CXF in Karaf container. This quickstart demonstrates how to create a RESTful (JAX-RS) web service using CXF and expose it through the OSGi HTTP Service", "tags": "quickstart,java,karaf,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-karaf2-cxf-rest" + "name": "s2i-fuse71-karaf-cxf-rest" }, "labels": { - "template": "s2i-karaf2-cxf-rest" + "template": "s2i-fuse71-karaf-cxf-rest" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-karaf2-cxf-rest", + "value": "s2i-fuse71-karaf-cxf-rest", "description": "The name assigned to the application." }, { "name": "GIT_REPO", "displayName": "Git Repository URL", - "value": "https://github.com/fabric8-quickstarts/karaf2-cxf-rest.git", + "value": "https://github.com/fabric8-quickstarts/karaf-cxf-rest.git", "required": true, "description": "The URL of the repository with your application source code." }, { "name": "GIT_REF", "displayName": "Git Reference", - "value": "karaf2-cxf-rest-1.0.0.redhat-000022", + "value": "karaf-cxf-rest-1.0.0.fuse-710018-redhat-00003", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "SERVICE_NAME", "displayName": "Service Name", - "value": "s2i-karaf2-cxf-rest", + "value": "s2i-fuse70-karaf-cxf-rest", "description": "Exposed Service name." }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000022", + "value": "1.0.0.fuse-710018-redhat-00002", "description": "The application version." }, { @@ -80,12 +82,12 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." }, { "name": "MEMORY_REQUEST", "displayName": "Memory request", - "value": "1.5G", + "value": "128Mi", "required": true, "description": "The amount of memory required for the container to run." }, @@ -99,9 +101,23 @@ { "name": "MEMORY_LIMIT", "displayName": "Memory limit", - "value": "2G", + "value": "512Mi", "required": true, "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -113,7 +129,7 @@ "container": "java", "component": "${APP_NAME}", "provider": "s2i", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, @@ -136,7 +152,7 @@ "container": "karaf", "component": "${APP_NAME}", "provider": "s2i", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, @@ -154,7 +170,7 @@ ], "selector": { "container": "karaf", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "component": "${APP_NAME}", "provider": "s2i", "group": "quickstarts" @@ -171,7 +187,7 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -191,7 +207,7 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -231,7 +247,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-karaf-openshift:${BUILDER_VERSION}" + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -261,7 +277,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -277,15 +300,12 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -310,7 +330,7 @@ "container": "karaf", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -322,7 +342,7 @@ "container": "karaf", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } diff --git a/addons/xpaas/v3.11/xpaas-templates/openjdk18-web-basic-s2i.json b/addons/xpaas/v3.11/xpaas-templates/openjdk18-web-basic-s2i.json new file mode 100644 index 0000000000..21023df3c2 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/openjdk18-web-basic-s2i.json @@ -0,0 +1,272 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-rh-openjdk", + "tags": "java", + "version": "1.4.14", + "openshift.io/display-name": "OpenJDK 8", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example Java application using OpenJDK 8. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat OpenJDK Java 8 based application.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "openjdk18-web-basic-s2i" + }, + "labels": { + "template": "openjdk18-web-basic-s2i", + "xpaas": "1.4.14" + }, + "message": "A new java application has been created in your project.", + "parameters": [ + { + "description": "The name for the application.", + "displayName": "Application Name", + "name": "APPLICATION_NAME", + "value": "openjdk-app", + "required": true + }, + { + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "displayName": "Custom http Route Hostname", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "description": "Git source URI for application", + "displayName": "Git Repository URL", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "description": "Git branch/tag reference", + "displayName": "Git Reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "master", + "required": false + }, + { + "description": "Path within Git project to build; empty for root project directory.", + "displayName": "Context Directory", + "name": "CONTEXT_DIR", + "value": "undertow-servlet", + "required": false + }, + { + "description": "GitHub trigger secret", + "displayName": "Github Webhook Secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "description": "Generic build trigger secret", + "displayName": "Generic Webhook Secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "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.", + "displayName": "ImageStream Namespace", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The application's http port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "java:8" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "env": [ + ], + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-mysql-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-mysql-persistent-s2i.json new file mode 100644 index 0000000000..b2bdeede9d --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-mysql-persistent-s2i.json @@ -0,0 +1,1212 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-processserver", + "tags": "processserver,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + A-MQ + MySQL (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example BPM Suite application with A-MQ and a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Business Process Suite intelligent process server 6.4 based application, including a build configuration, application deployment configuration, Red Hat A-MQ for messaging broker, database deployment configuration for MySQL using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-bpm-suite/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "processserver64-amq-mysql-persistent-s2i" + }, + "labels": { + "template": "processserver64-amq-mysql-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new persistent BPMS application (using MySQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Protocol", + "description": "The protocol to access the KIE Server REST interface.", + "name": "KIE_SERVER_PROTOCOL", + "value": "https", + "required": false + }, + { + "displayName": "KIE Server Port", + "description": "The port to access the KIE Server REST interface.", + "name": "KIE_SERVER_PORT", + "value": "8443", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "KIE Server Domain", + "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", + "name": "KIE_SERVER_DOMAIN", + "value": "other", + "required": false + }, + { + "displayName": "KIE Server JMS Queues Request", + "description": "JNDI name of request queue for JMS.", + "name": "KIE_SERVER_JMS_QUEUES_REQUEST", + "value": "queue/KIE.SERVER.REQUEST", + "required": false + }, + { + "displayName": "KIE Server JMS Queues Response", + "description": "JNDI name of response queue for JMS.", + "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", + "value": "queue/KIE.SERVER.RESPONSE", + "required": false + }, + { + "displayName": "KIE Server Executor JMS Queue", + "description": "JNDI name of executor queue for JMS.", + "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", + "value": "queue/KIE.SERVER.EXECUTOR", + "required": false + }, + { + "displayName": "KIE Server Persistence Dialect", + "description": "Hibernate persistence dialect.", + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "org.hibernate.dialect.MySQL5Dialect", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "processserver/library", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", + "name": "DB_JNDI", + "value": "java:jboss/datasources/ExampleDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "JMS Connection Factory JNDI Name", + "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", + "name": "MQ_JNDI", + "value": "java:/JmsXA", + "required": false + }, + { + "displayName": "Split Data?", + "description": "Split the data directory for each node in a mesh.", + "name": "AMQ_SPLIT", + "value": "false", + "required": false + }, + { + "displayName": "A-MQ Protocols", + "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_QUEUES", + "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "processserver-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Storage Limit", + "description": "The A-MQ storage usage limit", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "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": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-processserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "processserver-keystore-volume", + "mountPath": "/etc/processserver-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_PROTOCOL", + "value": "${KIE_SERVER_PROTOCOL}" + }, + { + "name": "KIE_SERVER_PORT", + "value": "${KIE_SERVER_PORT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "KIE_SERVER_DOMAIN", + "value": "${KIE_SERVER_DOMAIN}" + }, + { + "name": "KIE_SERVER_JMS_QUEUES_REQUEST", + "value": "${KIE_SERVER_JMS_QUEUES_REQUEST}" + }, + { + "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", + "value": "${KIE_SERVER_JMS_QUEUES_RESPONSE}" + }, + { + "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", + "value": "${KIE_SERVER_EXECUTOR_JMS_QUEUE}" + }, + { + "name": "MQ_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-amq=MQ" + }, + { + "name": "MQ_JNDI", + "value": "${MQ_JNDI}" + }, + { + "name": "MQ_USERNAME", + "value": "${MQ_USERNAME}" + }, + { + "name": "MQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "MQ_PROTOCOL", + "value": "tcp" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "${KIE_SERVER_PERSISTENCE_DIALECT}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB,${APPLICATION_NAME}-mysql=QUARTZ" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "QUARTZ_JNDI", + "value": "${DB_JNDI}NotManaged" + }, + { + "name": "QUARTZ_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "QUARTZ_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "QUARTZ_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "QUARTZ_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "QUARTZ_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "QUARTZ_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "QUARTZ_JTA", + "value": "false" + }, + { + "name": "QUARTZ_NONXA", + "value": "true" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/processserver-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "processserver-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + }, + { + "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-63:1.3" + } + } + }, + { + "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-63", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "mountPath": "/opt/amq/data", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "amqp-ssl", + "containerPort": 5671, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "stomp-ssl", + "containerPort": 61612, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + }, + { + "name": "tcp-ssl", + "containerPort": 61617, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AMQ_USER", + "value": "${MQ_USERNAME}" + }, + { + "name": "AMQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "AMQ_TRANSPORTS", + "value": "${MQ_PROTOCOL}" + }, + { + "name": "AMQ_SPLIT", + "value": "${AMQ_SPLIT}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "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": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-mysql-s2i.json b/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-mysql-s2i.json new file mode 100644 index 0000000000..c8df508c41 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-mysql-s2i.json @@ -0,0 +1,1104 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-processserver", + "tags": "processserver,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + A-MQ + MySQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example BPM Suite application with A-MQ and a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Business Process Suite intelligent process server 6.4 based application, including a build configuration, application deployment configuration, Red Hat A-MQ for messaging broker, database deployment configuration for MySQL using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-bpm-suite/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "processserver64-amq-mysql-s2i" + }, + "labels": { + "template": "processserver64-amq-mysql-s2i", + "xpaas": "1.4.14" + }, + "message": "A new BPMS application (using MySQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Protocol", + "description": "The protocol to access the KIE Server REST interface.", + "name": "KIE_SERVER_PROTOCOL", + "value": "https", + "required": false + }, + { + "displayName": "KIE Server Port", + "description": "The port to access the KIE Server REST interface.", + "name": "KIE_SERVER_PORT", + "value": "8443", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "KIE Server Domain", + "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", + "name": "KIE_SERVER_DOMAIN", + "value": "other", + "required": false + }, + { + "displayName": "KIE Server JMS Queues Request", + "description": "JNDI name of request queue for JMS.", + "name": "KIE_SERVER_JMS_QUEUES_REQUEST", + "value": "queue/KIE.SERVER.REQUEST", + "required": false + }, + { + "displayName": "KIE Server JMS Queues Response", + "description": "JNDI name of response queue for JMS.", + "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", + "value": "queue/KIE.SERVER.RESPONSE", + "required": false + }, + { + "displayName": "KIE Server Executor JMS Queue", + "description": "JNDI name of executor queue for JMS.", + "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", + "value": "queue/KIE.SERVER.EXECUTOR", + "required": false + }, + { + "displayName": "KIE Server Persistence Dialect", + "description": "Hibernate persistence dialect.", + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "org.hibernate.dialect.MySQL5Dialect", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "processserver/library", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", + "name": "DB_JNDI", + "value": "java:jboss/datasources/ExampleDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "JMS Connection Factory JNDI Name", + "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", + "name": "MQ_JNDI", + "value": "java:/JmsXA", + "required": false + }, + { + "displayName": "A-MQ Protocols", + "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_QUEUES", + "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "processserver-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Storage Limit", + "description": "The A-MQ storage usage limit", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "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": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-processserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "processserver-keystore-volume", + "mountPath": "/etc/processserver-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_PROTOCOL", + "value": "${KIE_SERVER_PROTOCOL}" + }, + { + "name": "KIE_SERVER_PORT", + "value": "${KIE_SERVER_PORT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "KIE_SERVER_DOMAIN", + "value": "${KIE_SERVER_DOMAIN}" + }, + { + "name": "KIE_SERVER_JMS_QUEUES_REQUEST", + "value": "${KIE_SERVER_JMS_QUEUES_REQUEST}" + }, + { + "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", + "value": "${KIE_SERVER_JMS_QUEUES_RESPONSE}" + }, + { + "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", + "value": "${KIE_SERVER_EXECUTOR_JMS_QUEUE}" + }, + { + "name": "MQ_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-amq=MQ" + }, + { + "name": "MQ_JNDI", + "value": "${MQ_JNDI}" + }, + { + "name": "MQ_USERNAME", + "value": "${MQ_USERNAME}" + }, + { + "name": "MQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "MQ_PROTOCOL", + "value": "tcp" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "${KIE_SERVER_PERSISTENCE_DIALECT}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/processserver-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "processserver-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + }, + { + "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-63:1.3" + } + } + }, + { + "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-63", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "amqp-ssl", + "containerPort": 5671, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "stomp-ssl", + "containerPort": 61612, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + }, + { + "name": "tcp-ssl", + "containerPort": 61617, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AMQ_USER", + "value": "${MQ_USERNAME}" + }, + { + "name": "AMQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "AMQ_TRANSPORTS", + "value": "${MQ_PROTOCOL}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-postgresql-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-postgresql-persistent-s2i.json new file mode 100644 index 0000000000..1a04345b24 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-postgresql-persistent-s2i.json @@ -0,0 +1,1181 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-processserver", + "tags": "processserver,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + A-MQ + PostgreSQL (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example BPM Suite application with A-MQ and a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Business Process Suite intelligent process server 6.4 based application, including a build configuration, application deployment configuration, Red Hat A-MQ for messaging broker, database deployment configuration for PostgreSQL using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-bpm-suite/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "processserver64-amq-postgresql-persistent-s2i" + }, + "labels": { + "template": "processserver64-amq-postgresql-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new persistent BPMS application (using PostgreSQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Protocol", + "description": "The protocol to access the KIE Server REST interface.", + "name": "KIE_SERVER_PROTOCOL", + "value": "https", + "required": false + }, + { + "displayName": "KIE Server Port", + "description": "The port to access the KIE Server REST interface.", + "name": "KIE_SERVER_PORT", + "value": "8443", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "KIE Server Domain", + "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", + "name": "KIE_SERVER_DOMAIN", + "value": "other", + "required": false + }, + { + "displayName": "KIE Server JMS Queues Request", + "description": "JNDI name of request queue for JMS.", + "name": "KIE_SERVER_JMS_QUEUES_REQUEST", + "value": "queue/KIE.SERVER.REQUEST", + "required": false + }, + { + "displayName": "KIE Server JMS Queues Response", + "description": "JNDI name of response queue for JMS.", + "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", + "value": "queue/KIE.SERVER.RESPONSE", + "required": false + }, + { + "displayName": "KIE Server Executor JMS Queue", + "description": "JNDI name of executor queue for JMS.", + "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", + "value": "queue/KIE.SERVER.EXECUTOR", + "required": false + }, + { + "displayName": "KIE Server Persistence Dialect", + "description": "Hibernate persistence dialect.", + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "org.hibernate.dialect.PostgreSQL82Dialect", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "processserver/library", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", + "name": "DB_JNDI", + "value": "java:jboss/datasources/ExampleDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "JMS Connection Factory JNDI Name", + "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", + "name": "MQ_JNDI", + "value": "java:/JmsXA", + "required": false + }, + { + "displayName": "Split Data?", + "description": "Split the data directory for each node in a mesh.", + "name": "AMQ_SPLIT", + "value": "false", + "required": false + }, + { + "displayName": "A-MQ Protocols", + "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_QUEUES", + "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "processserver-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Storage Limit", + "description": "The A-MQ storage usage limit", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "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": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-processserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "processserver-keystore-volume", + "mountPath": "/etc/processserver-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_PROTOCOL", + "value": "${KIE_SERVER_PROTOCOL}" + }, + { + "name": "KIE_SERVER_PORT", + "value": "${KIE_SERVER_PORT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "KIE_SERVER_DOMAIN", + "value": "${KIE_SERVER_DOMAIN}" + }, + { + "name": "KIE_SERVER_JMS_QUEUES_REQUEST", + "value": "${KIE_SERVER_JMS_QUEUES_REQUEST}" + }, + { + "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", + "value": "${KIE_SERVER_JMS_QUEUES_RESPONSE}" + }, + { + "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", + "value": "${KIE_SERVER_EXECUTOR_JMS_QUEUE}" + }, + { + "name": "MQ_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-amq=MQ" + }, + { + "name": "MQ_JNDI", + "value": "${MQ_JNDI}" + }, + { + "name": "MQ_USERNAME", + "value": "${MQ_USERNAME}" + }, + { + "name": "MQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "MQ_PROTOCOL", + "value": "tcp" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "${KIE_SERVER_PERSISTENCE_DIALECT}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB,${APPLICATION_NAME}-postgresql=QUARTZ" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "QUARTZ_JNDI", + "value": "${DB_JNDI}NotManaged" + }, + { + "name": "QUARTZ_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "QUARTZ_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "QUARTZ_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "QUARTZ_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "QUARTZ_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "QUARTZ_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "QUARTZ_JTA", + "value": "false" + }, + { + "name": "QUARTZ_NONXA", + "value": "true" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/processserver-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "processserver-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + }, + { + "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-63:1.3" + } + } + }, + { + "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-63", + "imagePullPolicy": "Always", + "volumeMounts": [ + { + "mountPath": "/opt/amq/data", + "name": "${APPLICATION_NAME}-amq-pvol" + } + ], + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "amqp-ssl", + "containerPort": 5671, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "stomp-ssl", + "containerPort": 61612, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + }, + { + "name": "tcp-ssl", + "containerPort": 61617, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AMQ_USER", + "value": "${MQ_USERNAME}" + }, + { + "name": "AMQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "AMQ_TRANSPORTS", + "value": "${MQ_PROTOCOL}" + }, + { + "name": "AMQ_SPLIT", + "value": "${AMQ_SPLIT}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "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": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-postgresql-s2i.json b/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-postgresql-s2i.json new file mode 100644 index 0000000000..44630c9b82 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/processserver64-amq-postgresql-s2i.json @@ -0,0 +1,1074 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for Red Hat JBoss BPM Suite 6.4 intelligent process server AMQ and PostgreSQL applications built using S2I.", + "iconClass": "icon-processserver", + "tags": "processserver,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + A-MQ + PostgreSQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example BPM Suite application with A-MQ and a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Business Process Suite intelligent process server 6.4 based application, including a build configuration, application deployment configuration, Red Hat A-MQ for messaging broker, database deployment configuration for PostgreSQL using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-bpm-suite/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "processserver64-amq-postgresql-s2i" + }, + "labels": { + "template": "processserver64-amq-postgresql-s2i", + "xpaas": "1.4.14" + }, + "message": "A new BPMS application (using PostgreSQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Protocol", + "description": "The protocol to access the KIE Server REST interface.", + "name": "KIE_SERVER_PROTOCOL", + "value": "https", + "required": false + }, + { + "displayName": "KIE Server Port", + "description": "The port to access the KIE Server REST interface.", + "name": "KIE_SERVER_PORT", + "value": "8443", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "KIE Server Domain", + "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", + "name": "KIE_SERVER_DOMAIN", + "value": "other", + "required": false + }, + { + "displayName": "KIE Server JMS Queues Request", + "description": "JNDI name of request queue for JMS.", + "name": "KIE_SERVER_JMS_QUEUES_REQUEST", + "value": "queue/KIE.SERVER.REQUEST", + "required": false + }, + { + "displayName": "KIE Server JMS Queues Response", + "description": "JNDI name of response queue for JMS.", + "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", + "value": "queue/KIE.SERVER.RESPONSE", + "required": false + }, + { + "displayName": "KIE Server Executor JMS Queue", + "description": "JNDI name of executor queue for JMS.", + "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", + "value": "queue/KIE.SERVER.EXECUTOR", + "required": false + }, + { + "displayName": "KIE Server Persistence Dialect", + "description": "Hibernate persistence dialect.", + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "org.hibernate.dialect.PostgreSQL82Dialect", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "processserver/library", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", + "name": "DB_JNDI", + "value": "java:jboss/datasources/ExampleDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "JMS Connection Factory JNDI Name", + "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/JmsXA", + "name": "MQ_JNDI", + "value": "java:/JmsXA", + "required": false + }, + { + "displayName": "A-MQ Protocols", + "description": "Broker protocols to configure, separated by commas. Allowed values are: `openwire`, `amqp`, `stomp` and `mqtt`. Only `openwire` is supported by EAP.", + "name": "MQ_PROTOCOL", + "value": "openwire", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names, separated by commas. These queues will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_QUEUES", + "value": "KIE.SERVER.REQUEST,KIE.SERVER.RESPONSE,KIE.SERVER.EXECUTOR", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names, separated by commas. These topics will be automatically created when the broker starts. Also, they will be made accessible as JNDI resources in EAP.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "processserver-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "A-MQ Username", + "description": "User name for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Password", + "description": "Password for standard broker user. It is required for connecting to the broker. If left empty, it will be generated.", + "name": "MQ_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": false + }, + { + "displayName": "A-MQ Mesh Discovery Type", + "description": "The discovery agent type to use for discovering mesh endpoints. 'dns' will use OpenShift's DNS service to resolve endpoints. 'kube' will use Kubernetes REST API to resolve service endpoints. If using 'kube' the service account for the pod must have the 'view' role, which can be added via 'oc policy add-role-to-user view system:serviceaccount::default' where is the project namespace.", + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "dns", + "required": false + }, + { + "displayName": "A-MQ Storage Limit", + "description": "The A-MQ storage usage limit", + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "100 gb", + "required": false + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"},{\"name\": \"${APPLICATION_NAME}-amq-tcp\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "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": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "mesh", + "port": 61616 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-amq" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-amq-mesh", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "Supports node discovery for mesh formation." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-processserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "processserver-keystore-volume", + "mountPath": "/etc/processserver-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_PROTOCOL", + "value": "${KIE_SERVER_PROTOCOL}" + }, + { + "name": "KIE_SERVER_PORT", + "value": "${KIE_SERVER_PORT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "KIE_SERVER_DOMAIN", + "value": "${KIE_SERVER_DOMAIN}" + }, + { + "name": "KIE_SERVER_JMS_QUEUES_REQUEST", + "value": "${KIE_SERVER_JMS_QUEUES_REQUEST}" + }, + { + "name": "KIE_SERVER_JMS_QUEUES_RESPONSE", + "value": "${KIE_SERVER_JMS_QUEUES_RESPONSE}" + }, + { + "name": "KIE_SERVER_EXECUTOR_JMS_QUEUE", + "value": "${KIE_SERVER_EXECUTOR_JMS_QUEUE}" + }, + { + "name": "MQ_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-amq=MQ" + }, + { + "name": "MQ_JNDI", + "value": "${MQ_JNDI}" + }, + { + "name": "MQ_USERNAME", + "value": "${MQ_USERNAME}" + }, + { + "name": "MQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "MQ_PROTOCOL", + "value": "tcp" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "${KIE_SERVER_PERSISTENCE_DIALECT}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/processserver-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "processserver-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + }, + { + "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-63:1.3" + } + } + }, + { + "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-63", + "imagePullPolicy": "Always", + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/amq/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "amqp", + "containerPort": 5672, + "protocol": "TCP" + }, + { + "name": "amqp-ssl", + "containerPort": 5671, + "protocol": "TCP" + }, + { + "name": "mqtt", + "containerPort": 1883, + "protocol": "TCP" + }, + { + "name": "stomp", + "containerPort": 61613, + "protocol": "TCP" + }, + { + "name": "stomp-ssl", + "containerPort": 61612, + "protocol": "TCP" + }, + { + "name": "tcp", + "containerPort": 61616, + "protocol": "TCP" + }, + { + "name": "tcp-ssl", + "containerPort": 61617, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "AMQ_USER", + "value": "${MQ_USERNAME}" + }, + { + "name": "AMQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "AMQ_TRANSPORTS", + "value": "${MQ_PROTOCOL}" + }, + { + "name": "AMQ_MESH_DISCOVERY_TYPE", + "value": "${AMQ_MESH_DISCOVERY_TYPE}" + }, + { + "name": "AMQ_MESH_SERVICE_NAME", + "value": "${APPLICATION_NAME}-amq-mesh" + }, + { + "name": "AMQ_MESH_SERVICE_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + }, + { + "name": "AMQ_STORAGE_USAGE_LIMIT", + "value": "${AMQ_STORAGE_USAGE_LIMIT}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/processserver64-basic-s2i.json b/addons/xpaas/v3.11/xpaas-templates/processserver64-basic-s2i.json new file mode 100644 index 0000000000..cd02c25d98 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/processserver64-basic-s2i.json @@ -0,0 +1,399 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-processserver", + "tags": "processserver,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server (no https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example BPM Suite application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Business Process Suite intelligent process server 6.4 based application, including a build configuration, application deployment configuration and insecure communication using http.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-bpm-suite/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "processserver64-basic-s2i" + }, + "labels": { + "template": "processserver64-basic-s2i", + "xpaas": "1.4.14" + }, + "message": "A new BPMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "KIE Server Persistence Dialect", + "description": "Hibernate persistence dialect.", + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "org.hibernate.dialect.H2Dialect", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "processserver/library", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "HORNETQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "HORNETQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "HornetQ Password", + "description": "HornetQ cluster admin password", + "name": "HORNETQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-processserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "HORNETQ_CLUSTER_PASSWORD", + "value": "${HORNETQ_CLUSTER_PASSWORD}" + }, + { + "name": "HORNETQ_QUEUES", + "value": "${HORNETQ_QUEUES}" + }, + { + "name": "HORNETQ_TOPICS", + "value": "${HORNETQ_TOPICS}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/processserver64-mysql-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/processserver64-mysql-persistent-s2i.json new file mode 100644 index 0000000000..f7718362a3 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/processserver64-mysql-persistent-s2i.json @@ -0,0 +1,891 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "description": "Application template for Red Hat JBoss BPM Suite 6.4 intelligent process server MySQL applications with persistent storage built using S2I.", + "iconClass": "icon-processserver", + "tags": "processserver,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + MySQL (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example BPM Suite application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Business Process Suite intelligent process server 6.4 based application, including a build configuration, application deployment configuration, database deployment configuration for MySQL using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-bpm-suite/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "processserver64-mysql-persistent-s2i" + }, + "labels": { + "template": "processserver64-mysql-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new persistent BPMS application (using MySQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Protocol", + "description": "The protocol to access the KIE Server REST interface.", + "name": "KIE_SERVER_PROTOCOL", + "value": "https", + "required": false + }, + { + "displayName": "KIE Server Port", + "description": "The port to access the KIE Server REST interface.", + "name": "KIE_SERVER_PORT", + "value": "8443", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "KIE Server Domain", + "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", + "name": "KIE_SERVER_DOMAIN", + "value": "other", + "required": false + }, + { + "displayName": "KIE Server Persistence Dialect", + "description": "Hibernate persistence dialect.", + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "org.hibernate.dialect.MySQL5Dialect", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "processserver/library", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", + "name": "DB_JNDI", + "value": "java:jboss/datasources/ExampleDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "HORNETQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "HORNETQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "processserver-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "HornetQ Password", + "description": "HornetQ cluster admin password", + "name": "HORNETQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-processserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "processserver-keystore-volume", + "mountPath": "/etc/processserver-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_PROTOCOL", + "value": "${KIE_SERVER_PROTOCOL}" + }, + { + "name": "KIE_SERVER_PORT", + "value": "${KIE_SERVER_PORT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "KIE_SERVER_DOMAIN", + "value": "${KIE_SERVER_DOMAIN}" + }, + { + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "${KIE_SERVER_PERSISTENCE_DIALECT}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB,${APPLICATION_NAME}-mysql=QUARTZ" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "QUARTZ_JNDI", + "value": "${DB_JNDI}NotManaged" + }, + { + "name": "QUARTZ_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "QUARTZ_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "QUARTZ_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "QUARTZ_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "QUARTZ_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "QUARTZ_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "QUARTZ_JTA", + "value": "false" + }, + { + "name": "QUARTZ_NONXA", + "value": "true" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/processserver-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "HORNETQ_CLUSTER_PASSWORD", + "value": "${HORNETQ_CLUSTER_PASSWORD}" + }, + { + "name": "HORNETQ_QUEUES", + "value": "${HORNETQ_QUEUES}" + }, + { + "name": "HORNETQ_TOPICS", + "value": "${HORNETQ_TOPICS}" + } + ] + } + ], + "volumes": [ + { + "name": "processserver-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/processserver64-mysql-s2i.json b/addons/xpaas/v3.11/xpaas-templates/processserver64-mysql-s2i.json new file mode 100644 index 0000000000..327b01aa0b --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/processserver64-mysql-s2i.json @@ -0,0 +1,827 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-processserver", + "tags": "processserver,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + MySQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example BPM Suite application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Business Process Suite intelligent process server 6.4 based application, including a build configuration, application deployment configuration, database deployment configuration for MySQL using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-bpm-suite/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "processserver64-mysql-s2i" + }, + "labels": { + "template": "processserver64-mysql-s2i", + "xpaas": "1.4.14" + }, + "message": "A new BPMS application (using MySQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Protocol", + "description": "The protocol to access the KIE Server REST interface.", + "name": "KIE_SERVER_PROTOCOL", + "value": "https", + "required": false + }, + { + "displayName": "KIE Server Port", + "description": "The port to access the KIE Server REST interface.", + "name": "KIE_SERVER_PORT", + "value": "8443", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "KIE Server Domain", + "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", + "name": "KIE_SERVER_DOMAIN", + "value": "other", + "required": false + }, + { + "displayName": "KIE Server Persistence Dialect", + "description": "Hibernate persistence dialect.", + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "org.hibernate.dialect.MySQL5Dialect", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "processserver/library", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", + "name": "DB_JNDI", + "value": "java:jboss/datasources/ExampleDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "HORNETQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "HORNETQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "processserver-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "HornetQ Password", + "description": "HornetQ cluster admin password", + "name": "HORNETQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-processserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "processserver-keystore-volume", + "mountPath": "/etc/processserver-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_PROTOCOL", + "value": "${KIE_SERVER_PROTOCOL}" + }, + { + "name": "KIE_SERVER_PORT", + "value": "${KIE_SERVER_PORT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "KIE_SERVER_DOMAIN", + "value": "${KIE_SERVER_DOMAIN}" + }, + { + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "${KIE_SERVER_PERSISTENCE_DIALECT}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/processserver-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "HORNETQ_CLUSTER_PASSWORD", + "value": "${HORNETQ_CLUSTER_PASSWORD}" + }, + { + "name": "HORNETQ_QUEUES", + "value": "${HORNETQ_QUEUES}" + }, + { + "name": "HORNETQ_TOPICS", + "value": "${HORNETQ_TOPICS}" + } + ] + } + ], + "volumes": [ + { + "name": "processserver-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/processserver64-postgresql-persistent-s2i.json b/addons/xpaas/v3.11/xpaas-templates/processserver64-postgresql-persistent-s2i.json new file mode 100644 index 0000000000..c3b5a3b701 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/processserver64-postgresql-persistent-s2i.json @@ -0,0 +1,859 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-processserver", + "tags": "processserver,jboss", + "version": "1.4.14", + "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + PostgreSQL (with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example BPM Suite application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Business Process Suite intelligent process server 6.4 based application, including a build configuration, application deployment configuration, database deployment configuration for PostgreSQL using persistence and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-bpm-suite/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "processserver64-postgresql-persistent-s2i" + }, + "labels": { + "template": "processserver64-postgresql-persistent-s2i", + "xpaas": "1.4.14" + }, + "message": "A new persistent BPMS application (using PostgreSQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Protocol", + "description": "The protocol to access the KIE Server REST interface.", + "name": "KIE_SERVER_PROTOCOL", + "value": "https", + "required": false + }, + { + "displayName": "KIE Server Port", + "description": "The port to access the KIE Server REST interface.", + "name": "KIE_SERVER_PORT", + "value": "8443", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "KIE Server Domain", + "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", + "name": "KIE_SERVER_DOMAIN", + "value": "other", + "required": false + }, + { + "displayName": "KIE Server Persistence Dialect", + "description": "Hibernate persistence dialect.", + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "org.hibernate.dialect.PostgreSQL82Dialect", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "processserver/library", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", + "name": "DB_JNDI", + "value": "java:jboss/datasources/ExampleDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "HORNETQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "HORNETQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "processserver-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "HornetQ Password", + "description": "HornetQ cluster admin password", + "name": "HORNETQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-processserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "processserver-keystore-volume", + "mountPath": "/etc/processserver-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_PROTOCOL", + "value": "${KIE_SERVER_PROTOCOL}" + }, + { + "name": "KIE_SERVER_PORT", + "value": "${KIE_SERVER_PORT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "KIE_SERVER_DOMAIN", + "value": "${KIE_SERVER_DOMAIN}" + }, + { + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "${KIE_SERVER_PERSISTENCE_DIALECT}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB,${APPLICATION_NAME}-postgresql=QUARTZ" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "QUARTZ_JNDI", + "value": "${DB_JNDI}NotManaged" + }, + { + "name": "QUARTZ_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "QUARTZ_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "QUARTZ_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "QUARTZ_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "QUARTZ_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "QUARTZ_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "QUARTZ_JTA", + "value": "false" + }, + { + "name": "QUARTZ_NONXA", + "value": "true" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/processserver-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "HORNETQ_CLUSTER_PASSWORD", + "value": "${HORNETQ_CLUSTER_PASSWORD}" + }, + { + "name": "HORNETQ_QUEUES", + "value": "${HORNETQ_QUEUES}" + }, + { + "name": "HORNETQ_TOPICS", + "value": "${HORNETQ_TOPICS}" + } + ] + } + ], + "volumes": [ + { + "name": "processserver-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/processserver64-postgresql-s2i.json b/addons/xpaas/v3.11/xpaas-templates/processserver64-postgresql-s2i.json new file mode 100644 index 0000000000..d31ac90be8 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/processserver64-postgresql-s2i.json @@ -0,0 +1,796 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass": "icon-processserver", + "tags": "processserver,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + PostgreSQL (Ephemeral with https)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example BPM Suite application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Business Process Suite intelligent process server 6.4 based application, including a build configuration, application deployment configuration, database deployment configuration for PostgreSQL using ephemeral (temporary) storage and secure communication using https.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-bpm-suite/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "processserver64-postgresql-s2i" + }, + "labels": { + "template": "processserver64-postgresql-s2i", + "xpaas": "1.4.14" + }, + "message": "A new BPMS application (using PostgreSQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", + "parameters": [ + { + "displayName": "KIE Container Deployment", + "description": "The KIE Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2", + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "processserver-library=org.openshift.quickstarts:processserver-library:1.3.0.Final", + "required": false + }, + { + "displayName": "KIE Server Protocol", + "description": "The protocol to access the KIE Server REST interface.", + "name": "KIE_SERVER_PROTOCOL", + "value": "https", + "required": false + }, + { + "displayName": "KIE Server Port", + "description": "The port to access the KIE Server REST interface.", + "name": "KIE_SERVER_PORT", + "value": "8443", + "required": false + }, + { + "displayName": "KIE Server Username", + "description": "The user name to access the KIE Server REST or JMS interface.", + "name": "KIE_SERVER_USER", + "value": "kieserver", + "required": false + }, + { + "displayName": "KIE Server Password", + "description": "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s).", + "name": "KIE_SERVER_PASSWORD", + "from": "[a-zA-Z]{6}[0-9]{1}!", + "generate": "expression", + "required": false + }, + { + "displayName": "KIE Server Domain", + "description": "JAAS LoginContext domain that shall be used to authenticate users when using JMS.", + "name": "KIE_SERVER_DOMAIN", + "value": "other", + "required": false + }, + { + "displayName": "KIE Server Persistence Dialect", + "description": "Hibernate persistence dialect.", + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "org.hibernate.dialect.PostgreSQL82Dialect", + "required": false + }, + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "kie-app", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: secure--.", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application", + "name": "SOURCE_REPOSITORY_URL", + "value": "https://github.com/jboss-openshift/openshift-quickstarts", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "SOURCE_REPOSITORY_REF", + "value": "1.3", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "processserver/library", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/ExampleDS", + "name": "DB_JNDI", + "value": "java:jboss/datasources/ExampleDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names", + "name": "HORNETQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names", + "name": "HORNETQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "processserver-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate", + "name": "HTTPS_NAME", + "value": "jboss", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate", + "name": "HTTPS_PASSWORD", + "value": "mykeystorepass", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "HornetQ Password", + "description": "HornetQ cluster admin password", + "name": "HORNETQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "description": "Container memory limit", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${SOURCE_REPOSITORY_URL}", + "ref": "${SOURCE_REPOSITORY_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "jboss-processserver64-openshift:1.3" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APPLICATION_NAME}:latest" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStream", + "name": "${APPLICATION_NAME}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "processserver-keystore-volume", + "mountPath": "/etc/processserver-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "KIE_CONTAINER_DEPLOYMENT", + "value": "${KIE_CONTAINER_DEPLOYMENT}" + }, + { + "name": "KIE_SERVER_PROTOCOL", + "value": "${KIE_SERVER_PROTOCOL}" + }, + { + "name": "KIE_SERVER_PORT", + "value": "${KIE_SERVER_PORT}" + }, + { + "name": "KIE_SERVER_USER", + "value": "${KIE_SERVER_USER}" + }, + { + "name": "KIE_SERVER_PASSWORD", + "value": "${KIE_SERVER_PASSWORD}" + }, + { + "name": "KIE_SERVER_DOMAIN", + "value": "${KIE_SERVER_DOMAIN}" + }, + { + "name": "KIE_SERVER_PERSISTENCE_DIALECT", + "value": "${KIE_SERVER_PERSISTENCE_DIALECT}" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/processserver-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "HORNETQ_CLUSTER_PASSWORD", + "value": "${HORNETQ_CLUSTER_PASSWORD}" + }, + { + "name": "HORNETQ_QUEUES", + "value": "${HORNETQ_QUEUES}" + }, + { + "name": "HORNETQ_TOPICS", + "value": "${HORNETQ_TOPICS}" + } + ] + } + ], + "volumes": [ + { + "name": "processserver-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/rhdm70-full.yaml b/addons/xpaas/v3.11/xpaas-templates/rhdm70-full.yaml new file mode 100644 index 0000000000..fae225aad8 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhdm70-full.yaml @@ -0,0 +1,592 @@ +--- +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for Red Hat Decision Manager 7.0 applications with persistent storage. + iconClass: icon-jboss + tags: rhdm,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Decision Manager 7.0 applications (Persistent with https) + name: rhdm70-full-persistent +labels: + template: rhdm70-full-persistent + xpaas: 1.4.0 +message: New persistent Decision Central and Decision Server applications have been created in your project. + The user name/password for accessing the Decision Central interface is ${KIE_ADMIN_USER}/${KIE_ADMIN_PWD}. + The user name/password for calls to the Decision Server is ${KIE_SERVER_USER}/${KIE_SERVER_PWD}. + Please be sure to create the "decisioncentral-service-account" and "kieserver-service-account" service accounts + and the secrets named "${DECISION_CENTRAL_HTTPS_SECRET}" and "${KIE_SERVER_HTTPS_SECRET}" containing the + ${DECISION_CENTRAL_HTTPS_KEYSTORE} and ${KIE_SERVER_HTTPS_KEYSTORE}files used for serving secure content. + Only stateless API calls to the Decision Server are supported. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: EAP Admin User + description: EAP administrator user name. Use this user account if you need use JBoss EAP command line management. + You can use rsh to access the command line on the pods. + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password. + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator user name. Use this user account to log on to Decision Central. + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password. + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server Controller User + description: KIE server controller user name. The Decision Server uses this user account to log on to + Decision Central. (Sets the org.kie.server.controller.user system property). + name: KIE_SERVER_CONTROLLER_USER + value: controllerUser + required: false +- displayName: KIE Server Controller Password + description: KIE server controller password (sets the org.kie.server.controller.pwd system property). + name: KIE_SERVER_CONTROLLER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server User + description: KIE execution server user name. Use this user account for API calls to the Decision Server. + (Sets the org.kie.server.user system property). + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password (sets the org.kie.server.pwd system property). + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server ID + description: Decision server identifier. Determines the template ID in Decision Central or controller. If this parameter is left blank, it is set using the $HOSTNAME environment variable or a random value. (Sets the org.kie.server.id system property). + name: KIE_SERVER_ID + value: '' + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user. If this parameter is set to true, the Decision Server accepts + API calls without user account authorization. (Sets the org.kie.server.bypass.auth.user system property). + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false +- displayName: KIE MBeans + description: KIE execution server MBeans enabled/disabled. These MBeans provide monitoring information. (Sets the + kie.mbeans and kie.scanner.mbeans system properties). + name: KIE_MBEANS + value: enabled + required: false +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering. When this parameter is set to true, the Decision Server extension + accepts custom classes annotated by the XmlRootElement or Remotable annotations only. Setting to true is preferable + for performance, but some custom decision services might require false. (Sets the org.drools.server.filter.classes + system property). + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: Decision Central Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + example: -rhdmcentr-.' + name: DECISION_CENTRAL_HOSTNAME_HTTP + value: '' + required: false +- displayName: Decision Central Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default hostname, + example: secure--rhdmcentr-.' + name: DECISION_CENTRAL_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Decision Server Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + example: -kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Decision Server Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default hostname, + example: secure--kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Decision Central Server Keystore Secret Name + description: The name of the secret containing the keystore file for Decision Central. + name: DECISION_CENTRAL_HTTPS_SECRET + value: decisioncentral-app-secret + required: false +- displayName: Decision Central Server Keystore Filename + description: The name of the keystore file within the secret. + name: DECISION_CENTRAL_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: Decision Central Server Certificate Name + description: The name associated with the server certificate. + name: DECISION_CENTRAL_HTTPS_NAME + value: jboss + required: false +- displayName: Decision Central Server Keystore Password + description: The password for the keystore and certificate. + name: DECISION_CENTRAL_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Keystore Secret Name + description: The name of the secret containing the keystore file for Decision Server. + name: KIE_SERVER_HTTPS_SECRET + value: kieserver-app-secret + required: false +- displayName: KIE Server Keystore Filename + description: The name of the keystore file within the secret. + name: KIE_SERVER_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: KIE Server Certificate Name + description: The name associated with the server certificate. + name: KIE_SERVER_HTTPS_NAME + value: jboss + required: false +- displayName: KIE Server Keystore Password + description: The password for the keystore and certificate. + name: KIE_SERVER_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + Modify this setting only if you have installed the ImageStreams in a different + namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.1". + name: IMAGE_STREAM_TAG + value: "1.1" + required: false +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository or service. + name: MAVEN_REPO_URL + example: http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ + required: false +- displayName: Maven repository username + description: Username to access the Maven repository, if required. + name: MAVEN_REPO_USERNAME + required: false +- displayName: Maven repository password + description: Password to access the Maven repository, if required. + name: MAVEN_REPO_PASSWORD + required: false +- displayName: Username for the Maven service hosted by Decision Central + description: Username to access the Maven service hosted by Decision Central inside EAP. + name: DECISION_CENTRAL_MAVEN_USERNAME + required: true + value: mavenUser +- displayName: Password for the Maven service hosted by Decision Central + description: Password to access the Maven service hosted by Decision Central inside EAP. + name: DECISION_CENTRAL_MAVEN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: true +- displayName: Decision Central Volume Capacity + description: Size of the persistent storage for Decision Central's runtime data. + name: DECISION_CENTRAL_VOLUME_CAPACITY + value: 1Gi + required: true +- displayName: Decision Central Container Memory Limit + description: Decision Central Container memory limit + name: DECISION_CENTRAL_MEMORY_LIMIT + value: 2Gi + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXCECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 8080 + targetPort: 8080 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhdmcentr" + metadata: + name: "${APPLICATION_NAME}-rhdmcentr" + labels: + application: "${APPLICATION_NAME}" + annotations: + description: The Decision Central web server's http port. +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhdmcentr" + metadata: + name: secure-${APPLICATION_NAME}-rhdmcentr + labels: + application: "${APPLICATION_NAME}" + annotations: + description: The Decision Central web server's https port. +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 8001 + targetPort: 8001 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhdmcentr" + metadata: + name: ${APPLICATION_NAME}-rhdmcentr-git-ssh + labels: + application: "${APPLICATION_NAME}" + annotations: + description: The Decision Central Git SSH port +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 8080 + targetPort: 8080 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + annotations: + description: The KIE server web server's http port. +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: secure-${APPLICATION_NAME}-kieserver + labels: + application: "${APPLICATION_NAME}" + annotations: + description: The KIE server web server's https port. +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhdmcentr-http" + metadata: + name: "${APPLICATION_NAME}-rhdmcentr" + labels: + application: "${APPLICATION_NAME}" + annotations: + description: Route for Decision Central's http service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${DECISION_CENTRAL_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-rhdmcentr" +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhdmcentr-https" + metadata: + name: secure-${APPLICATION_NAME}-rhdmcentr + labels: + application: "${APPLICATION_NAME}" + annotations: + description: Route for Decision Central's https service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${DECISION_CENTRAL_HOSTNAME_HTTPS}" + to: + name: secure-${APPLICATION_NAME}-rhdmcentr + tls: + termination: passthrough +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-http" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + annotations: + description: Route for KIE server's http service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver" +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-https" + metadata: + name: secure-${APPLICATION_NAME}-kieserver + labels: + application: "${APPLICATION_NAME}" + annotations: + description: Route for KIE server's https service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTPS}" + to: + name: secure-${APPLICATION_NAME}-kieserver + tls: + termination: passthrough +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-rhdmcentr" + labels: + application: "${APPLICATION_NAME}" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-rhdmcentr" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhdm70-decisioncentral-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhdmcentr" + template: + metadata: + name: "${APPLICATION_NAME}-rhdmcentr" + labels: + deploymentConfig: "${APPLICATION_NAME}-rhdmcentr" + application: "${APPLICATION_NAME}" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-rhdmcentr" + image: rhdm70-decisioncentral-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${DECISION_CENTRAL_MEMORY_LIMIT}" + volumeMounts: + - name: decisioncentral-keystore-volume + mountPath: "/etc/decisioncentral-secret-volume" + readOnly: true + - name: "${APPLICATION_NAME}-rhdmcentr-pvol" + mountPath: "/opt/eap/standalone/data/bpmsuite" + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "/opt/eap/bin/livenessProbe.sh" + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "/opt/eap/bin/readinessProbe.sh" + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: git-ssh + containerPort: 8001 + protocol: TCP + env: + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: KIE_MAVEN_USER + value: "${DECISION_CENTRAL_MAVEN_USERNAME}" + - name: KIE_MAVEN_PWD + value: "${DECISION_CENTRAL_MAVEN_PASSWORD}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/decisioncentral-secret-volume" + - name: HTTPS_KEYSTORE + value: "${DECISION_CENTRAL_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${DECISION_CENTRAL_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${DECISION_CENTRAL_HTTPS_PASSWORD}" + - name: ADMIN_USERNAME + value: "${ADMIN_USERNAME}" + - name: ADMIN_PASSWORD + value: "${ADMIN_PASSWORD}" + - name: PROBE_IMPL + value: probe.eap.jolokia.EapProbe + - name: PROBE_DISABLE_BOOT_ERRORS_CHECK + value: 'true' + volumes: + - name: decisioncentral-keystore-volume + secret: + secretName: "${DECISION_CENTRAL_HTTPS_SECRET}" + - name: "${APPLICATION_NAME}-rhdmcentr-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-rhdmcentr-claim" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhdm70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + application: "${APPLICATION_NAME}" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver" + image: rhdm70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXCECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "/opt/eap/bin/livenessProbe.sh" + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "/opt/eap/bin/readinessProbe.sh" + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${APPLICATION_NAME}-rhdmcentr" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_ID + value: "${KIE_SERVER_ID}" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: MAVEN_REPOS + value: "RHDMCENTR,EXTERNAL" + - name: RHDMCENTR_MAVEN_REPO_SERVICE + value: "${APPLICATION_NAME}-rhdmcentr" + - name: RHDMCENTR_MAVEN_REPO_PATH + value: "/maven2/" + - name: RHDMCENTR_MAVEN_REPO_USERNAME + value: "${DECISION_CENTRAL_MAVEN_USERNAME}" + - name: RHDMCENTR_MAVEN_REPO_PASSWORD + value: "${DECISION_CENTRAL_MAVEN_PASSWORD}" + - name: EXTERNAL_MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: EXTERNAL_MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: EXTERNAL_MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${KIE_SERVER_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${KIE_SERVER_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${KIE_SERVER_HTTPS_PASSWORD}" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${KIE_SERVER_HTTPS_SECRET}" +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-rhdmcentr-claim" + labels: + application: "${APPLICATION_NAME}" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${DECISION_CENTRAL_VOLUME_CAPACITY}" diff --git a/addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver-basic-s2i.yaml b/addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver-basic-s2i.yaml new file mode 100644 index 0000000000..34db601d88 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver-basic-s2i.yaml @@ -0,0 +1,331 @@ +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for Red Hat Decision Manager Execution Server 7.0 application built using S2I. + iconClass: icon-jboss + tags: rhdm,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Decision Manager Execution Server 7.0 S2I Ephemeral (no https) + name: rhdm70-kieserver-basic-s2i +labels: + template: rhdm70-kieserver-basic-s2i + xpaas: 1.4.0 +message: A new Decision Manager Decision Server application has been created in your project. This deployment + does not include HTTPS support. + The user name/password for calls to the Decision Server is ${KIE_SERVER_USER}/${KIE_SERVER_PWD}. + Only stateless API calls to the Decision Server are supported. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: EAP Admin User + description: EAP administrator user name. Use this user account if you need use JBoss EAP command line management. + You can use rsh to access the command line on the pods. + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password. + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator username. Use this user account to manage the Decision Server using administrative + API calls. + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server User + description: KIE execution server user name. Use this user account for API calls to the Decision Server. + (Sets the org.kie.server.user system property). + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password (sets the org.kie.server.pwd system property). + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server ID + description: Decision server identifier. Determines the template ID in Decision Central or controller. If this parameter is left blank, it is set using the $HOSTNAME environment variable or a random value. (Sets the org.kie.server.id system property). + name: KIE_SERVER_ID + value: '' + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user. If this parameter is set to true, the Decision Server accepts + API calls without user account authorization. (Sets the org.kie.server.bypass.auth.user system property). + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false +- displayName: KIE MBeans + description: KIE execution server MBeans enabled/disabled. These MBeans provide monitoring information. (Sets the + kie.mbeans and kie.scanner.mbeans system properties). + name: KIE_MBEANS + value: enabled + required: false +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering. When this parameter is set to true, the Decision Server extension + accepts custom classes annotated by the XmlRootElement or Remotable annotations only. Setting to true is preferable + for performance, but some custom decision services might require false. (Sets the org.drools.server.filter.classes + system property). + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: Decision Server Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -execserv-.' + name: EXECUTION_SERVER_HOSTNAME_HTTP + value: '' + required: false +- displayName: KIE Server Container Deployment + description: 'KIE Server Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2. + This information identifies the decision service (KJAR file) that is built from your source. You can provide two + or more KJAR files using the `|` separator, for example: `containerId=groupId:artifactId:version|c2=g2:a2:v2`. + The Maven build process must produce all these files from the source in the Git repository.' + name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: rhdm-kieserver-hellorules=org.openshift.quickstarts:rhdm-kieserver-hellorules:1.4.0-SNAPSHOT + required: false +- displayName: Git Repository URL + description: The URI for the Git repository containing the source for your decision service. + name: SOURCE_REPOSITORY_URL + value: https://github.com/jboss-container-images/rhdm-7-openshift-image.git + required: true +- displayName: Git Reference + description: Git branch/tag reference for the source of your decision service. + name: SOURCE_REPOSITORY_REF + value: rhdm70-dev + required: false +- displayName: Context Directory + description: Location of the module to build (pom.xml file) in the Git project. Empty for root project directory. + name: CONTEXT_DIR + value: quickstarts/hello-rules/hellorules + required: false +- displayName: Github Webhook Secret + description: GitHub trigger secret. + name: GITHUB_WEBHOOK_SECRET + from: "[a-zA-Z0-9]{8}" + generate: expression + required: true +- displayName: Generic Webhook Secret + description: Generic build trigger secret. + name: GENERIC_WEBHOOK_SECRET + from: "[a-zA-Z0-9]{8}" + generate: expression + required: true +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + Modify this setting only if you have installed the ImageStreams in a different + namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.1". + name: IMAGE_STREAM_TAG + value: "1.1" + required: false +- displayName: Maven mirror URL + description: Maven mirror to use for S2I builds. If the Maven build of your decision service pulls packages + from a Maven repository, you can set this parameter. In this case, the build process will pull packages + from the mirror repository instead of the configured original repository. + name: MAVEN_MIRROR_URL + value: '' + required: false +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository. + name: MAVEN_REPO_URL + required: false +- displayName: Maven repository username + description: Username to access the Maven repository, if required. + name: MAVEN_REPO_USERNAME + required: false +- displayName: Maven repository password + description: Password to access the Maven repository, if required. + name: MAVEN_REPO_PASSWORD + required: false +- description: The directory or several directories within the project that contains the required binary files (KJAR files + and any other necessary files) after a successful Maven build. Files from the artefact directory are copied + into the deployment folder. Use a comma (,) to separate multiple directories. If this parameter is not specified, all + archives in /target are copied. + name: ARTIFACT_DIR + displayName: Artifact Directory + value: '' + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXCECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 8080 + targetPort: 8080 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + annotations: + description: The execution server web server's http port. +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-http" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + annotations: + description: Route for execution server's http service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver" +- kind: ImageStream + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" +- kind: BuildConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + spec: + source: + type: Git + git: + uri: "${SOURCE_REPOSITORY_URL}" + ref: "${SOURCE_REPOSITORY_REF}" + contextDir: "${CONTEXT_DIR}" + strategy: + type: Source + sourceStrategy: + env: + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "${KIE_SERVER_CONTAINER_DEPLOYMENT}" + - name: MAVEN_MIRROR_URL + value: "${MAVEN_MIRROR_URL}" + - name: ARTIFACT_DIR + value: "${ARTIFACT_DIR}" + forcePull: true + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhdm70-kieserver-openshift:${IMAGE_STREAM_TAG}" + output: + to: + kind: ImageStreamTag + name: "${APPLICATION_NAME}-kieserver:latest" + triggers: + - type: GitHub + github: + secret: "${GITHUB_WEBHOOK_SECRET}" + - type: Generic + generic: + secret: "${GENERIC_WEBHOOK_SECRET}" + - type: ImageChange + imageChange: {} + - type: ConfigChange +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver" + from: + kind: ImageStream + name: "${APPLICATION_NAME}-kieserver" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + application: "${APPLICATION_NAME}" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver" + image: "${APPLICATION_NAME}-kieserver" + imagePullPolicy: Always + resources: + limits: + memory: "${EXCECUTION_SERVER_MEMORY_LIMIT}" + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "/opt/eap/bin/livenessProbe.sh" + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "/opt/eap/bin/readinessProbe.sh" + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_ID + value: "${KIE_SERVER_ID}" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "${KIE_SERVER_CONTAINER_DEPLOYMENT}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" diff --git a/addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver-https-s2i.yaml b/addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver-https-s2i.yaml new file mode 100644 index 0000000000..9447172d43 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver-https-s2i.yaml @@ -0,0 +1,406 @@ +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for Red Hat Decision Manager Execution Server 7.0 application built using S2I. + iconClass: icon-jboss + tags: rhdm,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Decision Manager Execution Server 7.0 S2I (Ephemeral with https) + name: rhdm70-kieserver-https-s2i +labels: + template: rhdm70-kieserver-https-s2i + xpaas: 1.4.0 +message: A new Decision Manager Decision Server application has been created in your + project. The user name/password for calls to the Decision Server is ${KIE_SERVER_USER}/${KIE_SERVER_PWD}. + Please be sure to create the "kieserver-service-account" service account and + the secret named "${HTTPS_SECRET}" containing the ${HTTPS_KEYSTORE} file used for + serving secure content. The username/password for accessing the KIE Server REST interface is ${KIE_SERVER_USER}/${KIE_SERVER_PWD}. Only stateless API calls to the Decision Server are supported. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: EAP Admin User + description: EAP administrator user name. Use this user account if you need use JBoss EAP command line management. + You can use rsh to access the command line on the pods. + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password. + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator username. Use this user account to manage the Decision Server using administrative + API calls. + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password. + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server User + description: KIE execution server user name. Use this user account for API calls to the Decision Server. + (Sets the org.kie.server.user system property). + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password (sets the org.kie.server.pwd system property). + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server ID + description: Decision server identifier. Determines the template ID in Decision Central or controller. If this parameter is left blank, it is set using the $HOSTNAME environment variable or a random value. (Sets the org.kie.server.id system property). + name: KIE_SERVER_ID + value: '' + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user. If this parameter is set to true, the Decision Server accepts + API calls without user account authorization. (Sets the org.kie.server.bypass.auth.user system property). + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false +- displayName: KIE MBeans + description: KIE execution server MBeans enabled/disabled. These MBeans provide monitoring information. (Sets the + kie.mbeans and kie.scanner.mbeans system properties). + name: KIE_MBEANS + value: enabled + required: false +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering. When this parameter is set to true, the Decision Server extension + accepts custom classes annotated by the XmlRootElement or Remotable annotations only. Setting to true is preferable + for performance, but some custom decision services might require false. (Sets the org.drools.server.filter.classes + system property). + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: Decision Server Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + example: -execserv-.' + name: EXECUTION_SERVER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Decision Server Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default hostname, + example: secure--execserv-.' + name: EXECUTION_SERVER_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Server Keystore Secret Name + description: The name of the secret containing the keystore file for Decision Server. + name: HTTPS_SECRET + value: kieserver-app-secret + required: false +- displayName: Server Keystore Filename + description: The name of the keystore file within the secret. + name: HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: Server Certificate Name + description: The name associated with the server certificate. + name: HTTPS_NAME + value: jboss + required: false +- displayName: Server Keystore Password + description: The password for the keystore and certificate. + name: HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Container Deployment + description: 'KIE Server Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2. + This information identifies the decision service (KJAR file) that is built from your source. You can provide two + or more KJAR files using the `|` separator, for example: `containerId=groupId:artifactId:version|c2=g2:a2:v2`. + The Maven build process must produce all these files from the source in the Git repository.' + name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: rhdm-kieserver-hellorules=org.openshift.quickstarts:rhdm-kieserver-hellorules:1.4.0-SNAPSHOT + required: false +- displayName: Git Repository URL + description: The URI for the Git repository containing the source for your decision service. + name: SOURCE_REPOSITORY_URL + value: https://github.com/jboss-container-images/rhdm-7-openshift-image.git + required: true +- displayName: Git Reference + description: Git branch/tag reference for the source of your decision service. + name: SOURCE_REPOSITORY_REF + value: rhdm70-dev + required: false +- displayName: Context Directory + description: Location of the module to build (pom.xml file) in the Git project. Empty for root project directory. + name: CONTEXT_DIR + value: quickstarts/hello-rules/hellorules + required: false +- displayName: Github Webhook Secret + description: GitHub trigger secret. + name: GITHUB_WEBHOOK_SECRET + from: "[a-zA-Z0-9]{8}" + generate: expression + required: true +- displayName: Generic Webhook Secret + description: Generic build trigger secret. + name: GENERIC_WEBHOOK_SECRET + from: "[a-zA-Z0-9]{8}" + generate: expression + required: true +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + Modify this setting only if you have installed the ImageStreams in a different + namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.1". + name: IMAGE_STREAM_TAG + value: "1.1" + required: false +- displayName: Maven mirror URL + description: Maven mirror to use for S2I builds. If the Maven build of your decision service pulls packages + from a Maven repository, you can set this parameter. In this case, the build process will pull packages + from the mirror repository instead of the configured original repository. + name: MAVEN_MIRROR_URL + value: '' + required: false +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository. + name: MAVEN_REPO_URL + required: false +- displayName: Maven repository username + description: Username to access the Maven repository, if required. + name: MAVEN_REPO_USERNAME + required: false +- displayName: Maven repository password + description: Password to access the Maven repository, if required. + name: MAVEN_REPO_PASSWORD + required: false +- description: The directory or several directories within the project that contains the required binary files (KJAR files + and any other necessary files) after a successful Maven build. Files from the artefact directory are copied + into the deployment folder. Use a comma (,) to separate multiple directories. If this parameter is not specified, all + archives in /target are copied. + name: ARTIFACT_DIR + displayName: Artifact Directory + value: '' + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXCECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 8080 + targetPort: 8080 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + annotations: + description: The execution server web server's http port. +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: secure-${APPLICATION_NAME}-kieserver + labels: + application: "${APPLICATION_NAME}" + annotations: + description: The execution server web server's https port. +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-http" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + annotations: + description: Route for execution server's http service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver" +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-https" + metadata: + name: secure-${APPLICATION_NAME}-kieserver + labels: + application: "${APPLICATION_NAME}" + annotations: + description: Route for execution server's https service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTPS}" + to: + name: secure-${APPLICATION_NAME}-kieserver + tls: + termination: passthrough +- kind: ImageStream + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" +- kind: BuildConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + spec: + source: + type: Git + git: + uri: "${SOURCE_REPOSITORY_URL}" + ref: "${SOURCE_REPOSITORY_REF}" + contextDir: "${CONTEXT_DIR}" + strategy: + type: Source + sourceStrategy: + env: + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "${KIE_SERVER_CONTAINER_DEPLOYMENT}" + - name: MAVEN_MIRROR_URL + value: "${MAVEN_MIRROR_URL}" + - name: ARTIFACT_DIR + value: "${ARTIFACT_DIR}" + forcePull: true + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhdm70-kieserver-openshift:${IMAGE_STREAM_TAG}" + output: + to: + kind: ImageStreamTag + name: "${APPLICATION_NAME}-kieserver:latest" + triggers: + - type: GitHub + github: + secret: "${GITHUB_WEBHOOK_SECRET}" + - type: Generic + generic: + secret: "${GENERIC_WEBHOOK_SECRET}" + - type: ImageChange + imageChange: {} + - type: ConfigChange +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver" + from: + kind: ImageStream + name: "${APPLICATION_NAME}-kieserver" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + application: "${APPLICATION_NAME}" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver" + image: "${APPLICATION_NAME}-kieserver" + imagePullPolicy: Always + resources: + limits: + memory: "${EXCECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "/opt/eap/bin/livenessProbe.sh" + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "/opt/eap/bin/readinessProbe.sh" + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_ID + value: "${KIE_SERVER_ID}" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "${KIE_SERVER_CONTAINER_DEPLOYMENT}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${HTTPS_PASSWORD}" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${HTTPS_SECRET}" diff --git a/addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver.yaml b/addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver.yaml new file mode 100644 index 0000000000..30a172bf4b --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhdm70-kieserver.yaml @@ -0,0 +1,367 @@ +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for Red Hat Decision Manager Execution Server 7.0 application. + iconClass: icon-jboss + tags: rhdm,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Decision Manager Execution Server 7.0 (Ephemeral with https) + name: rhdm70-kieserver +labels: + template: rhdm70-kieserver + xpaas: 1.4.0 +message: A new Decision Manager Execution Server application has been created in your + project. The user name/password for calls to the Decision Server is ${KIE_SERVER_USER}/${KIE_SERVER_PWD}. + Please be sure to create the "kieserver-service-account" service account and + the secret named "${HTTPS_SECRET}" containing the ${HTTPS_KEYSTORE} file used for + serving secure content. + Only stateless API calls to the Decision Server are supported. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository or service. + name: MAVEN_REPO_URL + example: http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ + required: true +- displayName: Maven repository username + description: Username to access the Maven repository, if required. + name: MAVEN_REPO_USERNAME + required: false +- displayName: Maven repository password + description: Password to access the Maven repository, if required. + name: MAVEN_REPO_PASSWORD + required: false +- displayName: EAP Admin User + description: EAP administrator user name. Use this user account if you need use JBoss EAP command line management. + You can use rsh to access the command line on the pods. + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password. + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator user name. Use this user account to manage the Decision Server using administrative + API calls. + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password. + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server User + description: KIE execution server user name. Use this user account for API calls to the Decision Server. + (Sets the org.kie.server.user system property). + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password (sets the org.kie.server.pwd system property). + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server ID + description: Decision server identifier. Determines the template ID in Decision Central or controller. If this parameter is left blank, it is set using the $HOSTNAME environment variable or a random value. (Sets the org.kie.server.id system property). + name: KIE_SERVER_ID + value: '' + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user. If this parameter is set to true, the Decision Server accepts + API calls without user account authorization. (Sets the org.kie.server.bypass.auth.user system property). + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false +- displayName: KIE Server Controller User + description: KIE server controller user name. The Decision Server uses this user account to log on to Decision + Central or a controller. (Sets the org.kie.server.controller.user system property). + name: KIE_SERVER_CONTROLLER_USER + value: controllerUser + required: false +- displayName: KIE Server Controller Password + description: KIE server controller password (sets the org.kie.server.controller.pwd system property). + name: KIE_SERVER_CONTROLLER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE server controller protocol + description: KIE server controller service. To use Decision Central that is hosted on the same OpenShift environment + to manage this Decision Server, set this variable to the OpenShift service name for the Decision Central. In this + case, do not set the KIE server controller protocol, KIE server controller host, and KIE server controller port. + (Sets the org.kie.server.controller system property if host and port are not set). + name: KIE_SERVER_CONTROLLER_PROTOCOL + value: http + required: false +- displayName: KIE server controller service + description: The service name for the optional Decision Central or controller, where it can be reached and registered with. (Used to set the org.kie.server.controller system property if host and port aren't set) + name: KIE_SERVER_CONTROLLER_SERVICE + value: '' + required: false +- displayName: KIE server controller host + description: KIE server controller host. To use Decision Central or a controller to manage this Decision + Server, set this parameter to the host part of the URL for the Decision Central or controller. (Used to + set the org.kie.server.controller system property). + name: KIE_SERVER_CONTROLLER_HOST + example: my-app-controller-ocpuser.os.example.com + required: false +- displayName: KIE server controller port + description: KIE server controller port. To use Decision Central or a controller to manage this Decision + Server, set this parameter to the port part of the URL for the Decision Central or controller. (Used to + set the org.kie.server.controller system property). + name: KIE_SERVER_CONTROLLER_PORT + example: '8080' + required: false +- displayName: KIE MBeans + description: KIE execution server mbeans enabled/disabled. These MBeans provide monitoring information. (Sets + the kie.mbeans and kie.scanner.mbeans system properties). + name: KIE_MBEANS + value: enabled + required: false +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering. When this parameter is set to true, the Decision Server extension + accepts custom classes annotated by the XmlRootElement or Remotable annotations only. Setting to true is preferable + for performance, but some custom decision services might require false. (Sets the org.drools.server.filter.classes + system property). + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: Decision Server Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + example: -kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Decision Server Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default hostname, + example: secure--kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Server Keystore Secret Name + description: The name of the secret containing the keystore file for Decision Server. + name: HTTPS_SECRET + value: kieserver-app-secret + required: false +- displayName: Server Keystore Filename + description: The name of the keystore file within the secret. + name: HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: Server Certificate Name + description: The name associated with the server certificate. + name: HTTPS_NAME + value: jboss + required: false +- displayName: Server Keystore Password + description: The password for the keystore and certificate. + name: HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + Modify this setting only if you have installed the ImageStreams in a different + namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.1". + name: IMAGE_STREAM_TAG + value: "1.1" + required: false +- displayName: KIE Server Container Deployment + description: 'KIE Server Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2' + name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: '' + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXCECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 8080 + targetPort: 8080 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + annotations: + description: The execution server web server's http port. +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: secure-${APPLICATION_NAME}-kieserver + labels: + application: "${APPLICATION_NAME}" + annotations: + description: The execution server web server's https port. +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-http" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + annotations: + description: Route for execution server's http service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver" +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-https" + metadata: + name: secure-${APPLICATION_NAME}-kieserver + labels: + application: "${APPLICATION_NAME}" + annotations: + description: Route for execution server's https service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTPS}" + to: + name: secure-${APPLICATION_NAME}-kieserver + tls: + termination: passthrough +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhdm70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + application: "${APPLICATION_NAME}" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver" + image: rhdm70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXCECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "/opt/eap/bin/livenessProbe.sh" + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "/opt/eap/bin/readinessProbe.sh" + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${KIE_SERVER_CONTROLLER_SERVICE}" + - name: KIE_SERVER_CONTROLLER_PROTOCOL + value: "${KIE_SERVER_CONTROLLER_PROTOCOL}" + - name: KIE_SERVER_CONTROLLER_HOST + value: "${KIE_SERVER_CONTROLLER_HOST}" + - name: KIE_SERVER_CONTROLLER_PORT + value: "${KIE_SERVER_CONTROLLER_PORT}" + - name: KIE_SERVER_ID + value: "${KIE_SERVER_ID}" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "${KIE_SERVER_CONTAINER_DEPLOYMENT}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${HTTPS_PASSWORD}" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${HTTPS_SECRET}" diff --git a/addons/xpaas/v3.11/xpaas-templates/rhpam70-authoring-ha.yaml b/addons/xpaas/v3.11/xpaas-templates/rhpam70-authoring-ha.yaml new file mode 100644 index 0000000000..f322c09296 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhpam70-authoring-ha.yaml @@ -0,0 +1,1162 @@ +--- +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for a HA persistent authoring environment, for Red Hat Process Automation Manager 7.0 + iconClass: icon-jboss + tags: rhpam,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Process Automation Manager 7.0 authoring environment (HA, persistent, with https) + name: rhpam70-authoring-ha +labels: + template: rhpam70-authoring-ha + xpaas: 1.4.0 +message: A new persistent Process Automation Manager application have been created in your project. + The username/password for accessing the KIE Server / Business Central interface is ${KIE_ADMIN_USER}/${KIE_ADMIN_PWD}. + Please be sure to create the secrets named "${BUSINESS_CENTRAL_HTTPS_SECRET}" and "${KIE_SERVER_HTTPS_SECRET}" containing the + ${BUSINESS_CENTRAL_HTTPS_KEYSTORE} and ${KIE_SERVER_HTTPS_KEYSTORE} files used for serving secure content. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: EAP Admin User + description: EAP administrator username + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator username + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server Controller User + description: KIE server controller username (Sets the org.kie.server.controller.user system property) + name: KIE_SERVER_CONTROLLER_USER + value: controllerUser + required: false +- displayName: KIE Server Controller Password + description: KIE server controller password (Sets the org.kie.server.controller.pwd system property) + name: KIE_SERVER_CONTROLLER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server User + description: KIE execution server username (Sets the org.kie.server.user system property) + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password (Sets the org.kie.server.pwd system property) + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server ID + description: Business server identifier. Determines the template ID in Business Central or controller. If this parameter is left blank, it is set using the $HOSTNAME environment variable or a random value. (Sets the org.kie.server.id system property). + name: KIE_SERVER_ID + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user (Sets the org.kie.server.bypass.auth.user system property) + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false +- displayName: KIE Server Persistence DS + description: KIE execution server persistence datasource (Sets the org.kie.server.persistence.ds system property) + name: KIE_SERVER_PERSISTENCE_DS + value: java:/jboss/datasources/rhpam + required: false +## MySQL database parameters BEGIN +- displayName: KIE Server MySQL Database User + description: KIE execution server MySQL database username + name: KIE_SERVER_MYSQL_USER + value: rhpam + required: false +- displayName: KIE Server MySQL Database Password + description: KIE execution server MySQL database password + name: KIE_SERVER_MYSQL_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server MySQL Database Name + description: KIE execution server MySQL database name + name: KIE_SERVER_MYSQL_DB + value: rhpam7 + required: false +- displayName: MySQL ImageStream Tag + description: The MySQL image version, which is intended to correspond to the MySQL version. Default is "5.7". + name: MYSQL_IMAGE_STREAM_TAG + value: "5.7" + required: false +- displayName: Database Volume Capacity + description: Size of persistent storage for database volume. + name: DB_VOLUME_CAPACITY + value: 1Gi + required: true +## MySQL database parameters END +- displayName: KIE MBeans + description: KIE execution server mbeans enabled/disabled (Sets the kie.mbeans and kie.scanner.mbeans system properties) + name: KIE_MBEANS + value: enabled + required: false +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering (Sets the org.drools.server.filter.classes system property) + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: Business Central Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -rhpamcentr-.' + name: BUSINESS_CENTRAL_HOSTNAME_HTTP + value: '' + required: false +- displayName: Business Central Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--rhpamcentr-.' + name: BUSINESS_CENTRAL_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Execution Server Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Execution Server Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Business Central Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: BUSINESS_CENTRAL_HTTPS_SECRET + example: businesscentral-app-secret + required: true +- displayName: Business Central Server Keystore Filename + description: The name of the keystore file within the secret + name: BUSINESS_CENTRAL_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: Business Central Server Certificate Name + description: The name associated with the server certificate + name: BUSINESS_CENTRAL_HTTPS_NAME + value: jboss + required: false +- displayName: Business Central Server Keystore Password + description: The password for the keystore and certificate + name: BUSINESS_CENTRAL_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: KIE_SERVER_HTTPS_SECRET + example: kieserver-app-secret + required: true +- displayName: KIE Server Keystore Filename + description: The name of the keystore file within the secret + name: KIE_SERVER_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: KIE Server Certificate Name + description: The name associated with the server certificate + name: KIE_SERVER_HTTPS_NAME + value: jboss + required: false +- displayName: KIE Server Keystore Password + description: The password for the keystore and certificate + name: KIE_SERVER_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: AppFormer elastic search reconnection tries. + description: The number of times that appformer will try to connect to the elasticsearch node before give up. + name: APPFORMER_ELASTIC_RETRIES + required: false +- displayName: AppFormer JMS Broker port. + description: The port to connect in the JMS broker. Defaults to 61616 + name: APPFORMER_JMS_BROKER_PORT + required: false +- displayName: AppFormer JMS Broker username. + description: The username to connect in the JMS broker. + name: APPFORMER_JMS_BROKER_USER + required: true + value: jmsBrokserUser +- displayName: AppFormer JMS Broker password. + description: The password to connect in the JMS broker. + name: APPFORMER_JMS_BROKER_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: true +- displayName: Elasticsearch Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -rhpamindex-.' + name: ES_HOSTNAME_HTTP + value: '' + required: false +- displayName: Elasticsearch Cluster name + description: Sets the ES cluster.name and configure it on Business Central. Defaults to kie-cluster. + name: APPFORMER_ELASTIC_CLUSTER_NAME + value: '' + required: false +- displayName: Elasticsearch Node name + description: Sets the ES node.name property. Defaults to HOSTNAME env value. + name: ES_NODE_NAME + value: '' + required: false +- displayName: Elasticsearch Transport Host + description: Sets the ES transport.host property. This will set the transport address of the main ES cluster node. Used for communication between nodes in the cluster. Defaults to container address. + name: ES_TRANSPORT_HOST + value: '' + required: false +- displayName: Elasticsearch Transport TCP Port + description: Sets the ES http.host property. This will set the http address of the main ES cluster node. Used for communication between nodes in the cluster and the communication with Business Central. + name: APPFORMER_ELASTIC_PORT + value: '' + required: false +- displayName: Elasticsearch HTTP Host + description: Sets the ES http.host property. This will set the http address of the main ES cluster node. Used to interact with cluster rest api. Defaults to the container ip address + name: ES_HTTP_HOST + value: '' + required: false +- displayName: Elasticsearch HTTP Port + description: Sets the ES http.port property. This will set the http port of the main ES cluster node. Used to interact with cluster rest api. + name: ES_HTTP_PORT + value: '' + required: false +- displayName: Elasticsearch Additional Java Options + description: Appends custom jvm configurations/properties to ES jvm.options configuration file. + name: ES_JAVA_OPTS + value: '' + example: "-Xms1024m -Xmx1024m" + required: false +- displayName: AMQ Role + description: User role for standard broker user. + name: AMQ_ROLE + value: admin + required: true +- displayName: AMQ Name + description: The name of the broker + name: AMQ_NAME + value: broker + required: true +- displayName: AMQ Global Max Size + description: "Maximum amount of memory which message data may consume (Default: Undefined, half of the system's memory)." + name: AMQ_GLOBAL_MAX_SIZE + value: 100 gb + required: false +- displayName: Elasticsearch Volume Capacity + description: Size of persistent storage for Elasticsearch volume. + name: ES_VOLUME_CAPACITY + value: 1Gi + required: true +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + You should only need to modify this if you've installed the ImageStreams in a + different namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.0". + name: IMAGE_STREAM_TAG + value: "1.0" + required: false +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository or service. + name: MAVEN_REPO_URL + example: http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ + required: false +- displayName: Maven repository username + description: Username to access the Maven repository. + name: MAVEN_REPO_USERNAME + required: false +- displayName: Maven repository password + description: Password to access the Maven repository. + name: MAVEN_REPO_PASSWORD + required: false +- displayName: Username for the Maven service hosted by Business Central + description: Username to access the Maven service hosted by Business Central inside EAP. + name: BUSINESS_CENTRAL_MAVEN_USERNAME + required: true + value: mavenUser +- displayName: Password for the Maven service hosted by Business Central + description: Password to access the Maven service hosted by Business Central inside EAP. + name: BUSINESS_CENTRAL_MAVEN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: true +- displayName: "Timer service data store refresh interval (in milliseconds)" + description: "Sets refresh-interval for the EJB timer database data-store service." + name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: '60000' + required: true +- displayName: Business Central Volume Capacity + description: Size of the persistent storage for Business Central's runtime data. + name: BUSINESS_CENTRAL_VOLUME_CAPACITY + value: 1Gi + required: true +- displayName: Business Central Container Memory Limit + description: Business Central Container memory limit + name: BUSINESS_CENTRAL_MEMORY_LIMIT + value: 2Gi + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXCECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +- displayName: RH-SSO URL + description: RH-SSO URL + name: SSO_URL + example: https://rh-sso.example.com/auth + required: false +- displayName: RH-SSO Realm name + description: RH-SSO Realm name + name: SSO_REALM + required: false +- displayName: Business Central RH-SSO Client name + description: Business Central RH-SSO Client name + name: BUSINESS_CENTRAL_SSO_CLIENT + required: false +- displayName: Business Central RH-SSO Client Secret + description: Business Central RH-SSO Client Secret + name: BUSINESS_CENTRAL_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: KIE Server RH-SSO Client name + description: KIE Server RH-SSO Client name + name: KIE_SERVER_SSO_CLIENT + required: false +- displayName: KIE Server RH-SSO Client Secret + description: KIE Server RH-SSO Client Secret + name: KIE_SERVER_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: RH-SSO Realm Admin Username + description: RH-SSO Realm Admin Username used to create the Client if it doesn't exist + name: SSO_USERNAME + required: false +- displayName: RH-SSO Realm Admin Password + description: RH-SSO Realm Admin Password used to create the Client + name: SSO_PASSWORD + required: false +- displayName: RH-SSO Disable SSL Certificate Validation + description: RH-SSO Disable SSL Certificate Validation + name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "false" + required: false +objects: +- kind: ServiceAccount + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" +- kind: ServiceAccount + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + application: "${APPLICATION_NAME}" +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + - name: git-ssh + port: 8001 + targetPort: 8001 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentr" + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + annotations: + description: All the Business Central web server's ports. +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentr" + metadata: + name: "${APPLICATION_NAME}-ping" + labels: + application: "${APPLICATION_NAME}" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: All the KIE server web server's ports. +- kind: Service + apiVersion: v1 + spec: + ports: + - name: rest + port: 9200 + targetPort: 9200 + - name: transport + port: 9300 + targetPort: 9300 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamindex" + metadata: + name: "${APPLICATION_NAME}-rhpamindex" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamindex" + annotations: + description: All the Business Central Indexing Elasticsearch ports. +- apiVersion: v1 + kind: Service + spec: + ports: + - port: 61616 + targetPort: 61616 + selector: + deploymentConfig: "${APPLICATION_NAME}-amq" + metadata: + name: "${APPLICATION_NAME}-amq-tcp" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-amq" + annotations: + description: The broker's OpenWire port. +## MySQL service BEGIN +- apiVersion: v1 + kind: Service + spec: + ports: + - port: 3306 + targetPort: 3306 + selector: + deploymentConfig: "${APPLICATION_NAME}-mysql" + metadata: + name: "${APPLICATION_NAME}-mysql" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-mysql" + annotations: + description: The MySQL server's port. +## MySQL service END +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamcentr-http" + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + annotations: + description: Route for Business Central's http service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-rhpamcentr" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamcentr-https" + metadata: + name: "secure-${APPLICATION_NAME}-rhpamcentr" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + annotations: + description: Route for Business Central's https service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${BUSINESS_CENTRAL_HOSTNAME_HTTPS}" + to: + name: ${APPLICATION_NAME}-rhpamcentr + port: + targetPort: https + tls: + termination: passthrough +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-http" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's http service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-https" + metadata: + name: "secure-${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's https service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTPS}" + to: + name: ${APPLICATION_NAME}-kieserver + port: + targetPort: https + tls: + termination: passthrough +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamindex-http" + metadata: + name: "${APPLICATION_NAME}-rhpamindex" + labels: + application: "${APPLICATION_NAME}" + annotations: + description: Route for Business Central Indexing's Elasticsearch http service. + spec: + host: "${ES_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-rhpamindex" + port: + targetPort: rest +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + application: "${APPLICATION_NAME}" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-rhpamcentr" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-businesscentral-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange +## Replicas for Business Central + replicas: 2 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentr" + template: + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentr" + application: "${APPLICATION_NAME}" + spec: + serviceAccountName: "${APPLICATION_NAME}-rhpamcentr" + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-rhpamcentr" + image: rhpam70-businesscentral-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${BUSINESS_CENTRAL_MEMORY_LIMIT}" + volumeMounts: + - name: businesscentral-keystore-volume + mountPath: "/etc/businesscentral-secret-volume" + readOnly: true + - name: "${APPLICATION_NAME}-rhpamcentr-pvol" + mountPath: "/opt/eap/standalone/data/bpmsuite" + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: KIE_MAVEN_USER + value: "${BUSINESS_CENTRAL_MAVEN_USERNAME}" + - name: KIE_MAVEN_PWD + value: "${BUSINESS_CENTRAL_MAVEN_PASSWORD}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/businesscentral-secret-volume" + - name: HTTPS_KEYSTORE + value: "${BUSINESS_CENTRAL_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${BUSINESS_CENTRAL_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${BUSINESS_CENTRAL_HTTPS_PASSWORD}" + - name: ADMIN_USERNAME + value: "${ADMIN_USERNAME}" + - name: ADMIN_PASSWORD + value: "${ADMIN_PASSWORD}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + - name: APPFORMER_ELASTIC_PORT + value: "${APPFORMER_ELASTIC_PORT}" + - name: APPFORMER_ELASTIC_CLUSTER_NAME + value: "${APPFORMER_ELASTIC_CLUSTER_NAME}" + - name: APPFORMER_ELASTIC_RETRIES + value: "${APPFORMER_ELASTIC_RETRIES}" + - name: APPFORMER_ELASTIC_HOST + value: "${APPLICATION_NAME}-rhpamindex" + - name: APPFORMER_JMS_BROKER_ADDRESS + value: "${APPLICATION_NAME}-amq-tcp" + - name: APPFORMER_JMS_BROKER_PORT + value: "${APPFORMER_JMS_BROKER_PORT}" + - name: APPFORMER_JMS_BROKER_USER + value: "${APPFORMER_JMS_BROKER_USER}" + - name: APPFORMER_JMS_BROKER_PASSWORD + value: "${APPFORMER_JMS_BROKER_PASSWORD}" + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${BUSINESS_CENTRAL_SSO_SECRET}" + - name: SSO_CLIENT + value: "${BUSINESS_CENTRAL_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" + - name: HOSTNAME_HTTPS + value: "${BUSINESS_CENTRAL_HOSTNAME_HTTPS}" + volumes: + - name: businesscentral-keystore-volume + secret: + secretName: "${BUSINESS_CENTRAL_HTTPS_SECRET}" + - name: "${APPLICATION_NAME}-rhpamcentr-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-rhpamcentr-claim" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 2 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + application: "${APPLICATION_NAME}" + spec: + serviceAccountName: "${APPLICATION_NAME}-kieserver" + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver" + image: rhpam70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXCECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/healthcheck" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + failureThreshold: 3 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/readycheck" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + env: + - name: AUTO_CONFIGURE_EJB_TIMER + value: "true" + - name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: "${TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL}" + - name: DATASOURCES + value: "RHPAM" +## MySQL driver settings BEGIN + - name: RHPAM_DATABASE + value: "${KIE_SERVER_MYSQL_DB}" + - name: RHPAM_DRIVER + value: "mysql" + - name: RHPAM_USERNAME + value: "${KIE_SERVER_MYSQL_USER}" + - name: RHPAM_PASSWORD + value: "${KIE_SERVER_MYSQL_PWD}" + - name: RHPAM_SERVICE_HOST + value: "${APPLICATION_NAME}-mysql" + - name: RHPAM_SERVICE_PORT + value: "3306" + - name: KIE_SERVER_PERSISTENCE_DIALECT + value: "org.hibernate.dialect.MySQLDialect" +## MySQL driver settings END + - name: KIE_SERVER_PERSISTENCE_DS + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: RHPAM_JNDI + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: RHPAM_JTA + value: "true" + - name: RHPAM_TX_ISOLATION + value: "TRANSACTION_READ_COMMITTED" + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${APPLICATION_NAME}-rhpamcentr" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_ID + value: "${KIE_SERVER_ID}" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: MAVEN_REPO_USERNAME + value: "${KIE_ADMIN_USER}" + - name: MAVEN_REPO_PASSWORD + value: "${KIE_ADMIN_PWD}" + - name: MAVEN_REPOS + value: "RHPAMCENTR,EXTERNAL" + - name: MAVEN_REPO_SERVICE + value: "${APPLICATION_NAME}-rhpamcentr" + - name: MAVEN_REPO_PATH + value: "/maven2/" + - name: RHPAMCENTR_MAVEN_REPO_USERNAME + value: "${BUSINESS_CENTRAL_MAVEN_USERNAME}" + - name: RHPAMCENTR_MAVEN_REPO_PASSWORD + value: "${BUSINESS_CENTRAL_MAVEN_PASSWORD}" + - name: EXTERNAL_MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: EXTERNAL_MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: EXTERNAL_MAVEN_REPO_PASSWORD + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${KIE_SERVER_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${KIE_SERVER_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${KIE_SERVER_HTTPS_PASSWORD}" + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${KIE_SERVER_SSO_SECRET}" + - name: SSO_CLIENT + value: "${KIE_SERVER_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + - name: HOSTNAME_HTTPS + value: "${EXECUTION_SERVER_HOSTNAME_HTTPS}" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${KIE_SERVER_HTTPS_SECRET}" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-rhpamindex" + labels: + application: "${APPLICATION_NAME}" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-rhpamindex" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-businesscentral-indexing-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamindex" + template: + metadata: + name: "${APPLICATION_NAME}-rhpamindex" + labels: + deploymentConfig: "${APPLICATION_NAME}-rhpamindex" + application: "${APPLICATION_NAME}" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-rhpamindex" + image: rhpam70-businesscentral-indexing-openshift + imagePullPolicy: Always + volumeMounts: + - name: "${APPLICATION_NAME}-rhpamindex-pvol" + mountPath: "/opt/elasticsearch/data" + livenessProbe: + tcpSocket: + port: 9300 + initialDelaySeconds: 15 + timeoutSeconds: 1 + readinessProbe: + httpGet: + path: /_cluster/health + port: 9200 + initialDelaySeconds: 15 + timeoutSeconds: 2 + ports: + - name: es + containerPort: 9300 + protocol: TCP + - name: http + containerPort: 9200 + protocol: TCP + env: + - name: ES_CLUSTER_NAME + value: "${APPFORMER_ELASTIC_CLUSTER_NAME}" + - name: ES_NODE_NAME + value: "${ES_NODE_NAME}" + - name: ES_TRANSPORT_HOST + value: "${ES_TRANSPORT_HOST}" + - name: ES_TRANSPORT_TCP_PORT + value: "${APPFORMER_ELASTIC_PORT}" + - name: ES_HTTP_PORT + value: "${ES_HTTP_PORT}" + - name: ES_HTTP_HOST + value: "${ES_HTTP_HOST}" + - name: ES_JAVA_OPTS + value: "${ES_JAVA_OPTS}" + volumes: + - name: "${APPLICATION_NAME}-rhpamindex-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-rhpamindex-claim" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + labels: + application: ${APPLICATION_NAME} + name: ${APPLICATION_NAME}-amq + spec: + replicas: 1 + selector: + deploymentConfig: ${APPLICATION_NAME}-amq + strategy: + rollingParams: + maxSurge: 0 + type: Rolling + template: + metadata: + labels: + application: ${APPLICATION_NAME} + deploymentConfig: ${APPLICATION_NAME}-amq + name: ${APPLICATION_NAME}-amq + spec: + containers: + - env: + - name: AMQ_USER + value: "${APPFORMER_JMS_BROKER_USER}" + - name: AMQ_PASSWORD + value: "${APPFORMER_JMS_BROKER_PASSWORD}" + - name: AMQ_ROLE + value: ${AMQ_ROLE} + - name: AMQ_NAME + value: ${AMQ_NAME} + - name: AMQ_TRANSPORTS + value: "openwire" + - name: AMQ_GLOBAL_MAX_SIZE + value: ${AMQ_GLOBAL_MAX_SIZE} + image: amq-broker71-openshift + imagePullPolicy: Always + livenessProbe: + failureThreshold: 3 + initialDelaySeconds: 90 + periodSeconds: 10 + successThreshold: 1 + tcpSocket: + port: 5672 + timeoutSeconds: 1 + readinessProbe: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + tcpSocket: + port: 5672 + timeoutSeconds: 1 + name: ${APPLICATION_NAME}-amq + ports: + - containerPort: 8161 + name: jolokia + protocol: TCP + - containerPort: 5672 + name: amqp + protocol: TCP + - containerPort: 1883 + name: mqtt + protocol: TCP + - containerPort: 61613 + name: stomp + protocol: TCP + - containerPort: 61616 + name: artemis + protocol: TCP + terminationGracePeriodSeconds: 60 + triggers: + - imageChangeParams: + automatic: true + containerNames: + - ${APPLICATION_NAME}-amq + from: + kind: ImageStreamTag + name: amq-broker71-openshift:1.0 + namespace: ${IMAGE_STREAM_NAMESPACE} + type: ImageChange + - type: ConfigChange +## MySQL deployment config BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-mysql" + labels: + application: "${APPLICATION_NAME}" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-mysql" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "mysql:${MYSQL_IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-mysql" + template: + metadata: + name: "${APPLICATION_NAME}-mysql" + labels: + deploymentConfig: "${APPLICATION_NAME}-mysql" + application: "${APPLICATION_NAME}" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-mysql" + image: mysql + imagePullPolicy: Always + ports: + - containerPort: 3306 + protocol: TCP + volumeMounts: + - mountPath: "/var/lib/mysql/data" + name: "${APPLICATION_NAME}-mysql-pvol" + env: + - name: MYSQL_USER + value: "${KIE_SERVER_MYSQL_USER}" + - name: MYSQL_PASSWORD + value: "${KIE_SERVER_MYSQL_PWD}" + - name: MYSQL_DATABASE + value: "${KIE_SERVER_MYSQL_DB}" + volumes: + - name: "${APPLICATION_NAME}-mysql-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-mysql-claim" +## MySQL deployment config END +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-rhpamcentr-claim" + labels: + application: "${APPLICATION_NAME}" + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: "${BUSINESS_CENTRAL_VOLUME_CAPACITY}" +## MySQL persistent volume claim BEGIN +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-mysql-claim" + labels: + application: "${APPLICATION_NAME}" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${DB_VOLUME_CAPACITY}" +## MySQL persistent volume claim END +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-rhpamindex-claim" + labels: + application: "${APPLICATION_NAME}" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${ES_VOLUME_CAPACITY}" diff --git a/addons/xpaas/v3.11/xpaas-templates/rhpam70-authoring.yaml b/addons/xpaas/v3.11/xpaas-templates/rhpam70-authoring.yaml new file mode 100644 index 0000000000..bb9f6a7699 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhpam70-authoring.yaml @@ -0,0 +1,738 @@ +--- +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for a non-HA persistent authoring environment, for Red Hat Process Automation Manager 7.0 + iconClass: icon-jboss + tags: rhpam,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Process Automation Manager 7.0 authoring environment (non-HA, persistent, with https) + name: rhpam70-authoring +labels: + template: rhpam70-authoring + xpaas: 1.4.0 +message: A new persistent Process Automation Manager application have been created in your project. + The username/password for accessing the KIE Server / Business Central interface is ${KIE_ADMIN_USER}/${KIE_ADMIN_PWD}. + Please be sure to create the secrets named "${BUSINESS_CENTRAL_HTTPS_SECRET}" and "${KIE_SERVER_HTTPS_SECRET}" containing the + ${BUSINESS_CENTRAL_HTTPS_KEYSTORE} and ${KIE_SERVER_HTTPS_KEYSTORE} files used for serving secure content. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: EAP Admin User + description: EAP administrator username + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator username + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server Controller User + description: KIE server controller username (Sets the org.kie.server.controller.user system property) + name: KIE_SERVER_CONTROLLER_USER + value: controllerUser + required: false +- displayName: KIE Server Controller Password + description: KIE server controller password (Sets the org.kie.server.controller.pwd system property) + name: KIE_SERVER_CONTROLLER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server User + description: KIE execution server username (Sets the org.kie.server.user system property) + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password (Sets the org.kie.server.pwd system property) + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server ID + description: Business server identifier. Determines the template ID in Business Central or controller. If this parameter is left blank, it is set using the $HOSTNAME environment variable or a random value. (Sets the org.kie.server.id system property). + name: KIE_SERVER_ID + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user (Sets the org.kie.server.bypass.auth.user system property) + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false +- displayName: KIE Server Persistence DS + description: KIE execution server persistence datasource (Sets the org.kie.server.persistence.ds system property) + name: KIE_SERVER_PERSISTENCE_DS + value: java:/jboss/datasources/rhpam + required: false +## H2 database parameters BEGIN +- displayName: KIE Server H2 Database User + description: KIE execution server H2 database username + name: KIE_SERVER_H2_USER + value: sa + required: false +- displayName: KIE Server H2 Database Password + description: KIE execution server H2 database password + name: KIE_SERVER_H2_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +## H2 database parameters END +- displayName: KIE MBeans + description: KIE execution server mbeans enabled/disabled (Sets the kie.mbeans and kie.scanner.mbeans system properties) + name: KIE_MBEANS + value: enabled + required: false +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering (Sets the org.drools.server.filter.classes system property) + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: Business Central Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -rhpamcentr-.' + name: BUSINESS_CENTRAL_HOSTNAME_HTTP + value: '' + required: false +- displayName: Business Central Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--rhpamcentr-.' + name: BUSINESS_CENTRAL_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Execution Server Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Execution Server Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Business Central Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: BUSINESS_CENTRAL_HTTPS_SECRET + example: businesscentral-app-secret + required: true +- displayName: Business Central Server Keystore Filename + description: The name of the keystore file within the secret + name: BUSINESS_CENTRAL_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: Business Central Server Certificate Name + description: The name associated with the server certificate + name: BUSINESS_CENTRAL_HTTPS_NAME + value: jboss + required: false +- displayName: Business Central Server Keystore Password + description: The password for the keystore and certificate + name: BUSINESS_CENTRAL_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: KIE_SERVER_HTTPS_SECRET + example: kieserver-app-secret + required: true +- displayName: KIE Server Keystore Filename + description: The name of the keystore file within the secret + name: KIE_SERVER_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: KIE Server Certificate Name + description: The name associated with the server certificate + name: KIE_SERVER_HTTPS_NAME + value: jboss + required: false +- displayName: KIE Server Keystore Password + description: The password for the keystore and certificate + name: KIE_SERVER_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: Database Volume Capacity + description: Size of persistent storage for database volume. + name: DB_VOLUME_CAPACITY + value: 1Gi + required: true +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + You should only need to modify this if you've installed the ImageStreams in a + different namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.0". + name: IMAGE_STREAM_TAG + value: "1.0" + required: false +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository or service. + name: MAVEN_REPO_URL + example: http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ + required: false +- displayName: Maven repository username + description: Username to access the Maven repository. + name: MAVEN_REPO_USERNAME + required: false +- displayName: Maven repository password + description: Password to access the Maven repository. + name: MAVEN_REPO_PASSWORD + required: false +- displayName: Username for the Maven service hosted by Business Central + description: Username to access the Maven service hosted by Business Central inside EAP. + name: BUSINESS_CENTRAL_MAVEN_USERNAME + required: true + value: mavenUser +- displayName: Password for the Maven service hosted by Business Central + description: Password to access the Maven service hosted by Business Central inside EAP. + name: BUSINESS_CENTRAL_MAVEN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: true +- displayName: Business Central Volume Capacity + description: Size of the persistent storage for Business Central's runtime data. + name: BUSINESS_CENTRAL_VOLUME_CAPACITY + value: 1Gi + required: true +- displayName: Business Central Container Memory Limit + description: Business Central Container memory limit + name: BUSINESS_CENTRAL_MEMORY_LIMIT + value: 2Gi + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXCECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +- displayName: RH-SSO URL + description: RH-SSO URL + name: SSO_URL + example: https://rh-sso.example.com/auth + required: false +- displayName: RH-SSO Realm name + description: RH-SSO Realm name + name: SSO_REALM + required: false +- displayName: Business Central RH-SSO Client name + description: Business Central RH-SSO Client name + name: BUSINESS_CENTRAL_SSO_CLIENT + required: false +- displayName: Business Central RH-SSO Client Secret + description: Business Central RH-SSO Client Secret + name: BUSINESS_CENTRAL_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: KIE Server RH-SSO Client name + description: KIE Server RH-SSO Client name + name: KIE_SERVER_SSO_CLIENT + required: false +- displayName: KIE Server RH-SSO Client Secret + description: KIE Server RH-SSO Client Secret + name: KIE_SERVER_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: RH-SSO Realm Admin Username + description: RH-SSO Realm Admin Username used to create the Client if it doesn't exist + name: SSO_USERNAME + required: false +- displayName: RH-SSO Realm Admin Password + description: RH-SSO Realm Admin Password used to create the Client + name: SSO_PASSWORD + required: false +- displayName: RH-SSO Disable SSL Certificate Validation + description: RH-SSO Disable SSL Certificate Validation + name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "false" + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + - name: git-ssh + port: 8001 + targetPort: 8001 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentr" + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + annotations: + description: All the Business Central web server's ports. +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: All the KIE server web server's ports. +## Place to add database service +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamcentr-http" + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + annotations: + description: Route for Business Central's http service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-rhpamcentr" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamcentr-https" + metadata: + name: secure-${APPLICATION_NAME}-rhpamcentr + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + annotations: + description: Route for Business Central's https service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${BUSINESS_CENTRAL_HOSTNAME_HTTPS}" + to: + name: ${APPLICATION_NAME}-rhpamcentr + port: + targetPort: https + tls: + termination: passthrough +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-http" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's http service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-https" + metadata: + name: secure-${APPLICATION_NAME}-kieserver + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's https service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTPS}" + to: + name: ${APPLICATION_NAME}-kieserver + port: + targetPort: https + tls: + termination: passthrough +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-rhpamcentr" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-businesscentral-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentr" + template: + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentr" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-rhpamcentr" + image: rhpam70-businesscentral-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${BUSINESS_CENTRAL_MEMORY_LIMIT}" + volumeMounts: + - name: businesscentral-keystore-volume + mountPath: "/etc/businesscentral-secret-volume" + readOnly: true + - name: "${APPLICATION_NAME}-rhpamcentr-pvol" + mountPath: "/opt/eap/standalone/data/bpmsuite" + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: git-ssh + containerPort: 8001 + protocol: TCP + env: + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: KIE_MAVEN_USER + value: "${BUSINESS_CENTRAL_MAVEN_USERNAME}" + - name: KIE_MAVEN_PWD + value: "${BUSINESS_CENTRAL_MAVEN_PASSWORD}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/businesscentral-secret-volume" + - name: HTTPS_KEYSTORE + value: "${BUSINESS_CENTRAL_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${BUSINESS_CENTRAL_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${BUSINESS_CENTRAL_HTTPS_PASSWORD}" + - name: ADMIN_USERNAME + value: "${ADMIN_USERNAME}" + - name: ADMIN_PASSWORD + value: "${ADMIN_PASSWORD}" + - name: PROBE_IMPL + value: probe.eap.jolokia.EapProbe + - name: PROBE_DISABLE_BOOT_ERRORS_CHECK + value: 'true' + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${BUSINESS_CENTRAL_SSO_SECRET}" + - name: SSO_CLIENT + value: "${BUSINESS_CENTRAL_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" + - name: HOSTNAME_HTTPS + value: "${BUSINESS_CENTRAL_HOSTNAME_HTTPS}" + volumes: + - name: businesscentral-keystore-volume + secret: + secretName: "${BUSINESS_CENTRAL_HTTPS_SECRET}" + - name: "${APPLICATION_NAME}-rhpamcentr-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-rhpamcentr-claim" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver" + image: rhpam70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXCECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true +## H2 volume mount BEGIN + - name: "${APPLICATION_NAME}-h2-pvol" + mountPath: "/opt/eap/standalone/data" +## H2 volume mount END + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/healthcheck" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + failureThreshold: 3 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/readycheck" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + env: + - name: DATASOURCES + value: "RHPAM" + - name: RHPAM_DATABASE + value: "rhpam7" + - name: RHPAM_JNDI + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: RHPAM_JTA + value: "true" +## H2 driver settings BEGIN + - name: RHPAM_DRIVER + value: "h2" + - name: RHPAM_USERNAME + value: "${KIE_SERVER_H2_USER}" + - name: RHPAM_PASSWORD + value: "${KIE_SERVER_H2_PWD}" + - name: RHPAM_XA_CONNECTION_PROPERTY_URL + value: "jdbc:h2:/opt/eap/standalone/data/rhpam" + - name: RHPAM_SERVICE_HOST + value: "dummy_ignored" + - name: RHPAM_SERVICE_PORT + value: "12345" + - name: KIE_SERVER_PERSISTENCE_DIALECT + value: "org.hibernate.dialect.H2Dialect" +## H2 driver settings END + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${APPLICATION_NAME}-rhpamcentr" + - name: KIE_SERVER_ID + value: "${KIE_SERVER_ID}" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_PERSISTENCE_DS + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: MAVEN_REPOS + value: "RHPAMCENTR,EXTERNAL" + - name: RHPAMCENTR_MAVEN_REPO_SERVICE + value: "${APPLICATION_NAME}-rhpamcentr" + - name: RHPAMCENTR_MAVEN_REPO_PATH + value: "/maven2/" + - name: RHPAMCENTR_MAVEN_REPO_USERNAME + value: "${BUSINESS_CENTRAL_MAVEN_USERNAME}" + - name: RHPAMCENTR_MAVEN_REPO_PASSWORD + value: "${BUSINESS_CENTRAL_MAVEN_PASSWORD}" + - name: EXTERNAL_MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: EXTERNAL_MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: EXTERNAL_MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${KIE_SERVER_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${KIE_SERVER_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${KIE_SERVER_HTTPS_PASSWORD}" + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${KIE_SERVER_SSO_SECRET}" + - name: SSO_CLIENT + value: "${KIE_SERVER_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + - name: HOSTNAME_HTTPS + value: "${EXECUTION_SERVER_HOSTNAME_HTTPS}" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${KIE_SERVER_HTTPS_SECRET}" +## H2 volume settings BEGIN + - name: "${APPLICATION_NAME}-h2-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-h2-claim" +## H2 volume settings END +## Place to add database deployment config +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-rhpamcentr-claim" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${BUSINESS_CENTRAL_VOLUME_CAPACITY}" +## H2 persistent volume claim BEGIN +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-h2-claim" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${DB_VOLUME_CAPACITY}" +## H2 persistent volume claim END diff --git a/addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-externaldb.yaml b/addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-externaldb.yaml new file mode 100644 index 0000000000..49109e8fa7 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-externaldb.yaml @@ -0,0 +1,502 @@ +--- +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for a managed KIE server with an external database, for Red Hat Process Automation Manager 7.0 + iconClass: icon-jboss + tags: rhpam,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Process Automation Manager 7.0 managed KIE server with an external database + name: rhpam70-kieserver-externaldb +labels: + template: rhpam70-kieserver-externaldb + xpaas: 1.4.0 +message: A new environment has been set up for Red Hat Process Automation Manager 7. The username/password for accessing the KIE server is ${KIE_SERVER_USER}/${KIE_SERVER_PWD}. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository or service. + name: MAVEN_REPO_URL + example: http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ + required: true +- displayName: Maven repository username + description: Username to access the Maven repository, if required. + name: MAVEN_REPO_USERNAME + required: false +- displayName: Maven repository password + description: Password to access the Maven repository, if required. + name: MAVEN_REPO_PASSWORD + required: false +- displayName: EAP Admin User + description: EAP administrator username + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator username + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server ID + description: The KIE server ID to use, which defaults to ${APPLICATION_NAME}-kieserver if not specified (Sets the org.kie.server.id system property). + name: KIE_SERVER_ID + required: false +- displayName: KIE Server User + description: KIE execution server username (Sets the org.kie.server.user system property) + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password (Sets the org.kie.server.pwd system property) + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + You should only need to modify this if you've installed the ImageStreams in a + different namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.0". + name: IMAGE_STREAM_TAG + value: "1.0" + required: false +- displayName: Smart Router Service + description: The service name for the optional smart router, where it can be reached, to allow smart routing + name: KIE_SERVER_ROUTER_SERVICE + required: false +- displayName: Smart Router Host + description: "The host name of the smart router, which could be the service name resolved by OpenShift or a globally resolvable domain name" + name: KIE_SERVER_ROUTER_HOST + example: "myapp-smartrouter" + required: false +- displayName: Smart Router listening port + description: Port in which the smart router server listens (router property org.kie.server.router.port) + name: KIE_SERVER_ROUTER_PORT + example: "9000" + required: false +- displayName: Smart Router protocol + description: KIE server router protocol (Used to build the org.kie.server.router.url.external property) + name: KIE_SERVER_ROUTER_PROTOCOL + example: "http" + required: false +- displayName: KIE Server Controller Service + description: The service name for the optional business-central-monitor, where it can be reached and registered with, to allow monitoring console functionality + name: KIE_SERVER_CONTROLLER_SERVICE + required: false +- displayName: KIE Server Controller User + description: KIE server controller username (Sets the org.kie.server.controller.user system property) + name: KIE_SERVER_CONTROLLER_USER + value: controllerUser + required: false +- displayName: KIE Server Controller Password + description: KIE server controller password (Sets the org.kie.server.controller.pwd system property) + name: KIE_SERVER_CONTROLLER_PWD + required: false +- displayName: KIE server controller host + description: KIE server controller host (Used to set the org.kie.server.controller system property) + name: KIE_SERVER_CONTROLLER_HOST + example: my-app-controller-ocpuser.os.example.com + required: false +- displayName: KIE server controller port + description: KIE server controller port (Used to set the org.kie.server.controller system property) + name: KIE_SERVER_CONTROLLER_PORT + example: '8080' + required: false +- displayName: KIE server controller protocol + description: KIE server controller protocol (Used to set the org.kie.server.controller system property) + name: KIE_SERVER_CONTROLLER_PROTOCOL + example: http + required: false +- displayName: KIE Server controller token + description: KIE server controller token for bearer authentication (Sets the org.kie.server.controller.token system property) + name: KIE_SERVER_CONTROLLER_TOKEN + required: false +- displayName: KIE Server Persistence DS + description: KIE execution server persistence datasource (Sets the org.kie.server.persistence.ds system property) + name: KIE_SERVER_PERSISTENCE_DS + value: java:/jboss/datasources/rhpam + required: false +## External database parameters BEGIN +- displayName: KIE Server External Database Driver + description: KIE execution server external database driver + name: KIE_SERVER_EXTERNALDB_DRIVER + example: "mysql" + required: true +- displayName: KIE Server External Database User + description: KIE execution server external database username + name: KIE_SERVER_EXTERNALDB_USER + example: rhpam + required: true +- displayName: KIE Server External Database Password + description: KIE execution server external database password + name: KIE_SERVER_EXTERNALDB_PWD + required: true +- displayName: KIE Server External Database URL + description: KIE execution server external database JDBC URL + name: KIE_SERVER_EXTERNALDB_URL + example: "jdbc:mysql://127.0.0.1:3306/rhpam" + required: true +- displayName: KIE Server External Database Dialect + description: KIE execution server external database Hibernate dialect + name: KIE_SERVER_EXTERNALDB_DIALECT + example: "org.hibernate.dialect.MySQL5Dialect" + required: true +- displayName: KIE Server External Database Host + description: KIE execution server external database host, for ejb_timer datasource configuration + name: KIE_SERVER_EXTERNALDB_HOST + required: true +- displayName: KIE Server External Database name + description: KIE execution server external database name, for ejb_timer datasource configuration + name: KIE_SERVER_EXTERNALDB_DB + value: rhpam + required: false +## External database parameters END +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering (Sets the org.drools.server.filter.classes system property) + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: KIE MBeans + description: KIE execution server mbeans enabled/disabled (Sets the kie.mbeans and kie.scanner.mbeans system properties) + name: KIE_MBEANS + value: enabled + required: false +- displayName: Execution Server Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Execution Server Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTPS + value: '' + required: false +- displayName: KIE Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: KIE_SERVER_HTTPS_SECRET + example: kieserver-app-secret + required: true +- displayName: KIE Server Keystore Filename + description: The name of the keystore file within the secret + name: KIE_SERVER_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: KIE Server Certificate Name + description: The name associated with the server certificate + name: KIE_SERVER_HTTPS_NAME + value: jboss + required: false +- displayName: KIE Server Keystore Password + description: The password for the keystore and certificate + name: KIE_SERVER_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user (Sets the org.kie.server.bypass.auth.user system property) + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false +- displayName: "Timer service data store refresh interval (in milliseconds)" + description: "Sets refresh-interval for the EJB timer database data-store service." + name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: '30000' + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +- displayName: KIE Server Container Deployment + description: 'KIE Server Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2' + name: KIE_SERVER_CONTAINER_DEPLOYMENT + example: rhpam-kieserver-library=org.openshift.quickstarts:rhpam-kieserver-library:1.4.0-SNAPSHOT + required: false +- displayName: Disable KIE Server Management + description: "Disable management api and don't allow KIE containers to be deployed/undeployed or started/stopped sets the property org.kie.server.mgmt.api.disabled to true and org.kie.server.startup.strategy to LocalContainersStartupStrategy." + name: KIE_SERVER_MGMT_DISABLED + example: "true" + required: false +- displayName: KIE Server Startup Strategy + description: "When set to LocalContainersStartupStrategy, allows KIE server to start up and function with local config, even when a controller is configured and unavailable." + name: KIE_SERVER_STARTUP_STRATEGY + example: "LocalContainersStartupStrategy" + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: All the KIE server web server's ports. +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver-ping" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-http" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's http service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-https" + metadata: + name: "secure-${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's https service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTPS}" + to: + name: "${APPLICATION_NAME}-kieserver" + port: + targetPort: https + tls: + termination: passthrough +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver" + image: rhpam70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/healthcheck" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + failureThreshold: 3 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/readycheck" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${KIE_SERVER_CONTROLLER_SERVICE}" + - name: KIE_SERVER_CONTROLLER_HOST + value: "${KIE_SERVER_CONTROLLER_HOST}" + - name: KIE_SERVER_CONTROLLER_PORT + value: "${KIE_SERVER_CONTROLLER_PORT}" + - name: KIE_SERVER_CONTROLLER_PROTOCOL + value: "${KIE_SERVER_CONTROLLER_PROTOCOL}" + - name: KIE_SERVER_CONTROLLER_TOKEN + value: "${KIE_SERVER_CONTROLLER_TOKEN}" + - name: KIE_SERVER_ID + value: "${KIE_SERVER_ID}" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "${KIE_SERVER_CONTAINER_DEPLOYMENT}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: MAVEN_REPO_PATH + value: "/maven2/" + - name: KIE_SERVER_ROUTER_SERVICE + value: "${KIE_SERVER_ROUTER_SERVICE}" + - name: KIE_SERVER_ROUTER_HOST + value: "${KIE_SERVER_ROUTER_HOST}" + - name: KIE_SERVER_ROUTER_PORT + value: "${KIE_SERVER_ROUTER_PORT}" + - name: KIE_SERVER_ROUTER_PROTOCOL + value: "${KIE_SERVER_ROUTER_PROTOCOL}" + - name: KIE_SERVER_MGMT_DISABLED + value: "${KIE_SERVER_MGMT_DISABLED}" + - name: KIE_SERVER_STARTUP_STRATEGY + value: "${KIE_SERVER_STARTUP_STRATEGY}" + - name: KIE_SERVER_PERSISTENCE_DS + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: DATASOURCES + value: "RHPAM" + - name: RHPAM_JNDI + value: "${KIE_SERVER_PERSISTENCE_DS}" +## External database driver settings BEGIN + - name: KIE_SERVER_PERSISTENCE_DIALECT + value: "${KIE_SERVER_EXTERNALDB_DIALECT}" + - name: RHPAM_DRIVER + value: "${KIE_SERVER_EXTERNALDB_DRIVER}" + - name: RHPAM_USERNAME + value: "${KIE_SERVER_EXTERNALDB_USER}" + - name: RHPAM_PASSWORD + value: "${KIE_SERVER_EXTERNALDB_PWD}" + - name: RHPAM_XA_CONNECTION_PROPERTY_URL + value: "${KIE_SERVER_EXTERNALDB_URL}" + - name: RHPAM_SERVICE_HOST + value: "${KIE_SERVER_EXTERNALDB_HOST}" + - name: RHPAM_DATABASE + value: "${KIE_SERVER_EXTERNALDB_DB}" +## External database driver settings END + - name: RHPAM_JTA + value: "true" + - name: RHPAM_TX_ISOLATION + value: "TRANSACTION_READ_COMMITTED" + - name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: "${TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${KIE_SERVER_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${KIE_SERVER_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${KIE_SERVER_HTTPS_PASSWORD}" + - name: ADMIN_USERNAME + value: "${ADMIN_USERNAME}" + - name: ADMIN_PASSWORD + value: "${ADMIN_PASSWORD}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-kieserver-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${KIE_SERVER_HTTPS_SECRET}" diff --git a/addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-mysql.yaml b/addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-mysql.yaml new file mode 100644 index 0000000000..a3494a9e86 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-mysql.yaml @@ -0,0 +1,585 @@ +--- +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for a managed KIE server with a MySQL database, for Red Hat Process Automation Manager 7.0 + iconClass: icon-jboss + tags: rhpam,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Process Automation Manager 7.0 managed KIE server with a MySQL database + name: rhpam70-kieserver-mysql +labels: + template: rhpam70-kieserver-mysql + xpaas: 1.4.0 +message: A new environment has been set up for Red Hat Process Automation Manager 7. The username/password for accessing the KIE server is ${KIE_SERVER_USER}/${KIE_SERVER_PWD}. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository or service. + name: MAVEN_REPO_URL + example: http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ + required: true +- displayName: Maven repository username + description: Username to access the Maven repository, if required. + name: MAVEN_REPO_USERNAME + required: true +- displayName: Maven repository password + description: Password to access the Maven repository, if required. + name: MAVEN_REPO_PASSWORD + required: true +- displayName: EAP Admin User + description: EAP administrator username + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator username + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server ID + description: The KIE server ID to use, which defaults to ${APPLICATION_NAME}-kieserver if not specified (Sets the org.kie.server.id system property). + name: KIE_SERVER_ID + required: false +- displayName: KIE Server User + description: KIE execution server username (Sets the org.kie.server.user system property) + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password (Sets the org.kie.server.pwd system property) + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + You should only need to modify this if you've installed the ImageStreams in a + different namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.0". + name: IMAGE_STREAM_TAG + value: "1.0" + required: false +- displayName: Smart Router Service + description: The service name for the optional smart router, where it can be reached, to allow smart routing + name: KIE_SERVER_ROUTER_SERVICE + required: false +- displayName: Smart Router Host + description: "The host name of the smart router, which could be the service name resolved by OpenShift or a globally resolvable domain name" + name: KIE_SERVER_ROUTER_HOST + example: "myapp-smartrouter" + required: false +- displayName: Smart Router listening port + description: Port in which the smart router server listens (router property org.kie.server.router.port) + name: KIE_SERVER_ROUTER_PORT + example: "9000" + required: false +- displayName: Smart Router protocol + description: KIE server router protocol (Used to build the org.kie.server.router.url.external property) + name: KIE_SERVER_ROUTER_PROTOCOL + example: "http" + required: false +- displayName: KIE Server Controller Service + description: The service name for the optional business-central-monitor, where it can be reached and registered with, to allow monitoring console functionality + name: KIE_SERVER_CONTROLLER_SERVICE + required: false +- displayName: KIE Server Controller User + description: KIE server controller username (Sets the org.kie.server.controller.user system property) + name: KIE_SERVER_CONTROLLER_USER + value: controllerUser + required: false +- displayName: KIE Server Controller Password + description: KIE server controller password (Sets the org.kie.server.controller.pwd system property) + name: KIE_SERVER_CONTROLLER_PWD + required: false +- displayName: KIE server controller host + description: KIE server controller host (Used to set the org.kie.server.controller system property) + name: KIE_SERVER_CONTROLLER_HOST + example: my-app-controller-ocpuser.os.example.com + required: false +- displayName: KIE server controller port + description: KIE server controller port (Used to set the org.kie.server.controller system property) + name: KIE_SERVER_CONTROLLER_PORT + example: '8080' + required: false +- displayName: KIE server controller protocol + description: KIE server controller protocol (Used to set the org.kie.server.controller system property) + name: KIE_SERVER_CONTROLLER_PROTOCOL + example: http + required: false +- displayName: KIE Server controller token + description: KIE server controller token for bearer authentication (Sets the org.kie.server.controller.token system property) + name: KIE_SERVER_CONTROLLER_TOKEN + required: false +- displayName: KIE Server Persistence DS + description: KIE execution server persistence datasource (Sets the org.kie.server.persistence.ds system property) + name: KIE_SERVER_PERSISTENCE_DS + value: java:/jboss/datasources/rhpam + required: false +## MySQL database parameters BEGIN +- displayName: MySQL ImageStream Tag + description: The MySQL image version, which is intended to correspond to the MySQL version. Default is "5.7". + name: MYSQL_IMAGE_STREAM_TAG + value: "5.7" + required: false +- displayName: KIE Server MySQL Database User + description: KIE execution server MySQL database username + name: KIE_SERVER_MYSQL_USER + value: rhpam + required: false +- displayName: KIE Server MySQL Database Password + description: KIE execution server MySQL database password + name: KIE_SERVER_MYSQL_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server MySQL Database Name + description: KIE execution server MySQL database name + name: KIE_SERVER_MYSQL_DB + value: rhpam7 + required: false +- displayName: Database Volume Capacity + description: Size of persistent storage for database volume. + name: DB_VOLUME_CAPACITY + value: 1Gi +## MySQL database parameters END +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering (Sets the org.drools.server.filter.classes system property) + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: KIE MBeans + description: KIE execution server mbeans enabled/disabled (Sets the kie.mbeans and kie.scanner.mbeans system properties) + name: KIE_MBEANS + value: enabled + required: false +- displayName: Execution Server Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Execution Server Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTPS + value: '' + required: false +- displayName: KIE Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: KIE_SERVER_HTTPS_SECRET + example: kieserver-app-secret + required: true +- displayName: KIE Server Keystore Filename + description: The name of the keystore file within the secret + name: KIE_SERVER_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: KIE Server Certificate Name + description: The name associated with the server certificate + name: KIE_SERVER_HTTPS_NAME + value: jboss + required: false +- displayName: KIE Server Keystore Password + description: The password for the keystore and certificate + name: KIE_SERVER_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user (Sets the org.kie.server.bypass.auth.user system property) + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false + required: true +- displayName: "Timer service data store refresh interval (in milliseconds)" + description: "Sets refresh-interval for the EJB timer database data-store service." + name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: '30000' + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +- displayName: KIE Server Container Deployment + description: 'KIE Server Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2' + name: KIE_SERVER_CONTAINER_DEPLOYMENT + example: rhpam-kieserver-library=org.openshift.quickstarts:rhpam-kieserver-library:1.4.0-SNAPSHOT + required: false +- displayName: Disable KIE Server Management + description: "When set to LocalContainersStartupStrategy, allows KIE server to start up and function with local config, even when a controller is configured and unavailable." + name: KIE_SERVER_MGMT_DISABLED + example: "true" + required: false +- displayName: KIE Server Startup Strategy + description: "When set to LocalContainersStartupStrategy, allows KIE server to start up and function with local config, even when a controller is configured and unavailable." + name: KIE_SERVER_STARTUP_STRATEGY + example: "LocalContainersStartupStrategy" + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: All the KIE server web server's ports. +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver-ping" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +## MySQL service BEGIN +- apiVersion: v1 + kind: Service + metadata: + annotations: + description: The database server's port. + labels: + application: ${APPLICATION_NAME} + service: "${APPLICATION_NAME}-mysql" + name: ${APPLICATION_NAME}-mysql + spec: + ports: + - port: 3306 + targetPort: 3306 + selector: + deploymentConfig: ${APPLICATION_NAME}-mysql +## MySQL service END +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-http" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's http service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-https" + metadata: + name: "secure-${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's https service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTPS}" + to: + name: "${APPLICATION_NAME}-kieserver" + port: + targetPort: https + tls: + termination: passthrough +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver" + image: rhpam70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/healthcheck" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + failureThreshold: 3 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/readycheck" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${KIE_SERVER_CONTROLLER_SERVICE}" + - name: KIE_SERVER_CONTROLLER_HOST + value: "${KIE_SERVER_CONTROLLER_HOST}" + - name: KIE_SERVER_CONTROLLER_PORT + value: "${KIE_SERVER_CONTROLLER_PORT}" + - name: KIE_SERVER_CONTROLLER_PROTOCOL + value: "${KIE_SERVER_CONTROLLER_PROTOCOL}" + - name: KIE_SERVER_CONTROLLER_TOKEN + value: "${KIE_SERVER_CONTROLLER_TOKEN}" + - name: KIE_SERVER_ID + value: "${KIE_SERVER_ID}" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "${KIE_SERVER_CONTAINER_DEPLOYMENT}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: MAVEN_REPO_PATH + value: "/maven2/" + - name: KIE_SERVER_ROUTER_SERVICE + value: "${KIE_SERVER_ROUTER_SERVICE}" + - name: KIE_SERVER_ROUTER_HOST + value: "${KIE_SERVER_ROUTER_HOST}" + - name: KIE_SERVER_ROUTER_PORT + value: "${KIE_SERVER_ROUTER_PORT}" + - name: KIE_SERVER_ROUTER_PROTOCOL + value: "${KIE_SERVER_ROUTER_PROTOCOL}" + - name: KIE_SERVER_MGMT_DISABLED + value: "${KIE_SERVER_MGMT_DISABLED}" + - name: KIE_SERVER_STARTUP_STRATEGY + value: "${KIE_SERVER_STARTUP_STRATEGY}" + - name: KIE_SERVER_PERSISTENCE_DS + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: DATASOURCES + value: "RHPAM" + - name: RHPAM_JNDI + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: RHPAM_TX_ISOLATION + value: "TRANSACTION_READ_COMMITTED" +## MySQL driver settings BEGIN + - name: RHPAM_DATABASE + value: "${KIE_SERVER_MYSQL_DB}" + - name: RHPAM_DRIVER + value: "mysql" + - name: KIE_SERVER_PERSISTENCE_DIALECT + value: "org.hibernate.dialect.MySQL5Dialect" + - name: RHPAM_USERNAME + value: "${KIE_SERVER_MYSQL_USER}" + - name: RHPAM_PASSWORD + value: "${KIE_SERVER_MYSQL_PWD}" + - name: RHPAM_SERVICE_HOST + value: "${APPLICATION_NAME}-mysql" + - name: RHPAM_SERVICE_PORT + value: "3306" + - name: TIMER_SERVICE_DATA_STORE + value: "${APPLICATION_NAME}-mysql" +## MySQL driver settings END + - name: RHPAM_JTA + value: "true" + - name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: "${TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${KIE_SERVER_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${KIE_SERVER_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${KIE_SERVER_HTTPS_PASSWORD}" + - name: ADMIN_USERNAME + value: "${ADMIN_USERNAME}" + - name: ADMIN_PASSWORD + value: "${ADMIN_PASSWORD}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-kieserver-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${KIE_SERVER_HTTPS_SECRET}" +## MySQL deployment config BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-mysql" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-mysql" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-mysql" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "mysql:${MYSQL_IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-mysql" + template: + metadata: + name: "${APPLICATION_NAME}-mysql" + labels: + deploymentConfig: "${APPLICATION_NAME}-mysql" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-mysql" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-mysql" + image: mysql + imagePullPolicy: Always + ports: + - containerPort: 3306 + protocol: TCP + volumeMounts: + - mountPath: "/var/lib/mysql/data" + name: "${APPLICATION_NAME}-mysql-pvol" + env: + - name: MYSQL_USER + value: "${KIE_SERVER_MYSQL_USER}" + - name: MYSQL_PASSWORD + value: "${KIE_SERVER_MYSQL_PWD}" + - name: MYSQL_DATABASE + value: "${KIE_SERVER_MYSQL_DB}" + volumes: + - name: "${APPLICATION_NAME}-mysql-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-mysql-claim" +## MySQL deployment config END +## MySQL persistent volume claim BEGIN +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-mysql-claim" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-mysql" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${DB_VOLUME_CAPACITY}" +## MySQL persistent volume claim END diff --git a/addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-postgresql.yaml b/addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-postgresql.yaml new file mode 100644 index 0000000000..7e966613c7 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhpam70-kieserver-postgresql.yaml @@ -0,0 +1,592 @@ +--- +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for a managed KIE server with a PostgreSQL database, for Red Hat Process Automation Manager 7.0 + iconClass: icon-jboss + tags: rhpam,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Process Automation Manager 7.0 managed KIE server with a PostgreSQL database + name: rhpam70-kieserver-postgresql +labels: + template: rhpam70-kieserver-postgresql + xpaas: 1.4.0 +message: A new environment has been set up for Red Hat Process Automation Manager 7. The username/password for accessing the KIE server is ${KIE_SERVER_USER}/${KIE_SERVER_PWD}. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository or service. + name: MAVEN_REPO_URL + example: http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ + required: true +- displayName: Maven repository username + description: Username to access the Maven repository, if required. + name: MAVEN_REPO_USERNAME + required: true +- displayName: Maven repository password + description: Password to access the Maven repository, if required. + name: MAVEN_REPO_PASSWORD + required: true +- displayName: EAP Admin User + description: EAP administrator username + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator username + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server ID + description: The KIE server ID to use, which defaults to ${APPLICATION_NAME}-kieserver if not specified (Sets the org.kie.server.id system property). + name: KIE_SERVER_ID + required: false +- displayName: KIE Server User + description: KIE execution server username (Sets the org.kie.server.user system property) + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password (Sets the org.kie.server.pwd system property) + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + You should only need to modify this if you've installed the ImageStreams in a + different namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.0". + name: IMAGE_STREAM_TAG + value: "1.0" + required: false + required: false +- displayName: Smart Router Service + description: The service name for the optional smart router, where it can be reached, to allow smart routing + name: KIE_SERVER_ROUTER_SERVICE + required: false +- displayName: Smart Router Host + description: "The host name of the smart router, which could be the service name resolved by OpenShift or a globally resolvable domain name" + name: KIE_SERVER_ROUTER_HOST + example: "myapp-smartrouter" + required: false +- displayName: Smart Router listening port + description: Port in which the smart router server listens (router property org.kie.server.router.port) + name: KIE_SERVER_ROUTER_PORT + example: "9000" + required: false +- displayName: Smart Router protocol + description: KIE server router protocol (Used to build the org.kie.server.router.url.external property) + name: KIE_SERVER_ROUTER_PROTOCOL + example: "http" + required: false +- displayName: KIE Server Controller Service + description: The service name for the optional business-central-monitor, where it can be reached and registered with, to allow monitoring console functionality + name: KIE_SERVER_CONTROLLER_SERVICE + required: false +- displayName: KIE Server Controller User + description: KIE server controller username (Sets the org.kie.server.controller.user system property) + name: KIE_SERVER_CONTROLLER_USER + value: controllerUser + required: false +- displayName: KIE Server Controller Password + description: KIE server controller password (Sets the org.kie.server.controller.pwd system property) + name: KIE_SERVER_CONTROLLER_PWD + required: false +- displayName: KIE server controller host + description: KIE server controller host (Used to set the org.kie.server.controller system property) + name: KIE_SERVER_CONTROLLER_HOST + example: my-app-controller-ocpuser.os.example.com + required: false +- displayName: KIE server controller port + description: KIE server controller port (Used to set the org.kie.server.controller system property) + name: KIE_SERVER_CONTROLLER_PORT + example: '8080' + required: false +- displayName: KIE server controller protocol + description: KIE server controller protocol (Used to set the org.kie.server.controller system property) + name: KIE_SERVER_CONTROLLER_PROTOCOL + example: http + required: false +- displayName: KIE Server controller token + description: KIE server controller token for bearer authentication (Sets the org.kie.server.controller.token system property) + name: KIE_SERVER_CONTROLLER_TOKEN + required: false +- displayName: KIE Server Persistence DS + description: KIE execution server persistence datasource (Sets the org.kie.server.persistence.ds system property) + name: KIE_SERVER_PERSISTENCE_DS + value: java:/jboss/datasources/rhpam + required: false +## PostgreSQL database parameters BEGIN +- displayName: KIE Server PostgreSQL Database User + description: KIE execution server PostgreSQL database username + name: KIE_SERVER_POSTGRESQL_USER + value: rhpam + required: false +- displayName: KIE Server PostgreSQL Database Password + description: KIE execution server PostgreSQL database password + name: KIE_SERVER_POSTGRESQL_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server PostgreSQL Database Name + description: KIE execution server PostgreSQL database name + name: KIE_SERVER_POSTGRESQL_DB + value: rhpam7 + required: false +- displayName: PostgreSQL ImageStream Tag + description: The PostgreSQL image version, which is intended to correspond to the PostgreSQL version. Default is "9.6". + name: POSTGRESQL_IMAGE_STREAM_TAG + value: "9.6" +- displayName: PostgreSQL Database max prepared connections + description: Allows the PostgreSQL to handle XA transactions. + name: POSTGRESQL_MAX_PREPARED_TRANSACTIONS + value: '100' + required: true +- displayName: Database Volume Capacity + description: Size of persistent storage for database volume. + name: DB_VOLUME_CAPACITY + value: 1Gi +## PostgreSQL database parameters END +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering (Sets the org.drools.server.filter.classes system property) + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: KIE MBeans + description: KIE execution server mbeans enabled/disabled (Sets the kie.mbeans and kie.scanner.mbeans system properties) + name: KIE_MBEANS + value: enabled + required: false +- displayName: Execution Server Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Execution Server Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTPS + value: '' + required: false +- displayName: KIE Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: KIE_SERVER_HTTPS_SECRET + example: kieserver-app-secret + required: true +- displayName: KIE Server Keystore Filename + description: The name of the keystore file within the secret + name: KIE_SERVER_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: KIE Server Certificate Name + description: The name associated with the server certificate + name: KIE_SERVER_HTTPS_NAME + value: jboss + required: false +- displayName: KIE Server Keystore Password + description: The password for the keystore and certificate + name: KIE_SERVER_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user (Sets the org.kie.server.bypass.auth.user system property) + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false + required: true +- displayName: "Timer service data store refresh interval (in milliseconds)" + description: "Sets refresh-interval for the EJB timer database data-store service." + name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: '30000' + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +- displayName: KIE Server Container Deployment + description: 'KIE Server Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2' + name: KIE_SERVER_CONTAINER_DEPLOYMENT + example: rhpam-kieserver-library=org.openshift.quickstarts:rhpam-kieserver-library:1.4.0-SNAPSHOT + required: false +- displayName: Disable KIE Server Management + description: "When set to LocalContainersStartupStrategy, allows KIE server to start up and function with local config, even when a controller is configured and unavailable" + name: KIE_SERVER_MGMT_DISABLED + example: "true" + required: false +- displayName: KIE Server Startup Strategy + description: "When set to LocalContainersStartupStrategy, allows KIE server to start up and function with local config, even when a controller is configured and unavailable." + name: KIE_SERVER_STARTUP_STRATEGY + example: "LocalContainersStartupStrategy" + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: All the KIE server web server's ports. +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver-ping" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +## PostgreSQL service BEGIN +- apiVersion: v1 + kind: Service + metadata: + annotations: + description: The database server's port. + labels: + application: ${APPLICATION_NAME} + service: "${APPLICATION_NAME}-postgresql" + name: ${APPLICATION_NAME}-postgresql + spec: + ports: + - port: 5432 + targetPort: 5432 + selector: + deploymentConfig: ${APPLICATION_NAME}-postgresql +## PostgreSQL service END +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-http" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's http service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-https" + metadata: + name: "secure-${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's https service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTPS}" + to: + name: "${APPLICATION_NAME}-kieserver" + port: + targetPort: https + tls: + termination: passthrough +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver" + image: rhpam70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/healthcheck" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + failureThreshold: 3 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/readycheck" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${KIE_SERVER_CONTROLLER_SERVICE}" + - name: KIE_SERVER_CONTROLLER_HOST + value: "${KIE_SERVER_CONTROLLER_HOST}" + - name: KIE_SERVER_CONTROLLER_PORT + value: "${KIE_SERVER_CONTROLLER_PORT}" + - name: KIE_SERVER_CONTROLLER_PROTOCOL + value: "${KIE_SERVER_CONTROLLER_PROTOCOL}" + - name: KIE_SERVER_CONTROLLER_TOKEN + value: "${KIE_SERVER_CONTROLLER_TOKEN}" + - name: KIE_SERVER_ID + value: "${KIE_SERVER_ID}" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "${KIE_SERVER_CONTAINER_DEPLOYMENT}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: MAVEN_REPO_PATH + value: "/maven2/" + - name: KIE_SERVER_ROUTER_SERVICE + value: "${KIE_SERVER_ROUTER_SERVICE}" + - name: KIE_SERVER_ROUTER_HOST + value: "${KIE_SERVER_ROUTER_HOST}" + - name: KIE_SERVER_ROUTER_PORT + value: "${KIE_SERVER_ROUTER_PORT}" + - name: KIE_SERVER_ROUTER_PROTOCOL + value: "${KIE_SERVER_ROUTER_PROTOCOL}" + - name: KIE_SERVER_MGMT_DISABLED + value: "${KIE_SERVER_MGMT_DISABLED}" + - name: KIE_SERVER_STARTUP_STRATEGY + value: "${KIE_SERVER_STARTUP_STRATEGY}" + - name: KIE_SERVER_PERSISTENCE_DS + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: DATASOURCES + value: "RHPAM" +## PostgreSQL driver settings BEGIN + - name: RHPAM_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: RHPAM_DRIVER + value: "postgresql" + - name: RHPAM_USERNAME + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: RHPAM_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: RHPAM_SERVICE_HOST + value: "${APPLICATION_NAME}-postgresql" + - name: RHPAM_SERVICE_PORT + value: "5432" + - name: TIMER_SERVICE_DATA_STORE + value: "${APPLICATION_NAME}-postgresql" + - name: KIE_SERVER_PERSISTENCE_DIALECT + value: "org.hibernate.dialect.PostgreSQLDialect" +## PostgreSQL driver settings END + - name: RHPAM_JTA + value: "true" + - name: RHPAM_JNDI + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: RHPAM_TX_ISOLATION + value: "TRANSACTION_READ_COMMITTED" + - name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: "${TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${KIE_SERVER_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${KIE_SERVER_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${KIE_SERVER_HTTPS_PASSWORD}" + - name: ADMIN_USERNAME + value: "${ADMIN_USERNAME}" + - name: ADMIN_PASSWORD + value: "${ADMIN_PASSWORD}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-kieserver-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${KIE_SERVER_HTTPS_SECRET}" +## PostgreSQL deployment config BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-postgresql" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-postgresql" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-postgresql" + template: + metadata: + name: "${APPLICATION_NAME}-postgresql" + labels: + deploymentConfig: "${APPLICATION_NAME}-postgresql" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-postgresql" + image: postgresql + imagePullPolicy: Always + ports: + - containerPort: 5432 + protocol: TCP + volumeMounts: + - mountPath: "/var/lib/postgresql/data" + name: "${APPLICATION_NAME}-postgresql-pvol" + env: + - name: POSTGRESQL_USER + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: POSTGRESQL_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: POSTGRESQL_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: POSTGRESQL_MAX_PREPARED_TRANSACTIONS + value: "${POSTGRESQL_MAX_PREPARED_TRANSACTIONS}" + volumes: + - name: "${APPLICATION_NAME}-postgresql-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-postgresql-claim" +## PostgreSQL deployment config END +## PostgreSQL persistent volume claim BEGIN +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-postgresql-claim" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${DB_VOLUME_CAPACITY}" +## PostgreSQL persistent volume claim END diff --git a/addons/xpaas/v3.11/xpaas-templates/rhpam70-prod-immutable-kieserver.yaml b/addons/xpaas/v3.11/xpaas-templates/rhpam70-prod-immutable-kieserver.yaml new file mode 100644 index 0000000000..1b2285e503 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhpam70-prod-immutable-kieserver.yaml @@ -0,0 +1,651 @@ +--- +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for an immultable KIE server in a production environment, for Red Hat Process Automation Manager 7.0 + iconClass: icon-jboss + tags: rhpam,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Process Automation Manager 7.0 immutable production environment + name: rhpam70-prod-immutable-kieserver +labels: + template: rhpam70-prod-immutable-kieserver + xpaas: 1.4.0 +message: A new environment has been set up for Red Hat Process Automation Manager 7. The username/password for accessing the KIE server is ${KIE_SERVER_USER}/${KIE_SERVER_PWD}. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: EAP Admin User + description: EAP administrator username + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator username + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server User + description: KIE execution server username (Sets the org.kie.server.user system property) + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password, used to connect to KIE servers. Generated value can be a suggestion to use for thew s2i various (Sets the org.kie.server.pwd system property) + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server ID + description: The KIE server ID to use, which defaults to ${APPLICATION_NAME}-kieserver if not specified (Sets the org.kie.server.id system property). + name: KIE_SERVER_ID + value: '' + required: false +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + You should only need to modify this if you've installed the ImageStreams in a + different namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.0". + name: IMAGE_STREAM_TAG + value: "1.0" + required: false +- displayName: KIE Server Monitor User + description: KIE server monitor username, for optional use of the business-central-monitor (Sets the org.kie.server.controller.user system property) + name: KIE_SERVER_MONITOR_USER + value: monitorUser + required: false +- displayName: KIE Server Monitor Password + description: KIE server monitor password, for optional use of the business-central-monitor (Sets the org.kie.server.controller.pwd system property) + name: KIE_SERVER_MONITOR_PWD + required: false +- displayName: KIE Server Monitor Service + description: The service name for the optional business-central-monitor, where it can be reached and registered with, to allow monitoring console functionality + name: KIE_SERVER_MONITOR_SERVICE + required: false +- displayName: Smart Router Service + description: The service name for the optional smart router, where it can be reached, to allow smart routing + name: KIE_SERVER_ROUTER_SERVICE + required: false +- displayName: Smart Router Host + description: "The host name of the smart router, which could be the service name resolved by OpenShift or a globally resolvable domain name" + name: KIE_SERVER_ROUTER_HOST + example: "myapp-smartrouter" + required: false +- displayName: Smart Router listening port + description: Port in which the smart router server listens (router property org.kie.server.router.port) + name: KIE_SERVER_ROUTER_PORT + example: "9000" + required: false +- displayName: Smart Router protocol + description: KIE server router protocol (Used to build the org.kie.server.router.url.external property) + name: KIE_SERVER_ROUTER_PROTOCOL + example: "http" + required: false +- displayName: KIE Server Persistence DS + description: KIE execution server persistence datasource (Sets the org.kie.server.persistence.ds system property) + name: KIE_SERVER_PERSISTENCE_DS + value: java:/jboss/datasources/rhpam + required: false +## PostgreSQL database parameters BEGIN +- displayName: PostgreSQL ImageStream Tag + description: The PostgreSQL image version, which is intended to correspond to the PostgreSQL version. Default is "9.6". + name: POSTGRESQL_IMAGE_STREAM_TAG + value: "9.6" + required: false +- displayName: KIE Server PostgreSQL Database User + description: KIE execution server PostgreSQL database username + name: KIE_SERVER_POSTGRESQL_USER + value: rhpam + required: false +- displayName: KIE Server PostgreSQL Database Password + description: KIE execution server PostgreSQL database password + name: KIE_SERVER_POSTGRESQL_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server PostgreSQL Database Name + description: KIE execution server PostgreSQL database name + name: KIE_SERVER_POSTGRESQL_DB + value: rhpam7 + required: false +- displayName: PostgreSQL Database max prepared connections + description: Allows the PostgreSQL to handle XA transactions. + name: POSTGRESQL_MAX_PREPARED_TRANSACTIONS + value: '100' + required: true +- displayName: Database Volume Capacity + description: Size of persistent storage for database volume. + name: DB_VOLUME_CAPACITY + value: 1Gi + required: true +## PostgreSQL database parameters END +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering (Sets the org.drools.server.filter.classes system property) + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: KIE MBeans + description: KIE execution server mbeans enabled/disabled (Sets the kie.mbeans and kie.scanner.mbeans system properties) + name: KIE_MBEANS + value: enabled + required: false +- displayName: Execution Server Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Execution Server Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTPS + value: '' + required: false +- displayName: KIE Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: KIE_SERVER_HTTPS_SECRET + example: kieserver-app-secret + required: true +- displayName: KIE Server Keystore Filename + description: The name of the keystore file within the secret + name: KIE_SERVER_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: KIE Server Certificate Name + description: The name associated with the server certificate + name: KIE_SERVER_HTTPS_NAME + value: jboss + required: false +- displayName: KIE Server Keystore Password + description: The password for the keystore and certificate + name: KIE_SERVER_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user (Sets the org.kie.server.bypass.auth.user system property) + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false +- displayName: KIE Server Container Deployment + description: 'KIE Server Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2' + name: KIE_SERVER_CONTAINER_DEPLOYMENT + example: rhpam-kieserver-library=org.openshift.quickstarts:rhpam-kieserver-library:1.4.0-SNAPSHOT + required: true +- displayName: Git Repository URL + description: Git source URI for application + name: SOURCE_REPOSITORY_URL + example: https://github.com/jboss-container-images/rhpam-7-openshift-image.git + required: true +- displayName: Git Reference + description: Git branch/tag reference + name: SOURCE_REPOSITORY_REF + example: rhpam70-dev + required: false +- displayName: Context Directory + description: Path within Git project to build; empty for root project directory. + name: CONTEXT_DIR + example: quickstarts/library-process/library + required: false +- displayName: Github Webhook Secret + description: GitHub trigger secret + name: GITHUB_WEBHOOK_SECRET + from: "[a-zA-Z0-9]{8}" + generate: expression + required: true +- displayName: Generic Webhook Secret + description: Generic build trigger secret + name: GENERIC_WEBHOOK_SECRET + from: "[a-zA-Z0-9]{8}" + generate: expression + required: true +- displayName: Maven mirror URL + description: Maven mirror to use for S2I builds + name: MAVEN_MIRROR_URL + value: '' + required: false +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository. + name: MAVEN_REPO_URL + value: '' + required: false +- displayName: Maven repository username + description: Username to access the Maven repository. + name: MAVEN_REPO_USERNAME + value: '' + required: false +- displayName: Maven repository password + description: Password to access the Maven repository. + name: MAVEN_REPO_PASSWORD + value: '' + required: false +- description: List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied. + name: ARTIFACT_DIR + value: '' + required: false +- displayName: "Timer service data store refresh interval (in milliseconds)" + description: "Sets refresh-interval for the EJB timer service database-data-store." + name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: '30000' + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +- displayName: Disable KIE Server Management + description: "Disable management api and don't allow KIE containers to be deployed/undeployed or started/stopped sets the property org.kie.server.mgmt.api.disabled to true and org.kie.server.startup.strategy to LocalContainersStartupStrategy." + name: KIE_SERVER_MGMT_DISABLED + value: "true" + required: true +- displayName: KIE Server Startup Strategy + description: "When set to LocalContainersStartupStrategy, allows KIE server to start up and function with local config, even when a controller is configured and unavailable." + name: KIE_SERVER_STARTUP_STRATEGY + value: LocalContainersStartupStrategy + required: true +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: All the KIE server web server's ports. +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver-ping" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +## PostgreSQL service BEGIN +- apiVersion: v1 + kind: Service + metadata: + annotations: + description: The database server's port. + labels: + application: ${APPLICATION_NAME} + service: "${APPLICATION_NAME}-postgresql" + name: ${APPLICATION_NAME}-postgresql + spec: + ports: + - port: 5432 + targetPort: 5432 + selector: + deploymentConfig: ${APPLICATION_NAME}-postgresql +## PostgreSQL service END +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-http" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's http service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-https" + metadata: + name: "secure-${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for KIE server's https service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTPS}" + to: + name: "${APPLICATION_NAME}-kieserver" + port: + targetPort: https + tls: + termination: passthrough +- kind: ImageStream + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" +- kind: BuildConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + source: + type: Git + git: + uri: "${SOURCE_REPOSITORY_URL}" + ref: "${SOURCE_REPOSITORY_REF}" + contextDir: "${CONTEXT_DIR}" + strategy: + type: Source + sourceStrategy: + env: + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "${KIE_SERVER_CONTAINER_DEPLOYMENT}" + - name: MAVEN_MIRROR_URL + value: "${MAVEN_MIRROR_URL}" + - name: ARTIFACT_DIR + value: "${ARTIFACT_DIR}" + forcePull: true + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-kieserver-openshift:${IMAGE_STREAM_TAG}" + output: + to: + kind: ImageStreamTag + name: "${APPLICATION_NAME}-kieserver:latest" + triggers: + - type: GitHub + github: + secret: "${GITHUB_WEBHOOK_SECRET}" + - type: Generic + generic: + secret: "${GENERIC_WEBHOOK_SECRET}" + - type: ImageChange + imageChange: {} + - type: ConfigChange +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver" + from: + kind: ImageStream + name: "${APPLICATION_NAME}-kieserver" + - type: ConfigChange + replicas: 2 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver" + image: "${APPLICATION_NAME}-kieserver" + imagePullPolicy: Always + resources: + limits: + memory: "${EXECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/healthcheck" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + failureThreshold: 3 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/readycheck" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_MONITOR_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_MONITOR_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${KIE_SERVER_MONITOR_SERVICE}" + - name: KIE_SERVER_ID + value: "${KIE_SERVER_ID}" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "${KIE_SERVER_CONTAINER_DEPLOYMENT}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: MAVEN_REPO_SERVICE + value: "" + - name: MAVEN_REPO_PATH + value: "/maven2/" + - name: KIE_SERVER_ROUTER_SERVICE + value: "${KIE_SERVER_ROUTER_SERVICE}" + - name: KIE_SERVER_ROUTER_HOST + value: "${KIE_SERVER_ROUTER_HOST}" + - name: KIE_SERVER_ROUTER_PORT + value: "${KIE_SERVER_ROUTER_PORT}" + - name: KIE_SERVER_ROUTER_PROTOCOL + value: "${KIE_SERVER_ROUTER_PROTOCOL}" + - name: KIE_SERVER_PERSISTENCE_DS + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: DATASOURCES + value: "RHPAM" + - name: RHPAM_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: RHPAM_JNDI + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: RHPAM_JTA + value: "true" +## PostgreSQL driver settings BEGIN + - name: RHPAM_DRIVER + value: "postgresql" + - name: KIE_SERVER_PERSISTENCE_DIALECT + value: "org.hibernate.dialect.PostgreSQLDialect" + - name: RHPAM_TX_ISOLATION + value: "TRANSACTION_READ_COMMITTED" + - name: RHPAM_USERNAME + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: RHPAM_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: RHPAM_SERVICE_HOST + value: "${APPLICATION_NAME}-postgresql" + - name: RHPAM_SERVICE_PORT + value: "5432" + - name: TIMER_SERVICE_DATA_STORE + value: "${APPLICATION_NAME}-postgresql" +## PostgreSQL driver settings END + - name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: "${TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${KIE_SERVER_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${KIE_SERVER_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${KIE_SERVER_HTTPS_PASSWORD}" + - name: KIE_SERVER_MGMT_DISABLED + value: "${KIE_SERVER_MGMT_DISABLED}" + - name: KIE_SERVER_STARTUP_STRATEGY + value: "${KIE_SERVER_STARTUP_STRATEGY}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-kieserver-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${KIE_SERVER_HTTPS_SECRET}" +## PostgreSQL deployment config BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-postgresql" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-postgresql" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-postgresql" + template: + metadata: + name: "${APPLICATION_NAME}-postgresql" + labels: + deploymentConfig: "${APPLICATION_NAME}-postgresql" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-postgresql" + image: postgresql + imagePullPolicy: Always + ports: + - containerPort: 5432 + protocol: TCP + volumeMounts: + - mountPath: "/var/lib/postgresql/data" + name: "${APPLICATION_NAME}-postgresql-pvol" + env: + - name: POSTGRESQL_USER + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: POSTGRESQL_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: POSTGRESQL_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: POSTGRESQL_MAX_PREPARED_TRANSACTIONS + value: "${POSTGRESQL_MAX_PREPARED_TRANSACTIONS}" + volumes: + - name: "${APPLICATION_NAME}-postgresql-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-postgresql-claim" +## PostgreSQL deployment config END +## PostgreSQL persistent volume claim BEGIN +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-postgresql-claim" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${DB_VOLUME_CAPACITY}" +## PostgreSQL persistent volume claim END diff --git a/addons/xpaas/v3.11/xpaas-templates/rhpam70-prod-immutable-monitor.yaml b/addons/xpaas/v3.11/xpaas-templates/rhpam70-prod-immutable-monitor.yaml new file mode 100644 index 0000000000..dfe015c707 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhpam70-prod-immutable-monitor.yaml @@ -0,0 +1,558 @@ +--- +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for a router and monitoring console in a production environment, for Red Hat Process Automation Manager 7.0 + iconClass: icon-jboss + tags: rhpam,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Process Automation Manager 7.0 production monitoring environment + name: rhpam70-prod-immutable-monitor +labels: + template: rhpam70-prod-immutable-monitor + xpaas: 1.4.0 +message: A new environment has been set up for Red Hat Process Automation Manager 7. To create a new KIE server and connect to this monitoring console/router, enter + oc new-app -f rhpam70-prod-immutable-kieserver.yaml -p KIE_ADMIN_PWD=${KIE_ADMIN_PWD} -p KIE_SERVER_PWD=${KIE_SERVER_PWD} -p KIE_SERVER_MONITOR_PWD=${KIE_SERVER_MONITOR_PWD} -p KIE_SERVER_MONITOR_SERVICE=${APPLICATION_NAME}-rhpamcentrmon -p KIE_SERVER_ROUTER_SERVICE=${APPLICATION_NAME}-smartrouter -p SOURCE_REPOSITORY_URL=https://example.com/xxxx.git -p CONTEXT_DIR=rootDir -p KIE_SERVER_CONTAINER_DEPLOYMENT=containerId=G:A:V +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository or service. + name: MAVEN_REPO_URL + example: http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ + required: false +- displayName: Maven repository username + description: Username to access the Maven repository, if required. + name: MAVEN_REPO_USERNAME + required: false +- displayName: Maven repository password + description: Password to access the Maven repository, if required. + name: MAVEN_REPO_PASSWORD + required: false +- displayName: EAP Admin User + description: EAP administrator username + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator username + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server User + description: KIE execution server username (Sets the org.kie.server.user system property) + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password, used to connect to KIE servers. Generated value can be a suggestion to use for thew s2i various (Sets the org.kie.server.pwd system property) + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + You should only need to modify this if you've installed the ImageStreams in a + different namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.0". + name: IMAGE_STREAM_TAG + value: "1.0" + required: false +- displayName: Smart Router Custom http Route Hostname + description: Custom hostname for http service route. Leave blank for default hostname, e.g. -smartrouter-.' + name: SMART_ROUTER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Smart Router ID + description: Router ID used when connecting to the controller (router property org.kie.server.router.id) + name: KIE_SERVER_ROUTER_ID + value: kie-server-router +- displayName: Smart Router listening port + description: Port in which the smart router server listens (router property org.kie.server.router.port) + name: KIE_SERVER_ROUTER_PORT + example: "9000" + required: false +- displayName: Smart Router protocol + description: KIE server router protocol (Used to build the org.kie.server.router.url.external property) + name: KIE_SERVER_ROUTER_PROTOCOL + example: "http" + required: false +- displayName: Smart Router external URL + description: Public URL where the router can be found. Format http://: (router property org.kie.server.router.url.external) + name: KIE_SERVER_ROUTER_URL_EXTERNAL +- displayName: Smart Router name + description: Router name used when connecting to the controller (router property org.kie.server.router.name) + name: KIE_SERVER_ROUTER_NAME + value: KIE Server Router +- displayName: KIE Server Monitor User + description: KIE server monitor username (Sets the org.kie.server.controller.user system property) + name: KIE_SERVER_MONITOR_USER + value: monitorUser + required: false +- displayName: KIE Server Monitor Password + description: KIE server monitor password (Sets the org.kie.server.controller.pwd system property) + name: KIE_SERVER_MONITOR_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: JGroups Cluster Password + description: JGroups Cluster Password, used to establish an EAP cluster on OpenShift + name: JGROUPS_CLUSTER_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: true +- displayName: KIE MBeans + description: KIE mbeans enabled/disabled (Sets the kie.mbeans and kie.scanner.mbeans system properties) + name: KIE_MBEANS + value: enabled + required: false +- displayName: Business Central Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -rhpamcentrmon-.' + name: BUSINESS_CENTRAL_HOSTNAME_HTTP + value: '' + required: false +- displayName: Business Central Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--rhpamcentrmon-.' + name: BUSINESS_CENTRAL_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Business Central Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: BUSINESS_CENTRAL_HTTPS_SECRET + example: businesscentral-app-secret + required: true +- displayName: Business Central Server Keystore Filename + description: The name of the keystore file within the secret + name: BUSINESS_CENTRAL_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: Business Central Server Certificate Name + description: The name associated with the server certificate + name: BUSINESS_CENTRAL_HTTPS_NAME + value: jboss + required: false +- displayName: Business Central Server Keystore Password + description: The password for the keystore and certificate + name: BUSINESS_CENTRAL_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: Smart Router Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -rhpamcentrmon-.' + name: SMART_ROUTER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Business Central Container Memory Limit + description: Business Central Container memory limit + name: BUSINESS_CENTRAL_MEMORY_LIMIT + value: 2Gi + required: false +- displayName: Smart Router Container Memory Limit + description: Smart Router Container memory limit + name: SMART_ROUTER_MEMORY_LIMIT + value: 512Mi + required: false +- displayName: RH-SSO URL + description: RH-SSO URL + name: SSO_URL + example: https://rh-sso.example.com/auth + required: false +- displayName: RH-SSO Realm name + description: RH-SSO Realm name + name: SSO_REALM + required: false +- displayName: Business Central Monitoring RH-SSO Client name + description: Business Central Monitoring RH-SSO Client name + name: BUSINESS_CENTRAL_SSO_CLIENT + required: false +- displayName: Business Central Monitoring RH-SSO Client Secret + description: Business Central Monitoring RH-SSO Client Secret + name: BUSINESS_CENTRAL_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: RH-SSO Realm Admin Username + description: RH-SSO Realm Admin Username used to create the Client if it doesn't exist + name: SSO_USERNAME + required: false +- displayName: RH-SSO Realm Admin Password + description: RH-SSO Realm Admin Password used to create the Client + name: SSO_PASSWORD + required: false +- displayName: RH-SSO Disable SSL Certificate Validation + description: RH-SSO Disable SSL Certificate Validation + name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "false" + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + description: All the Business Central Monitoring web server's ports. +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon-ping" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 9000 + targetPort: 9000 + selector: + deploymentConfig: "${APPLICATION_NAME}-smartrouter" + metadata: + name: "${APPLICATION_NAME}-smartrouter" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + annotations: + description: The smart router server http port. +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamcentrmon-http" + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + description: Route for Business Central Monitoring's http service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-rhpamcentrmon" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamcentrmon-https" + metadata: + name: "secure-${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + description: Route for Business Central Monitoring's https service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${BUSINESS_CENTRAL_HOSTNAME_HTTPS}" + to: + name: "${APPLICATION_NAME}-rhpamcentrmon" + port: + targetPort: https + tls: + termination: passthrough +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-smartrouter-http" + metadata: + name: "${APPLICATION_NAME}-smartrouter" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + annotations: + description: Route for Smart Router's http service. + spec: + host: "${SMART_ROUTER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-smartrouter" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-rhpamcentrmon" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-businesscentral-monitoring-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + template: + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-rhpamcentrmon" + image: rhpam70-businesscentral-monitoring-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${BUSINESS_CENTRAL_MEMORY_LIMIT}" + volumeMounts: + - name: businesscentral-keystore-volume + mountPath: "/etc/businesscentral-secret-volume" + readOnly: true + - name: "${APPLICATION_NAME}-rhpamcentr-pvol" + mountPath: "/opt/eap/standalone/data/bpmsuite" + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: ADMIN_USERNAME + value: "${ADMIN_USERNAME}" + - name: ADMIN_PASSWORD + value: "${ADMIN_PASSWORD}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_MONITOR_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_MONITOR_PWD}" + - name: PROBE_IMPL + value: probe.eap.jolokia.EapProbe + - name: PROBE_DISABLE_BOOT_ERRORS_CHECK + value: 'true' + - name: HTTPS_KEYSTORE_DIR + value: "/etc/businesscentral-secret-volume" + - name: HTTPS_KEYSTORE + value: "${BUSINESS_CENTRAL_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${BUSINESS_CENTRAL_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${BUSINESS_CENTRAL_HTTPS_PASSWORD}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-rhpamcentrmon-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${BUSINESS_CENTRAL_SSO_SECRET}" + - name: SSO_CLIENT + value: "${BUSINESS_CENTRAL_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" + - name: HOSTNAME_HTTPS + value: "${BUSINESS_CENTRAL_HOSTNAME_HTTPS}" + volumes: + - name: businesscentral-keystore-volume + secret: + secretName: "${BUSINESS_CENTRAL_HTTPS_SECRET}" + - name: "${APPLICATION_NAME}-rhpamcentr-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-rhpamcentr-claim" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: ${APPLICATION_NAME}-smartrouter + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-smartrouter" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-smartrouter-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 2 + selector: + deploymentConfig: "${APPLICATION_NAME}-smartrouter" + template: + metadata: + name: "${APPLICATION_NAME}-smartrouter" + labels: + deploymentConfig: "${APPLICATION_NAME}-smartrouter" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-smartrouter" + image: rhpam70-smartrouter-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${SMART_ROUTER_MEMORY_LIMIT}" + ports: + - name: http + containerPort: 9000 + protocol: TCP + env: + - name: KIE_SERVER_ROUTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_ROUTER_PORT + value: "${KIE_SERVER_ROUTER_PORT}" + - name: KIE_SERVER_ROUTER_URL_EXTERNAL + value: "${KIE_SERVER_ROUTER_URL_EXTERNAL}" + - name: KIE_SERVER_ROUTER_ID + value: "${KIE_SERVER_ROUTER_ID}" + - name: KIE_SERVER_ROUTER_NAME + value: "${KIE_SERVER_ROUTER_NAME}" + - name: KIE_SERVER_ROUTER_PROTOCOL + value: "${KIE_SERVER_ROUTER_PROTOCOL}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_MONITOR_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_MONITOR_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${APPLICATION_NAME}-rhpamcentrmon" + - name: KIE_SERVER_ROUTER_REPO + value: "/opt/rhpam-smartrouter/data" + - name: KIE_SERVER_ROUTER_CONFIG_WATCHER_ENABLED + value: "true" + volumeMounts: + - name: "${APPLICATION_NAME}-smartrouter" + mountPath: "/opt/rhpam-smartrouter/data" + volumes: + - name: "${APPLICATION_NAME}-smartrouter" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-smartrouter-claim" +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-smartrouter-claim" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: "64Mi" +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-rhpamcentr-claim" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: "64Mi" diff --git a/addons/xpaas/v3.11/xpaas-templates/rhpam70-prod.yaml b/addons/xpaas/v3.11/xpaas-templates/rhpam70-prod.yaml new file mode 100644 index 0000000000..d2c7367201 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhpam70-prod.yaml @@ -0,0 +1,1374 @@ +--- +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for a managed HA production runtime environment, for Red Hat Process Automation Manager 7.0 + iconClass: icon-jboss + tags: rhpam,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Process Automation Manager 7.0 production environment + name: rhpam70-prod +labels: + template: rhpam70-prod + xpaas: 1.4.0 +message: A new environment has been set up for Red Hat Process Automation Manager 7. The username/password for accessing Business Central Monitoring is ${KIE_ADMIN_USER}/${KIE_ADMIN_PWD}. Both sets of KIE servers are configured with the username/password of ${KIE_SERVER_USER}/${KIE_SERVER_PWD}. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository or service. + name: MAVEN_REPO_URL + example: http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ + required: true +- displayName: Maven repository username + description: Username to access the Maven repository, if required. + name: MAVEN_REPO_USERNAME + required: true +- displayName: Maven repository password + description: Password to access the Maven repository, if required. + name: MAVEN_REPO_PASSWORD + required: true +- displayName: EAP Admin User + description: EAP administrator username + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator username + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server User + description: KIE execution server username (Sets the org.kie.server.user system property) + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password (Sets the org.kie.server.pwd system property) + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + You should only need to modify this if you've installed the ImageStreams in a + different namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.0". + name: IMAGE_STREAM_TAG + value: "1.0" + required: false +- displayName: Smart Router Custom http Route Hostname + description: Custom hostname for http service route. Leave blank for default hostname, e.g. -smartrouter-.' + name: SMART_ROUTER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Smart Router ID + description: Router ID used when connecting to the controller (router property org.kie.server.router.id) + name: KIE_SERVER_ROUTER_ID + value: kie-server-router +- displayName: Smart Router listening port + description: Port in which the smart router server listens (router property org.kie.server.router.port) + name: KIE_SERVER_ROUTER_PORT + example: "9000" + required: false +- displayName: Smart Router protocol + description: KIE server router protocol (Used to build the org.kie.server.router.url.external property) + name: KIE_SERVER_ROUTER_PROTOCOL + example: "http" + required: false +- displayName: Smart Router external URL + description: Public URL where the router can be found. Format http://: (router property org.kie.server.router.url.external) + name: KIE_SERVER_ROUTER_URL_EXTERNAL +- displayName: Smart Router name + description: Router name used when connecting to the controller (router property org.kie.server.router.name) + name: KIE_SERVER_ROUTER_NAME + value: KIE Server Router +- displayName: KIE Server Controller User + description: KIE server controller username (Sets the org.kie.server.controller.user system property) + name: KIE_SERVER_CONTROLLER_USER + value: controllerUser + required: false +- displayName: KIE Server Controller Password + description: KIE server controller password (Sets the org.kie.server.controller.pwd system property) + name: KIE_SERVER_CONTROLLER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server Persistence DS + description: KIE execution server persistence datasource (Sets the org.kie.server.persistence.ds system property) + name: KIE_SERVER_PERSISTENCE_DS + value: java:/jboss/datasources/rhpam + required: false +## PostgreSQL database parameters BEGIN +- displayName: PostgreSQL ImageStream Tag + description: The PostgreSQL image version, which is intended to correspond to the PostgreSQL version. Default is "9.6". + name: POSTGRESQL_IMAGE_STREAM_TAG + value: "9.6" + required: false +- displayName: KIE Server PostgreSQL Database User + description: KIE execution server PostgreSQL database username + name: KIE_SERVER_POSTGRESQL_USER + value: rhpam + required: false +- displayName: KIE Server PostgreSQL Database Password + description: KIE execution server PostgreSQL database password + name: KIE_SERVER_POSTGRESQL_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server PostgreSQL Database Name + description: KIE execution server PostgreSQL database name + name: KIE_SERVER_POSTGRESQL_DB + value: rhpam7 + required: false +- displayName: PostgreSQL Database max prepared connections + description: Allows the PostgreSQL to handle XA transactions. + name: POSTGRESQL_MAX_PREPARED_TRANSACTIONS + value: '100' + required: true +- displayName: Database Volume Capacity + description: Size of persistent storage for database volume. + name: DB_VOLUME_CAPACITY + value: 1Gi + required: true +## PostgreSQL database parameters END +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering (Sets the org.drools.server.filter.classes system property) + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: KIE MBeans + description: KIE execution server mbeans enabled/disabled (Sets the kie.mbeans and kie.scanner.mbeans system properties) + name: KIE_MBEANS + value: enabled + required: false +- displayName: Business Central Monitoring Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -rhpamcentrmon-.' + name: BUSINESS_CENTRAL_HOSTNAME_HTTP + value: '' + required: false +- displayName: Business Central Monitoring Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--rhpamcentrmon-.' + name: BUSINESS_CENTRAL_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Execution Server 1 Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -kieserver-.' + name: EXECUTION_SERVER1_HOSTNAME_HTTP + value: '' + required: false +- displayName: Execution Server 1 Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--kieserver-.' + name: EXECUTION_SERVER1_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Execution Server 2 Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -kieserver-.' + name: EXECUTION_SERVER2_HOSTNAME_HTTP + value: '' + required: false +- displayName: Execution Server 2 Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--kieserver-.' + name: EXECUTION_SERVER2_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Business Central Monitoring Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: BUSINESS_CENTRAL_HTTPS_SECRET + example: businesscentral-app-secret + required: true +- displayName: Business Central Monitoring Server Keystore Filename + description: The name of the keystore file within the secret + name: BUSINESS_CENTRAL_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: Business Central Monitoring Server Certificate Name + description: The name associated with the server certificate + name: BUSINESS_CENTRAL_HTTPS_NAME + value: jboss + required: false +- displayName: Business Central Monitoring Server Keystore Password + description: The password for the keystore and certificate + name: BUSINESS_CENTRAL_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: KIE_SERVER_HTTPS_SECRET + example: kieserver-app-secret + required: true +- displayName: KIE Server Keystore Filename + description: The name of the keystore file within the secret + name: KIE_SERVER_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: KIE Server Certificate Name + description: The name associated with the server certificate + name: KIE_SERVER_HTTPS_NAME + value: jboss + required: false +- displayName: KIE Server Keystore Password + description: The password for the keystore and certificate + name: KIE_SERVER_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user (Sets the org.kie.server.bypass.auth.user system property) + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false +- displayName: "Timer service data store refresh interval (in milliseconds)" + description: "Sets refresh-interval for the EJB timer service database-data-store." + name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: '30000' + required: false +- displayName: Business Central Monitoring Container Memory Limit + description: Business Central Monitoring Container memory limit + name: BUSINESS_CENTRAL_MEMORY_LIMIT + value: 2Gi + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +- displayName: Smart Router Container Memory Limit + description: Smart Router Container memory limit + name: SMART_ROUTER_MEMORY_LIMIT + value: 512Mi + required: false +- displayName: RH-SSO URL + description: RH-SSO URL + name: SSO_URL + example: https://rh-sso.example.com/auth + required: false +- displayName: RH-SSO Realm name + description: RH-SSO Realm name + name: SSO_REALM + required: false +- displayName: Business Central Monitoring RH-SSO Client name + description: Business Central Monitoring RH-SSO Client name + name: BUSINESS_CENTRAL_SSO_CLIENT + required: false +- displayName: Business Central Monitoring RH-SSO Client Secret + description: Business Central Monitoring RH-SSO Client Secret + name: BUSINESS_CENTRAL_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: KIE Server 1 RH-SSO Client name + description: KIE Server 1 RH-SSO Client name + name: KIE_SERVER1_SSO_CLIENT + required: false +- displayName: KIE Server 1 RH-SSO Client Secret + description: KIE Server 1 RH-SSO Client Secret + name: KIE_SERVER1_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: KIE Server 2 RH-SSO Client name + description: KIE Server 2 RH-SSO Client name + name: KIE_SERVER2_SSO_CLIENT + required: false +- displayName: KIE Server 2 RH-SSO Client Secret + description: KIE Server 2 RH-SSO Client Secret + name: KIE_SERVER2_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: RH-SSO Realm Admin Username + description: RH-SSO Realm Admin Username used to create the Client if it doesn't exist + name: SSO_USERNAME + required: false +- displayName: RH-SSO Realm Admin Password + description: RH-SSO Realm Admin Password used to create the Client + name: SSO_PASSWORD + required: false +- displayName: RH-SSO Disable SSL Certificate Validation + description: RH-SSO Disable SSL Certificate Validation + name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "false" + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + description: All the Business Central Monitoring web server's ports. +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon-ping" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 9000 + targetPort: 9000 + selector: + deploymentConfig: "${APPLICATION_NAME}-smartrouter" + metadata: + name: "${APPLICATION_NAME}-smartrouter" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + annotations: + description: The smart router server http port. +## KIE server services 1 BEGIN +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-1" + metadata: + name: "${APPLICATION_NAME}-kieserver-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + annotations: + description: All the KIE server web server's ports. (First execution server) +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-1" + metadata: + name: "${APPLICATION_NAME}-kieserver-1-ping" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +## KIE server services 1 END +## KIE server services 2 BEGIN +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-2" + metadata: + name: "${APPLICATION_NAME}-kieserver-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + annotations: + description: All the KIE server web server's ports. (Second execution server) +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-2" + metadata: + name: "${APPLICATION_NAME}-kieserver-2-ping" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +## KIE server services 2 END +## PostgreSQL service 1 BEGIN +- apiVersion: v1 + kind: Service + metadata: + annotations: + description: The first database server's port. + labels: + application: ${APPLICATION_NAME} + service: "${APPLICATION_NAME}-postgresql-1" + name: ${APPLICATION_NAME}-postgresql-1 + spec: + ports: + - port: 5432 + targetPort: 5432 + selector: + deploymentConfig: ${APPLICATION_NAME}-postgresql-1 +## PostgreSQL service 1 END +## PostgreSQL service 2 BEGIN +- apiVersion: v1 + kind: Service + metadata: + annotations: + description: The second database server's port. + labels: + application: ${APPLICATION_NAME} + service: "${APPLICATION_NAME}-postgresql-2" + name: ${APPLICATION_NAME}-postgresql-2 + spec: + ports: + - port: 5432 + targetPort: 5432 + selector: + deploymentConfig: ${APPLICATION_NAME}-postgresql-2 +## PostgreSQL service 2 END +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamcentrmon-http" + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + description: Route for Business Central Monitoring's http service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-rhpamcentrmon" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamcentrmon-https" + metadata: + name: "secure-${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + description: Route for Business Central Monitoring's https service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${BUSINESS_CENTRAL_HOSTNAME_HTTPS}" + to: + name: "${APPLICATION_NAME}-rhpamcentrmon" + port: + targetPort: https + tls: + termination: passthrough +## KIE server routes 1 BEGIN +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-1-http" + metadata: + name: "${APPLICATION_NAME}-kieserver-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + annotations: + description: Route for First KIE server's http service. + spec: + host: "${EXECUTION_SERVER1_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver-1" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-1-https" + metadata: + name: "secure-${APPLICATION_NAME}-kieserver-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + annotations: + description: Route for First KIE server's https service. + spec: + host: "${EXECUTION_SERVER1_HOSTNAME_HTTPS}" + to: + name: "${APPLICATION_NAME}-kieserver-1" + port: + targetPort: https + tls: + termination: passthrough +## KIE server routes 1 END +## KIE server routes 2 BEGIN +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-2-http" + metadata: + name: "${APPLICATION_NAME}-kieserver-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + annotations: + description: Route for Second KIE server's http service. + spec: + host: "${EXECUTION_SERVER2_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver-2" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-2-https" + metadata: + name: "secure-${APPLICATION_NAME}-kieserver-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + annotations: + description: Route for Second KIE server's https service. + spec: + host: "${EXECUTION_SERVER2_HOSTNAME_HTTPS}" + to: + name: "${APPLICATION_NAME}-kieserver-2" + port: + targetPort: https + tls: + termination: passthrough +## KIE server routes 2 BEGIN +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-smartrouter-http" + metadata: + name: "${APPLICATION_NAME}-smartrouter" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + annotations: + description: Route for Smart Router's http service. + spec: + host: "${SMART_ROUTER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-smartrouter" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-rhpamcentrmon" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-businesscentral-monitoring-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange +## Replicas for Business Central Monitoring + replicas: 3 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + template: + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-rhpamcentrmon" + image: rhpam70-businesscentral-monitoring-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${BUSINESS_CENTRAL_MEMORY_LIMIT}" + volumeMounts: + - name: businesscentral-keystore-volume + mountPath: "/etc/businesscentral-secret-volume" + readOnly: true + - name: "${APPLICATION_NAME}-rhpamcentr-pvol" + mountPath: "/opt/eap/standalone/data/bpmsuite" + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: ADMIN_USERNAME + value: "${ADMIN_USERNAME}" + - name: ADMIN_PASSWORD + value: "${ADMIN_PASSWORD}" + - name: KIE_SERVER_CONTROLLER_PWD + value: ${KIE_SERVER_CONTROLLER_PWD} + - name: KIE_SERVER_CONTROLLER_USER + value: ${KIE_SERVER_CONTROLLER_USER} + - name: PROBE_IMPL + value: probe.eap.jolokia.EapProbe + - name: PROBE_DISABLE_BOOT_ERRORS_CHECK + value: 'true' + - name: HTTPS_KEYSTORE_DIR + value: "/etc/businesscentral-secret-volume" + - name: HTTPS_KEYSTORE + value: "${BUSINESS_CENTRAL_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${BUSINESS_CENTRAL_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${BUSINESS_CENTRAL_HTTPS_PASSWORD}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-rhpamcentrmon-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${BUSINESS_CENTRAL_SSO_SECRET}" + - name: SSO_CLIENT + value: "${BUSINESS_CENTRAL_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" + - name: HOSTNAME_HTTPS + value: "${BUSINESS_CENTRAL_HOSTNAME_HTTPS}" + volumes: + - name: businesscentral-keystore-volume + secret: + secretName: "${BUSINESS_CENTRAL_HTTPS_SECRET}" + - name: "${APPLICATION_NAME}-rhpamcentr-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-rhpamcentr-claim" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: ${APPLICATION_NAME}-smartrouter + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-smartrouter" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-smartrouter-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 2 + selector: + deploymentConfig: "${APPLICATION_NAME}-smartrouter" + template: + metadata: + name: "${APPLICATION_NAME}-smartrouter" + labels: + application: "${APPLICATION_NAME}" + deploymentConfig: "${APPLICATION_NAME}-smartrouter" + service: "${APPLICATION_NAME}-smartrouter" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-smartrouter" + image: rhpam70-smartrouter-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${SMART_ROUTER_MEMORY_LIMIT}" + ports: + - name: http + containerPort: 9000 + protocol: TCP + env: + - name: KIE_SERVER_ROUTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_ROUTER_PORT + value: "${KIE_SERVER_ROUTER_PORT}" + - name: KIE_SERVER_ROUTER_URL_EXTERNAL + value: "${KIE_SERVER_ROUTER_URL_EXTERNAL}" + - name: KIE_SERVER_ROUTER_ID + value: "${KIE_SERVER_ROUTER_ID}" + - name: KIE_SERVER_ROUTER_NAME + value: "${KIE_SERVER_ROUTER_NAME}" + - name: KIE_SERVER_ROUTER_PROTOCOL + value: "${KIE_SERVER_ROUTER_PROTOCOL}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${APPLICATION_NAME}-rhpamcentrmon" + - name: KIE_SERVER_ROUTER_REPO + value: "/opt/rhpam-smartrouter/data" + - name: KIE_SERVER_ROUTER_CONFIG_WATCHER_ENABLED + value: "true" + volumeMounts: + - name: "${APPLICATION_NAME}-smartrouter" + mountPath: "/opt/rhpam-smartrouter/data" + volumes: + - name: "${APPLICATION_NAME}-smartrouter" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-smartrouter-claim" +## KIE server deployment config 1 BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver-1" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 3 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-1" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver-1" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver-1" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver-1" + image: rhpam70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/healthcheck" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + failureThreshold: 3 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/readycheck" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${APPLICATION_NAME}-rhpamcentrmon" + - name: KIE_SERVER_ID + value: "kie-server-1" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: MAVEN_REPO_PATH + value: "/maven2/" + - name: KIE_SERVER_ROUTER_SERVICE + value: "${APPLICATION_NAME}-smartrouter" + - name: KIE_SERVER_ROUTER_PORT + value: "${KIE_SERVER_ROUTER_PORT}" + - name: KIE_SERVER_ROUTER_PROTOCOL + value: "${KIE_SERVER_ROUTER_PROTOCOL}" + - name: KIE_SERVER_PERSISTENCE_DS + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: DATASOURCES + value: "RHPAM" + - name: RHPAM_JNDI + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: RHPAM_JTA + value: "true" + - name: RHPAM_TX_ISOLATION + value: "TRANSACTION_READ_UNCOMMITTED" +## PostgreSQL driver settings 1 BEGIN + - name: RHPAM_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: RHPAM_DRIVER + value: "postgresql" + - name: KIE_SERVER_PERSISTENCE_DIALECT + value: "org.hibernate.dialect.PostgreSQLDialect" + - name: RHPAM_USERNAME + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: RHPAM_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: RHPAM_SERVICE_HOST + value: "${APPLICATION_NAME}-postgresql-1" + - name: RHPAM_SERVICE_PORT + value: "5432" + - name: TIMER_SERVICE_DATA_STORE + value: "${APPLICATION_NAME}-postgresql-1" +## PostgreSQL driver settings 1 END + - name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: "${TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${KIE_SERVER_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${KIE_SERVER_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${KIE_SERVER_HTTPS_PASSWORD}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-kieserver-1-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${KIE_SERVER1_SSO_SECRET}" + - name: SSO_CLIENT + value: "${KIE_SERVER1_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${EXECUTION_SERVER1_HOSTNAME_HTTP}" + - name: HOSTNAME_HTTPS + value: "${EXECUTION_SERVER1_HOSTNAME_HTTPS}" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${KIE_SERVER_HTTPS_SECRET}" +## KIE server deployment config 1 END +## PostgreSQL deployment config 1 BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-postgresql-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-1" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-postgresql-1" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-postgresql-1" + template: + metadata: + name: "${APPLICATION_NAME}-postgresql-1" + labels: + deploymentConfig: "${APPLICATION_NAME}-postgresql-1" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-1" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-postgresql-1" + image: postgresql + imagePullPolicy: Always + ports: + - containerPort: 5432 + protocol: TCP + volumeMounts: + - mountPath: "/var/lib/postgresql/data" + name: "${APPLICATION_NAME}-postgresql-pvol" + env: + - name: POSTGRESQL_USER + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: POSTGRESQL_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: POSTGRESQL_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: POSTGRESQL_MAX_PREPARED_TRANSACTIONS + value: "${POSTGRESQL_MAX_PREPARED_TRANSACTIONS}" + volumes: + - name: "${APPLICATION_NAME}-postgresql-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-postgresql-claim-1" +## PostgreSQL deployment config 1 END +## KIE server deployment config 2 BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver-2" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 3 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-2" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver-2" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver-2" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver-2" + image: rhpam70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/healthcheck" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + failureThreshold: 3 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/readycheck" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${APPLICATION_NAME}-rhpamcentrmon" + - name: KIE_SERVER_ID + value: "kie-server-2" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: MAVEN_REPO_PATH + value: "/maven2/" + - name: KIE_SERVER_ROUTER_SERVICE + value: "${APPLICATION_NAME}-smartrouter" + - name: KIE_SERVER_ROUTER_PORT + value: "${KIE_SERVER_ROUTER_PORT}" + - name: KIE_SERVER_ROUTER_PROTOCOL + value: "${KIE_SERVER_ROUTER_PROTOCOL}" + - name: KIE_SERVER_PERSISTENCE_DS + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: DATASOURCES + value: "RHPAM" + - name: RHPAM_JNDI + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: RHPAM_JTA + value: "true" + - name: RHPAM_TX_ISOLATION + value: "TRANSACTION_READ_UNCOMMITTED" +## PostgreSQL driver settings 2 BEGIN + - name: RHPAM_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: RHPAM_DRIVER + value: "postgresql" + - name: KIE_SERVER_PERSISTENCE_DIALECT + value: "org.hibernate.dialect.PostgreSQLDialect" + - name: RHPAM_USERNAME + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: RHPAM_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: RHPAM_SERVICE_HOST + value: "${APPLICATION_NAME}-postgresql-2" + - name: RHPAM_SERVICE_PORT + value: "5432" + - name: TIMER_SERVICE_DATA_STORE + value: "${APPLICATION_NAME}-postgresql-2" +## PostgreSQL driver settings 2 END + - name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: "${TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${KIE_SERVER_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${KIE_SERVER_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${KIE_SERVER_HTTPS_PASSWORD}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-kieserver-2-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${KIE_SERVER2_SSO_SECRET}" + - name: SSO_CLIENT + value: "${KIE_SERVER2_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${EXECUTION_SERVER2_HOSTNAME_HTTP}" + - name: HOSTNAME_HTTPS + value: "${EXECUTION_SERVER2_HOSTNAME_HTTPS}" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${KIE_SERVER_HTTPS_SECRET}" +## KIE server deployment config 2 END +## PostgreSQL deployment config 2 BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-postgresql-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-2" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-postgresql-2" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-postgresql-2" + template: + metadata: + name: "${APPLICATION_NAME}-postgresql-2" + labels: + deploymentConfig: "${APPLICATION_NAME}-postgresql-2" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-2" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-postgresql-2" + image: postgresql + imagePullPolicy: Always + ports: + - containerPort: 5432 + protocol: TCP + volumeMounts: + - mountPath: "/var/lib/postgresql/data" + name: "${APPLICATION_NAME}-postgresql-pvol" + env: + - name: POSTGRESQL_USER + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: POSTGRESQL_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: POSTGRESQL_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: POSTGRESQL_MAX_PREPARED_TRANSACTIONS + value: "${POSTGRESQL_MAX_PREPARED_TRANSACTIONS}" + volumes: + - name: "${APPLICATION_NAME}-postgresql-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-postgresql-claim-2" +## PostgreSQL deployment config 2 END +## PostgreSQL persistent volume claim 1 BEGIN +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-postgresql-claim-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-1" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${DB_VOLUME_CAPACITY}" +## PostgreSQL persistent volume claim 1 END +## PostgreSQL persistent volume claim 2 BEGIN +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-postgresql-claim-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-2" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${DB_VOLUME_CAPACITY}" +## PostgreSQL persistent volume claim 2 END +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-smartrouter-claim" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: "64Mi" +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-rhpamcentr-claim" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: "64Mi" diff --git a/addons/xpaas/v3.11/xpaas-templates/rhpam70-sit.yaml b/addons/xpaas/v3.11/xpaas-templates/rhpam70-sit.yaml new file mode 100644 index 0000000000..9dbfbd8335 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhpam70-sit.yaml @@ -0,0 +1,1369 @@ +--- +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for system integration testing, for Red Hat Process Automation Manager 7.0 + iconClass: icon-jboss + tags: rhpam,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Process Automation Manager 7.0 SIT environment + name: rhpam70-sit +labels: + template: rhpam70-sit + xpaas: 1.4.0 +message: A new environment has been set up for Red Hat Process Automation Manager 7. The username/password for accessing Business Central Monitoring is ${KIE_ADMIN_USER}/${KIE_ADMIN_PWD}. Both sets of KIE servers are configured with the username/password of ${KIE_SERVER_USER}/${KIE_SERVER_PWD}. +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository or service. + name: MAVEN_REPO_URL + example: http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ + required: true +- displayName: Maven repository username + description: Username to access the Maven repository. + name: MAVEN_REPO_USERNAME + required: true +- displayName: Maven repository password + description: Password to access the Maven repository. + name: MAVEN_REPO_PASSWORD + required: true +- displayName: EAP Admin User + description: EAP administrator username + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: EAP Admin Password + description: EAP administrator password + name: ADMIN_PASSWORD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Admin User + description: KIE administrator username + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Admin Password + description: KIE administrator password + name: KIE_ADMIN_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server User + description: KIE execution server username (Sets the org.kie.server.user system property) + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server Password + description: KIE execution server password (Sets the org.kie.server.pwd system property) + name: KIE_SERVER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + You should only need to modify this if you've installed the ImageStreams in a + different namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.0". + name: IMAGE_STREAM_TAG + value: "1.0" + required: false +- displayName: Smart Router Custom http Route Hostname + description: Custom hostname for http service route. Leave blank for default hostname, e.g. -smartrouter-.' + name: SMART_ROUTER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Smart Router ID + description: Router ID used when connecting to the controller (router property org.kie.server.router.id) + name: KIE_SERVER_ROUTER_ID + value: kie-server-router +- displayName: Smart Router listening port + description: Port in which the smart router server listens (router property org.kie.server.router.port) + name: KIE_SERVER_ROUTER_PORT + example: "9000" + required: false +- displayName: Smart Router protocol + description: KIE server router protocol (Used to build the org.kie.server.router.url.external property) + name: KIE_SERVER_ROUTER_PROTOCOL + example: "http" + required: false +- displayName: Smart Router external URL + description: Public URL where the router can be found. Format http://: (router property org.kie.server.router.url.external) + name: KIE_SERVER_ROUTER_URL_EXTERNAL +- displayName: Smart Router name + description: Router name used when connecting to the controller (router property org.kie.server.router.name) + name: KIE_SERVER_ROUTER_NAME + value: KIE Server Router +- displayName: KIE Server Controller User + description: KIE server controller username (Sets the org.kie.server.controller.user system property) + name: KIE_SERVER_CONTROLLER_USER + value: controllerUser + required: false +- displayName: KIE Server Controller Password + description: KIE server controller password (Sets the org.kie.server.controller.pwd system property) + name: KIE_SERVER_CONTROLLER_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server Persistence DS + description: KIE execution server persistence datasource (Sets the org.kie.server.persistence.ds system property) + name: KIE_SERVER_PERSISTENCE_DS + value: java:/jboss/datasources/rhpam + required: false +## PostgreSQL database parameters BEGIN +- displayName: PostgreSQL ImageStream Tag + description: The PostgreSQL image version, which is intended to correspond to the PostgreSQL version. Default is "9.6". + name: POSTGRESQL_IMAGE_STREAM_TAG + value: "9.6" + required: false +- displayName: KIE Server PostgreSQL Database User + description: KIE execution server PostgreSQL database username + name: KIE_SERVER_POSTGRESQL_USER + value: rhpam + required: false +- displayName: KIE Server PostgreSQL Database Password + description: KIE execution server PostgreSQL database password + name: KIE_SERVER_POSTGRESQL_PWD + from: "[a-zA-Z]{6}[0-9]{1}!" + generate: expression + required: false +- displayName: KIE Server PostgreSQL Database Name + description: KIE execution server PostgreSQL database name + name: KIE_SERVER_POSTGRESQL_DB + value: rhpam7 + required: false +- displayName: PostgreSQL Database max prepared connections + description: Allows the PostgreSQL to handle XA transactions. + name: POSTGRESQL_MAX_PREPARED_TRANSACTIONS + value: '100' + required: true +- displayName: Database Volume Capacity + description: Size of persistent storage for database volume. + name: DB_VOLUME_CAPACITY + value: 1Gi + required: true +## PostgreSQL database parameters END +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering (Sets the org.drools.server.filter.classes system property) + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: KIE MBeans + description: KIE execution server mbeans enabled/disabled (Sets the kie.mbeans and kie.scanner.mbeans system properties) + name: KIE_MBEANS + value: enabled + required: false +- displayName: Business Central Monitoring Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -rhpamcentrmon-.' + name: BUSINESS_CENTRAL_HOSTNAME_HTTP + value: '' + required: false +- displayName: Business Central Monitoring Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--rhpamcentrmon-.' + name: BUSINESS_CENTRAL_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Execution Server 1 Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -kieserver-.' + name: EXECUTION_SERVER1_HOSTNAME_HTTP + value: '' + required: false +- displayName: Execution Server 1 Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--kieserver-.' + name: EXECUTION_SERVER1_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Execution Server 2 Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -kieserver-.' + name: EXECUTION_SERVER2_HOSTNAME_HTTP + value: '' + required: false +- displayName: Execution Server 2 Custom https Route Hostname + description: 'Custom hostname for https service route. Leave blank for default + hostname, e.g.: secure--kieserver-.' + name: EXECUTION_SERVER2_HOSTNAME_HTTPS + value: '' + required: false +- displayName: Business Central Monitoring Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: BUSINESS_CENTRAL_HTTPS_SECRET + example: businesscentral-app-secret + required: true +- displayName: Business Central Monitoring Server Keystore Filename + description: The name of the keystore file within the secret + name: BUSINESS_CENTRAL_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: Business Central Monitoring Server Certificate Name + description: The name associated with the server certificate + name: BUSINESS_CENTRAL_HTTPS_NAME + value: jboss + required: false +- displayName: Business Central Monitoring Server Keystore Password + description: The password for the keystore and certificate + name: BUSINESS_CENTRAL_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Keystore Secret Name + description: The name of the secret containing the keystore file + name: KIE_SERVER_HTTPS_SECRET + example: kieserver-app-secret + required: true +- displayName: KIE Server Keystore Filename + description: The name of the keystore file within the secret + name: KIE_SERVER_HTTPS_KEYSTORE + value: keystore.jks + required: false +- displayName: KIE Server Certificate Name + description: The name associated with the server certificate + name: KIE_SERVER_HTTPS_NAME + value: jboss + required: false +- displayName: KIE Server Keystore Password + description: The password for the keystore and certificate + name: KIE_SERVER_HTTPS_PASSWORD + value: mykeystorepass + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user (Sets the org.kie.server.bypass.auth.user system property) + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false +- displayName: "Timer service data store refresh interval (in milliseconds)" + description: "Sets refresh-interval for the EJB timer service database-data-store." + name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: '30000' + required: false +- displayName: Business Central Monitoring Container Memory Limit + description: Business Central Monitoring Container memory limit + name: BUSINESS_CENTRAL_MEMORY_LIMIT + value: 2Gi + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +- displayName: Smart Router Container Memory Limit + description: Smart Router Container memory limit + name: SMART_ROUTER_MEMORY_LIMIT + value: 512Mi + required: false +- displayName: RH-SSO URL + description: RH-SSO URL + name: SSO_URL + example: https://rh-sso.example.com/auth + required: false +- displayName: RH-SSO Realm name + description: RH-SSO Realm name + name: SSO_REALM + required: false +- displayName: Business Central Monitoring RH-SSO Client name + description: Business Central Monitoring RH-SSO Client name + name: BUSINESS_CENTRAL_SSO_CLIENT + required: false +- displayName: Business Central Monitoring RH-SSO Client Secret + description: Business Central Monitoring RH-SSO Client Secret + name: BUSINESS_CENTRAL_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: KIE Server 1 RH-SSO Client name + description: KIE Server 1 RH-SSO Client name + name: KIE_SERVER1_SSO_CLIENT + required: false +- displayName: KIE Server 1 RH-SSO Client Secret + description: KIE Server 1 RH-SSO Client Secret + name: KIE_SERVER1_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: KIE Server 2 RH-SSO Client name + description: KIE Server 2 RH-SSO Client name + name: KIE_SERVER2_SSO_CLIENT + required: false +- displayName: KIE Server 2 RH-SSO Client Secret + description: KIE Server 2 RH-SSO Client Secret + name: KIE_SERVER2_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: RH-SSO Realm Admin Username + description: RH-SSO Realm Admin Username used to create the Client if it doesn't exist + name: SSO_USERNAME + required: false +- displayName: RH-SSO Realm Admin Password + description: RH-SSO Realm Admin Password used to create the Client + name: SSO_PASSWORD + required: false +- displayName: RH-SSO Disable SSL Certificate Validation + description: RH-SSO Disable SSL Certificate Validation + name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "false" + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + description: All the Business Central Monitoring web server's ports. +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon-ping" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 9000 + targetPort: 9000 + selector: + deploymentConfig: "${APPLICATION_NAME}-smartrouter" + metadata: + name: "${APPLICATION_NAME}-smartrouter" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + annotations: + description: The smart router server http port. +## KIE server services 1 BEGIN +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-1" + metadata: + name: "${APPLICATION_NAME}-kieserver-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + annotations: + description: All the KIE server web server's ports. (First execution server) +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-1" + metadata: + name: "${APPLICATION_NAME}-kieserver-1-ping" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +## KIE server services 1 END +## KIE server services 2 BEGIN +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: https + port: 8443 + targetPort: 8443 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-2" + metadata: + name: "${APPLICATION_NAME}-kieserver-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + annotations: + description: All the KIE server web server's ports. (Second execution server) +- kind: Service + apiVersion: v1 + spec: + clusterIP: "None" + ports: + - name: "ping" + port: 8888 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-2" + metadata: + name: "${APPLICATION_NAME}-kieserver-2-ping" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + annotations: + service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" + description: "The JGroups ping port for clustering." +## KIE server services 2 BEGIN +## PostgreSQL service 1 BEGIN +- apiVersion: v1 + kind: Service + metadata: + annotations: + description: The first database server's port. + labels: + application: ${APPLICATION_NAME} + service: "${APPLICATION_NAME}-postgresql-1" + name: ${APPLICATION_NAME}-postgresql-1 + spec: + ports: + - port: 5432 + targetPort: 5432 + selector: + deploymentConfig: ${APPLICATION_NAME}-postgresql-1 +## PostgreSQL service 1 END +## PostgreSQL service 2 BEGIN +- apiVersion: v1 + kind: Service + metadata: + annotations: + description: The second database server's port. + labels: + application: ${APPLICATION_NAME} + service: "${APPLICATION_NAME}-postgresql-2" + name: ${APPLICATION_NAME}-postgresql-2 + spec: + ports: + - port: 5432 + targetPort: 5432 + selector: + deploymentConfig: ${APPLICATION_NAME}-postgresql-2 +## PostgreSQL service 2 END +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamcentrmon-http" + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + description: Route for Business Central Monitoring's http service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-rhpamcentrmon" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamcentrmon-https" + metadata: + name: "secure-${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + annotations: + description: Route for Business Central Monitoring's https service. + haproxy.router.openshift.io/timeout: 60s + spec: + host: "${BUSINESS_CENTRAL_HOSTNAME_HTTPS}" + to: + name: "${APPLICATION_NAME}-rhpamcentrmon" + port: + targetPort: https + tls: + termination: passthrough +## KIE server routes 1 BEGIN +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-1-http" + metadata: + name: "${APPLICATION_NAME}-kieserver-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + annotations: + description: Route for First KIE server's http service. + spec: + host: "${EXECUTION_SERVER1_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver-1" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-1-https" + metadata: + name: "secure-${APPLICATION_NAME}-kieserver-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + annotations: + description: Route for First KIE server's https service. + spec: + host: "${EXECUTION_SERVER1_HOSTNAME_HTTPS}" + to: + name: "${APPLICATION_NAME}-kieserver-1" + port: + targetPort: https + tls: + termination: passthrough +## KIE server routes 1 END +## KIE server routes 2 BEGIN +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-2-http" + metadata: + name: "${APPLICATION_NAME}-kieserver-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + annotations: + description: Route for Second KIE server's http service. + spec: + host: "${EXECUTION_SERVER2_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver-2" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-2-https" + metadata: + name: "secure-${APPLICATION_NAME}-kieserver-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + annotations: + description: Route for Second KIE server's https service. + spec: + host: "${EXECUTION_SERVER2_HOSTNAME_HTTPS}" + to: + name: "${APPLICATION_NAME}-kieserver-2" + port: + targetPort: https + tls: + termination: passthrough +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-smartrouter-http" + metadata: + name: "${APPLICATION_NAME}-smartrouter" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + annotations: + description: Route for Smart Router's http service. + spec: + host: "${SMART_ROUTER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-smartrouter" +## KIE server routes 2 BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-rhpamcentrmon" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-businesscentral-monitoring-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + template: + metadata: + name: "${APPLICATION_NAME}-rhpamcentrmon" + labels: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentrmon" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-rhpamcentrmon" + image: rhpam70-businesscentral-monitoring-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${BUSINESS_CENTRAL_MEMORY_LIMIT}" + volumeMounts: + - name: businesscentral-keystore-volume + mountPath: "/etc/businesscentral-secret-volume" + readOnly: true + - name: "${APPLICATION_NAME}-rhpamcentr-pvol" + mountPath: "/opt/eap/standalone/data/bpmsuite" + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: ADMIN_USERNAME + value: "${ADMIN_USERNAME}" + - name: ADMIN_PASSWORD + value: "${ADMIN_PASSWORD}" + - name: KIE_SERVER_CONTROLLER_PWD + value: ${KIE_SERVER_CONTROLLER_PWD} + - name: KIE_SERVER_CONTROLLER_USER + value: ${KIE_SERVER_CONTROLLER_USER} + - name: PROBE_IMPL + value: probe.eap.jolokia.EapProbe + - name: PROBE_DISABLE_BOOT_ERRORS_CHECK + value: 'true' + - name: HTTPS_KEYSTORE_DIR + value: "/etc/businesscentral-secret-volume" + - name: HTTPS_KEYSTORE + value: "${BUSINESS_CENTRAL_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${BUSINESS_CENTRAL_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${BUSINESS_CENTRAL_HTTPS_PASSWORD}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-rhpamcentrmon-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${BUSINESS_CENTRAL_SSO_SECRET}" + - name: SSO_CLIENT + value: "${BUSINESS_CENTRAL_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" + - name: HOSTNAME_HTTPS + value: "${BUSINESS_CENTRAL_HOSTNAME_HTTPS}" + volumes: + - name: businesscentral-keystore-volume + secret: + secretName: "${BUSINESS_CENTRAL_HTTPS_SECRET}" + - name: "${APPLICATION_NAME}-rhpamcentr-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-rhpamcentr-claim" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: ${APPLICATION_NAME}-smartrouter + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-smartrouter" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-smartrouter-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-smartrouter" + template: + metadata: + name: "${APPLICATION_NAME}-smartrouter" + labels: + application: "${APPLICATION_NAME}" + deploymentConfig: "${APPLICATION_NAME}-smartrouter" + service: "${APPLICATION_NAME}-smartrouter" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-smartrouter" + image: rhpam70-smartrouter-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${SMART_ROUTER_MEMORY_LIMIT}" + ports: + - name: http + containerPort: 9000 + protocol: TCP + env: + - name: KIE_SERVER_ROUTER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_ROUTER_PORT + value: "${KIE_SERVER_ROUTER_PORT}" + - name: KIE_SERVER_ROUTER_URL_EXTERNAL + value: "${KIE_SERVER_ROUTER_URL_EXTERNAL}" + - name: KIE_SERVER_ROUTER_ID + value: "${KIE_SERVER_ROUTER_ID}" + - name: KIE_SERVER_ROUTER_NAME + value: "${KIE_SERVER_ROUTER_NAME}" + - name: KIE_SERVER_ROUTER_PROTOCOL + value: "${KIE_SERVER_ROUTER_PROTOCOL}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${APPLICATION_NAME}-rhpamcentrmon" + - name: KIE_SERVER_ROUTER_REPO + value: "/opt/rhpam-smartrouter/data" + - name: KIE_SERVER_ROUTER_CONFIG_WATCHER_ENABLED + value: "true" + volumeMounts: + - name: "${APPLICATION_NAME}-smartrouter" + mountPath: "/opt/rhpam-smartrouter/data" + volumes: + - name: "${APPLICATION_NAME}-smartrouter" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-smartrouter-claim" +## KIE server deployment config 1 BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver-1" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-1" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver-1" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver-1" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-1" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver-1" + image: rhpam70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/healthcheck" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + failureThreshold: 3 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/readycheck" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${APPLICATION_NAME}-rhpamcentrmon" + - name: KIE_SERVER_ID + value: "kie-server-1" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: KIE_SERVER_ROUTER_SERVICE + value: "${APPLICATION_NAME}-smartrouter" + - name: KIE_SERVER_ROUTER_PORT + value: "${KIE_SERVER_ROUTER_PORT}" + - name: KIE_SERVER_ROUTER_PROTOCOL + value: "${KIE_SERVER_ROUTER_PROTOCOL}" + - name: KIE_SERVER_PERSISTENCE_DS + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: DATASOURCES + value: "RHPAM" + - name: RHPAM_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: RHPAM_JNDI + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: RHPAM_JTA + value: "true" + - name: RHPAM_TX_ISOLATION + value: "TRANSACTION_READ_UNCOMMITTED" +## PostgreSQL driver settings 1 BEGIN + - name: RHPAM_DRIVER + value: "postgresql" + - name: RHPAM_USERNAME + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: RHPAM_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: RHPAM_SERVICE_HOST + value: "${APPLICATION_NAME}-postgresql-1" + - name: RHPAM_SERVICE_PORT + value: "5432" + - name: TIMER_SERVICE_DATA_STORE + value: "${APPLICATION_NAME}-postgresql-1" + - name: KIE_SERVER_PERSISTENCE_DIALECT + value: "org.hibernate.dialect.PostgreSQLDialect" +## PostgreSQL driver settings 1 END + - name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: "${TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${KIE_SERVER_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${KIE_SERVER_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${KIE_SERVER_HTTPS_PASSWORD}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-kieserver-1-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${KIE_SERVER1_SSO_SECRET}" + - name: SSO_CLIENT + value: "${KIE_SERVER1_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${EXECUTION_SERVER1_HOSTNAME_HTTP}" + - name: HOSTNAME_HTTPS + value: "${EXECUTION_SERVER1_HOSTNAME_HTTPS}" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${KIE_SERVER_HTTPS_SECRET}" +## KIE server deployment config 1 END +## PostgreSQL deployment config 1 BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-postgresql-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-1" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-postgresql-1" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-postgresql-1" + template: + metadata: + name: "${APPLICATION_NAME}-postgresql-1" + labels: + deploymentConfig: "${APPLICATION_NAME}-postgresql-1" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-1" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-postgresql-1" + image: postgresql + imagePullPolicy: Always + ports: + - containerPort: 5432 + protocol: TCP + volumeMounts: + - mountPath: "/var/lib/postgresql/data" + name: "${APPLICATION_NAME}-postgresql-pvol" + env: + - name: POSTGRESQL_USER + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: POSTGRESQL_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: POSTGRESQL_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: POSTGRESQL_MAX_PREPARED_TRANSACTIONS + value: "${POSTGRESQL_MAX_PREPARED_TRANSACTIONS}" + volumes: + - name: "${APPLICATION_NAME}-postgresql-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-postgresql-claim-1" +## PostgreSQL deployment config 1 END +## KIE server deployment config 2 BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver-2" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver-2" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver-2" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver-2" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver-2" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver-2" + image: rhpam70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXECUTION_SERVER_MEMORY_LIMIT}" + volumeMounts: + - name: kieserver-keystore-volume + mountPath: "/etc/kieserver-secret-volume" + readOnly: true + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/healthcheck" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + failureThreshold: 3 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/services/rest/server/readycheck" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: https + containerPort: 8443 + protocol: TCP + - name: ping + containerPort: 8888 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${KIE_ADMIN_PWD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${KIE_SERVER_CONTROLLER_PWD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${APPLICATION_NAME}-rhpamcentrmon" + - name: KIE_SERVER_ID + value: "kie-server-2" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${KIE_SERVER_PWD}" + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: KIE_SERVER_ROUTER_SERVICE + value: "${APPLICATION_NAME}-smartrouter" + - name: KIE_SERVER_ROUTER_PORT + value: "${KIE_SERVER_ROUTER_PORT}" + - name: KIE_SERVER_ROUTER_PROTOCOL + value: "${KIE_SERVER_ROUTER_PROTOCOL}" + - name: KIE_SERVER_PERSISTENCE_DS + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: DATASOURCES + value: "RHPAM" + - name: RHPAM_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: RHPAM_JNDI + value: "${KIE_SERVER_PERSISTENCE_DS}" + - name: RHPAM_JTA + value: "true" + - name: RHPAM_TX_ISOLATION + value: "TRANSACTION_READ_UNCOMMITTED" +## PostgreSQL driver settings 2 BEGIN + - name: RHPAM_DRIVER + value: "postgresql" + - name: RHPAM_USERNAME + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: RHPAM_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: RHPAM_SERVICE_HOST + value: "${APPLICATION_NAME}-postgresql-2" + - name: RHPAM_SERVICE_PORT + value: "5432" + - name: TIMER_SERVICE_DATA_STORE + value: "${APPLICATION_NAME}-postgresql-2" + - name: KIE_SERVER_PERSISTENCE_DIALECT + value: "org.hibernate.dialect.PostgreSQLDialect" +## PostgreSQL driver settings 2 END + - name: TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL + value: "${TIMER_SERVICE_DATA_STORE_REFRESH_INTERVAL}" + - name: HTTPS_KEYSTORE_DIR + value: "/etc/kieserver-secret-volume" + - name: HTTPS_KEYSTORE + value: "${KIE_SERVER_HTTPS_KEYSTORE}" + - name: HTTPS_NAME + value: "${KIE_SERVER_HTTPS_NAME}" + - name: HTTPS_PASSWORD + value: "${KIE_SERVER_HTTPS_PASSWORD}" + - name: JGROUPS_PING_PROTOCOL + value: "openshift.DNS_PING" + - name: OPENSHIFT_DNS_PING_SERVICE_NAME + value: "${APPLICATION_NAME}-kieserver-2-ping" + - name: OPENSHIFT_DNS_PING_SERVICE_PORT + value: "8888" + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${KIE_SERVER2_SSO_SECRET}" + - name: SSO_CLIENT + value: "${KIE_SERVER2_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${EXECUTION_SERVER2_HOSTNAME_HTTP}" + - name: HOSTNAME_HTTPS + value: "${EXECUTION_SERVER2_HOSTNAME_HTTPS}" + volumes: + - name: kieserver-keystore-volume + secret: + secretName: "${KIE_SERVER_HTTPS_SECRET}" +## KIE server deployment config 2 END +## PostgreSQL deployment config 2 BEGIN +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-postgresql-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-2" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-postgresql-2" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-postgresql-2" + template: + metadata: + name: "${APPLICATION_NAME}-postgresql-2" + labels: + deploymentConfig: "${APPLICATION_NAME}-postgresql-2" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-2" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-postgresql-2" + image: postgresql + imagePullPolicy: Always + ports: + - containerPort: 5432 + protocol: TCP + volumeMounts: + - mountPath: "/var/lib/postgresql/data" + name: "${APPLICATION_NAME}-postgresql-pvol" + env: + - name: POSTGRESQL_USER + value: "${KIE_SERVER_POSTGRESQL_USER}" + - name: POSTGRESQL_PASSWORD + value: "${KIE_SERVER_POSTGRESQL_PWD}" + - name: POSTGRESQL_DATABASE + value: "${KIE_SERVER_POSTGRESQL_DB}" + - name: POSTGRESQL_MAX_PREPARED_TRANSACTIONS + value: "${POSTGRESQL_MAX_PREPARED_TRANSACTIONS}" + volumes: + - name: "${APPLICATION_NAME}-postgresql-pvol" + persistentVolumeClaim: + claimName: "${APPLICATION_NAME}-postgresql-claim-2" +## PostgreSQL deployment config 2 END +## PostgreSQL persistent volume claim 1 BEGIN +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-postgresql-claim-1" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-1" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${DB_VOLUME_CAPACITY}" +## PostgreSQL persistent volume claim 1 END +## PostgreSQL persistent volume claim 2 BEGIN +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-postgresql-claim-2" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-postgresql-2" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "${DB_VOLUME_CAPACITY}" +## PostgreSQL persistent volume claim 2 END +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-smartrouter-claim" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-smartrouter" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "64Mi" +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: "${APPLICATION_NAME}-rhpamcentr-claim" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentrmon" + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "64Mi" diff --git a/addons/xpaas/v3.11/xpaas-templates/rhpam70-trial-ephemeral.yaml b/addons/xpaas/v3.11/xpaas-templates/rhpam70-trial-ephemeral.yaml new file mode 100644 index 0000000000..76c57530cf --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/rhpam70-trial-ephemeral.yaml @@ -0,0 +1,479 @@ +--- +kind: Template +apiVersion: v1 +metadata: + annotations: + description: Application template for an ephemeral authoring and testing environment, for Red Hat Process Automation Manager 7.0 + iconClass: icon-jboss + tags: rhpam,jboss,xpaas + version: 1.4.0 + openshift.io/display-name: Red Hat Process Automation Manager 7.0 ephemeral trial environment + name: rhpam70-trial-ephemeral +labels: + template: rhpam70-trial-ephemeral + xpaas: 1.4.0 +message: "A new Process Automation Manager trial environment has been created. Please remember that this is an ephemeral enviornment and any work will be LOST with a simple pod restart." +parameters: +- displayName: Application Name + description: The name for the application. + name: APPLICATION_NAME + value: myapp + required: true +- displayName: Default Password + description: Default password used for multiple components for user convenience in this trial environment + name: DEFAULT_PASSWORD + value: RedHat + required: true +- displayName: EAP Admin User + description: EAP administrator username + name: ADMIN_USERNAME + value: eapadmin + required: false +- displayName: KIE Admin User + description: KIE administrator username + name: KIE_ADMIN_USER + value: adminUser + required: false +- displayName: KIE Server User + description: KIE execution server username (Sets the org.kie.server.user system property) + name: KIE_SERVER_USER + value: executionUser + required: false +- displayName: KIE Server ID + description: Business server identifier. Determines the template ID in Business Central or controller. If this parameter is left blank, it is set using the $HOSTNAME environment variable or a random value. (Sets the org.kie.server.id system property). + name: KIE_SERVER_ID + value: '' + required: false +- displayName: KIE Server Bypass Auth User + description: KIE execution server bypass auth user (Sets the org.kie.server.bypass.auth.user system property) + name: KIE_SERVER_BYPASS_AUTH_USER + value: 'false' + required: false +- displayName: KIE Server Controller User + description: KIE server controller username (Sets the org.kie.server.controller.user system property) + name: KIE_SERVER_CONTROLLER_USER + value: controllerUser + required: false +- displayName: KIE MBeans + description: KIE execution server mbeans enabled/disabled (Sets the kie.mbeans and kie.scanner.mbeans system properties) + name: KIE_MBEANS + value: enabled + required: false +- displayName: Drools Server Filter Classes + description: KIE execution server class filtering (Sets the org.drools.server.filter.classes system property) + name: DROOLS_SERVER_FILTER_CLASSES + value: 'true' + required: false +- displayName: Execution Server Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -kieserver-.' + name: EXECUTION_SERVER_HOSTNAME_HTTP + value: '' + required: false +- displayName: Business Central Custom http Route Hostname + description: 'Custom hostname for http service route. Leave blank for default hostname, + e.g.: -rhpamcentr-.' + name: BUSINESS_CENTRAL_HOSTNAME_HTTP + value: '' + required: false +- displayName: ImageStream Namespace + description: Namespace in which the ImageStreams for Red Hat Middleware images are + installed. These ImageStreams are normally installed in the openshift namespace. + You should only need to modify this if you've installed the ImageStreams in a + different namespace/project. + name: IMAGE_STREAM_NAMESPACE + value: openshift + required: true +- displayName: ImageStream Tag + description: A named pointer to an image in an image stream. Default is "1.0". + name: IMAGE_STREAM_TAG + value: "1.0" + required: false +- displayName: KIE Server Container Deployment + description: 'KIE Server Container deployment configuration in format: containerId=groupId:artifactId:version|c2=g2:a2:v2' + name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: '' + required: false +- displayName: Maven repository URL + description: Fully qualified URL to a Maven repository or service. + name: MAVEN_REPO_URL + example: http://nexus.nexus-project.svc.cluster.local:8081/nexus/content/groups/public/ + required: false +- displayName: Maven repository username + description: Username to access the Maven repository. + name: MAVEN_REPO_USERNAME + required: false +- displayName: Maven repository password + description: Password to access the Maven repository, if required. + name: MAVEN_REPO_PASSWORD + required: false +- displayName: Username for the Maven service hosted by Business Central + description: Username to access the Maven service hosted by Business Central inside EAP. + name: BUSINESS_CENTRAL_MAVEN_USERNAME + required: true + value: mavenUser +- displayName: Business Central Container Memory Limit + description: Business Central Container memory limit + name: BUSINESS_CENTRAL_MEMORY_LIMIT + value: 2Gi + required: false +- displayName: Execution Server Container Memory Limit + description: Execution Server Container memory limit + name: EXCECUTION_SERVER_MEMORY_LIMIT + value: 1Gi + required: false +- displayName: RH-SSO URL + description: RH-SSO URL + name: SSO_URL + example: https://rh-sso.example.com/auth + required: false +- displayName: RH-SSO Realm name + description: RH-SSO Realm name + name: SSO_REALM + required: false +- displayName: Business Central RH-SSO Client name + description: Business Central RH-SSO Client name + name: BUSINESS_CENTRAL_SSO_CLIENT + required: false +- displayName: Business Central RH-SSO Client Secret + description: Business Central RH-SSO Client Secret + name: BUSINESS_CENTRAL_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: KIE Server RH-SSO Client name + description: KIE Server RH-SSO Client name + name: KIE_SERVER_SSO_CLIENT + required: false +- displayName: KIE Server RH-SSO Client Secret + description: KIE Server RH-SSO Client Secret + name: KIE_SERVER_SSO_SECRET + example: "252793ed-7118-4ca8-8dab-5622fa97d892" + required: false +- displayName: RH-SSO Realm Admin Username + description: RH-SSO Realm Admin Username used to create the Client if it doesn't exist + name: SSO_USERNAME + required: false +- displayName: RH-SSO Realm Admin Password + description: RH-SSO Realm Admin Password used to create the Client + name: SSO_PASSWORD + required: false +- displayName: RH-SSO Disable SSL Certificate Validation + description: RH-SSO Disable SSL Certificate Validation + name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "false" + required: false +objects: +- kind: Service + apiVersion: v1 + spec: + ports: + - name: http + port: 8080 + targetPort: 8080 + - name: git-ssh + port: 8001 + targetPort: 8001 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentr" + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + annotations: + description: All the Business Central web server's ports. +- kind: Service + apiVersion: v1 + spec: + ports: + - port: 8080 + targetPort: 8080 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: All the KIE server web server's ports. +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-rhpamcentr-http" + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + annotations: + description: Route for Business Central's http service. + spec: + host: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-rhpamcentr" + port: + targetPort: http +- kind: Route + apiVersion: v1 + id: "${APPLICATION_NAME}-kieserver-http" + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + annotations: + description: Route for execution server's http service. + spec: + host: "${EXECUTION_SERVER_HOSTNAME_HTTP}" + to: + name: "${APPLICATION_NAME}-kieserver" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-rhpamcentr" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-businesscentral-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentr" + template: + metadata: + name: "${APPLICATION_NAME}-rhpamcentr" + labels: + deploymentConfig: "${APPLICATION_NAME}-rhpamcentr" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-rhpamcentr" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-rhpamcentr" + image: rhpam70-businesscentral-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${BUSINESS_CENTRAL_MEMORY_LIMIT}" + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u '${KIE_ADMIN_USER}:${KIE_ADMIN_PWD}' http://localhost:8080/kie-wb.jsp" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + - name: git-ssh + containerPort: 8001 + protocol: TCP + env: + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${DEFAULT_PASSWORD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${DEFAULT_PASSWORD}" + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${DEFAULT_PASSWORD}" + - name: MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_PASSWORD}" + - name: KIE_MAVEN_USER + value: "${BUSINESS_CENTRAL_MAVEN_USERNAME}" + - name: KIE_MAVEN_PWD + value: "${DEFAULT_PASSWORD}" + - name: ADMIN_USERNAME + value: "${ADMIN_USERNAME}" + - name: ADMIN_PASSWORD + value: "${DEFAULT_PASSWORD}" + - name: PROBE_IMPL + value: probe.eap.jolokia.EapProbe + - name: PROBE_DISABLE_BOOT_ERRORS_CHECK + value: 'true' + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${BUSINESS_CENTRAL_SSO_SECRET}" + - name: SSO_CLIENT + value: "${BUSINESS_CENTRAL_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${BUSINESS_CENTRAL_HOSTNAME_HTTP}" +- kind: DeploymentConfig + apiVersion: v1 + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + strategy: + type: Recreate + triggers: + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - "${APPLICATION_NAME}-kieserver" + from: + kind: ImageStreamTag + namespace: "${IMAGE_STREAM_NAMESPACE}" + name: "rhpam70-kieserver-openshift:${IMAGE_STREAM_TAG}" + - type: ConfigChange + replicas: 1 + selector: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + template: + metadata: + name: "${APPLICATION_NAME}-kieserver" + labels: + deploymentConfig: "${APPLICATION_NAME}-kieserver" + application: "${APPLICATION_NAME}" + service: "${APPLICATION_NAME}-kieserver" + spec: + terminationGracePeriodSeconds: 60 + containers: + - name: "${APPLICATION_NAME}-kieserver" + image: rhpam70-kieserver-openshift + imagePullPolicy: Always + resources: + limits: + memory: "${EXCECUTION_SERVER_MEMORY_LIMIT}" + livenessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u ${KIE_ADMIN_USER}:${DEFAULT_PASSWORD} http://localhost:8080/services/rest/server/healthcheck" + initialDelaySeconds: 180 + timeoutSeconds: 2 + periodSeconds: 15 + failureThreshold: 3 + readinessProbe: + exec: + command: + - "/bin/bash" + - "-c" + - "curl --fail --silent -u ${KIE_ADMIN_USER}:${DEFAULT_PASSWORD} http://localhost:8080/services/rest/server/readycheck" + initialDelaySeconds: 60 + timeoutSeconds: 2 + periodSeconds: 30 + failureThreshold: 6 + ports: + - name: jolokia + containerPort: 8778 + protocol: TCP + - name: http + containerPort: 8080 + protocol: TCP + env: + - name: DROOLS_SERVER_FILTER_CLASSES + value: "${DROOLS_SERVER_FILTER_CLASSES}" + - name: KIE_ADMIN_USER + value: "${KIE_ADMIN_USER}" + - name: KIE_ADMIN_PWD + value: "${DEFAULT_PASSWORD}" + - name: KIE_MBEANS + value: "${KIE_MBEANS}" + - name: KIE_SERVER_BYPASS_AUTH_USER + value: "${KIE_SERVER_BYPASS_AUTH_USER}" + - name: KIE_SERVER_CONTROLLER_USER + value: "${KIE_SERVER_CONTROLLER_USER}" + - name: KIE_SERVER_CONTROLLER_PWD + value: "${DEFAULT_PASSWORD}" + - name: KIE_SERVER_CONTROLLER_SERVICE + value: "${APPLICATION_NAME}-rhpamcentr" + - name: KIE_SERVER_ID + value: "${KIE_SERVER_ID}" + - name: KIE_SERVER_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: KIE_SERVER_USER + value: "${KIE_SERVER_USER}" + - name: KIE_SERVER_PWD + value: "${DEFAULT_PASSWORD}" + - name: KIE_SERVER_CONTAINER_DEPLOYMENT + value: "${KIE_SERVER_CONTAINER_DEPLOYMENT}" + - name: MAVEN_REPOS + value: "RHPAMCENTR,EXTERNAL" + - name: RHPAMCENTR_MAVEN_REPO_SERVICE + value: "${APPLICATION_NAME}-rhpamcentr" + - name: RHPAMCENTR_MAVEN_REPO_PATH + value: "/maven2/" + - name: RHPAMCENTR_MAVEN_REPO_USERNAME + value: "${BUSINESS_CENTRAL_MAVEN_USERNAME}" + - name: RHPAMCENTR_MAVEN_REPO_PASSWORD + value: "${DEFAULT_PASSWORD}" + - name: EXTERNAL_MAVEN_REPO_URL + value: "${MAVEN_REPO_URL}" + - name: EXTERNAL_MAVEN_REPO_USERNAME + value: "${MAVEN_REPO_USERNAME}" + - name: MAVEN_REPO_PASSWORD + value: "${MAVEN_REPO_USERNAME}" + - name: SSO_URL + value: "${SSO_URL}" + - name: SSO_OPENIDCONNECT_DEPLOYMENTS + value: "ROOT.war" + - name: SSO_REALM + value: "${SSO_REALM}" + - name: SSO_SECRET + value: "${KIE_SERVER_SSO_SECRET}" + - name: SSO_CLIENT + value: "${KIE_SERVER_SSO_CLIENT}" + - name: SSO_USERNAME + value: "${SSO_USERNAME}" + - name: SSO_PASSWORD + value: "${SSO_PASSWORD}" + - name: SSO_DISABLE_SSL_CERTIFICATE_VALIDATION + value: "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}" + - name: HOSTNAME_HTTP + value: "${EXECUTION_SERVER_HOSTNAME_HTTP}" diff --git a/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-amq-template.json b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-amq-template.json new file mode 100644 index 0000000000..20fa19f49d --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-amq-template.json @@ -0,0 +1,367 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel A-MQ with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel and ActiveMQ QuickStart. This quickstart demonstrates how to connect a Spring Boot application to an ActiveMQ broker and use JMS messaging between two Camel routes using OpenShift. In this example we will use two containers, one container to run as a ActiveMQ broker, and another as a client to the broker, where the Camel routes are running. This quickstart requires the ActiveMQ broker has been deployed and running first, one simple way to run a A-MQ service is following the documentation of the A-MQ xPaaS image for OpenShift related to the amq63-basic template", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-camel-amq" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-camel-amq" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-spring-boot-camel-amq", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/fabric8-quickstarts/spring-boot-camel-amq.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-amq-1.0.0.fuse-710017-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "AMQP_HOST", + "displayName": "ActiveMQ Broker Service", + "required": true, + "value": "broker-amq-amqp", + "description": "Set this to the name of the AMQP service of the ActiveMQ broker. You may need to create a broker first." + }, + { + "name": "AMQP_USERNAME", + "displayName": "ActiveMQ Broker Username", + "description": "The username used to authenticate with the ActiveMQ broker. Leave it empty if authentication is disabled." + }, + { + "name": "AMQP_PASSWORD", + "displayName": "ActiveMQ Broker Password", + "description": "The password used to authenticate with the ActiveMQ broker. Leave it empty if authentication is disabled." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710017-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + } , { + "name": "AMQP_HOST", + "value": "${AMQP_HOST}" + }, { + "name": "AMQP_USERNAME", + "value": "${AMQP_USERNAME}" + }, { + "name": "AMQP_PASSWORD", + "value": "${AMQP_PASSWORD}" + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-config-template.json b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-config-template.json new file mode 100644 index 0000000000..f163506120 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-config-template.json @@ -0,0 +1,384 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel + ConfigMap with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot and Camel using ConfigMaps and Secrets. This quickstart demonstrates how to configure a Spring Boot application using OpenShift ConfigMaps and Secrets. This example requires that a ConfigMap named camel-config and a Secret named camel-config are present in the namespace before the application is deployed, instruction about how to manually create them can be found here: https://github.com/fabric8-quickstarts/spring-boot-camel-config/blob/spring-boot-camel-config-1.0.0.fuse-710017-redhat-00002/README.md ", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-camel-config" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-camel-config" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-spring-boot-camel-config", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/fabric8-quickstarts/spring-boot-camel-config.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-config-1.0.0.fuse-710017-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "SERVICE_ACCOUNT_NAME", + "displayName": "Service Account", + "value": "qs-camel-config", + "required": true, + "description": "The Service Account that will be used to run the container. It must be already present in OpenShift and have the view role." + }, + { + "name": "SECRET_NAME", + "displayName": "Secret Name", + "value": "camel-config", + "required": true, + "description": "The name of the OpenShift Secret that will be used to configure the application. It must be already present in OpenShift." + }, + { + "name": "CONFIGMAP_NAME", + "displayName": "ConfigMap Name", + "value": "camel-config", + "required": true, + "description": "The name of the OpenShift ConfigMap that will be used to configure the application. It must be already present in OpenShift." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710017-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "serviceAccountName": "${SERVICE_ACCOUNT_NAME}", + "volumes": [ + { + "name": "camel-config", + "secret": { + "secretName": "${SECRET_NAME}" + } + } + ], + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + }, { + "name": "SPRING_CLOUD_KUBERNETES_SECRETS_NAME", + "value": "${SECRET_NAME}" + }, { + "name": "SPRING_CLOUD_KUBERNETES_CONFIG_NAME", + "value": "${CONFIGMAP_NAME}" + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "camel-config", + "readOnly": true, + "mountPath": "/etc/secrets/camel-config" + } + ] + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-drools-template.json b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-drools-template.json new file mode 100644 index 0000000000..0d06c67fca --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-drools-template.json @@ -0,0 +1,370 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel + Drools with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel and JBoss BRMS QuickStart. This example demonstrates how you can use Apache Camel and JBoss BRMS with Spring Boot on OpenShift. Camel routes, defined via Spring, are used to pass (insert) the Body of the message as a POJO to a Drools engine for execution. A Kie Server should be deployed and configured before running the application, more information about how to configure it can be found at https://github.com/fabric8-quickstarts/spring-boot-camel-drools/blob/spring-boot-camel-drools-1.0.0.fuse-710017-redhat-00002/README.md", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-camel-drools" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-camel-drools" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-spring-boot-camel-drools", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/fabric8-quickstarts/spring-boot-camel-drools.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-drools-1.0.0.fuse-710017-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "KIESERVER_SERVICE", + "displayName": "Decision Server Name", + "required": true, + "value": "kie-app", + "description": "Set this to the name of the Decision Server. You may need to create an instance before." + }, + { + "name": "KIESERVER_USERNAME", + "displayName": "Decision Server Username", + "required": true, + "value": "kieserver", + "description": "The username used to authenticate with the Decision Server." + }, + { + "name": "KIESERVER_PASSWORD", + "displayName": "Decision Server Password", + "required": true, + "description": "The password used to authenticate with the Decision Server." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710017-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + }, { + "name": "KIESERVER_SERVICE", + "value": "${KIESERVER_SERVICE}" + }, { + "name": "KIESERVER_USERNAME", + "value": "${KIESERVER_USERNAME}" + }, { + "name": "KIESERVER_PASSWORD", + "value": "${KIESERVER_PASSWORD}" + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-infinispan-template.json b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-infinispan-template.json new file mode 100644 index 0000000000..84f394e3f3 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-infinispan-template.json @@ -0,0 +1,351 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel + JDG with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel and JBoss Data Grid QuickStart. This quickstart demonstrates how to connect a Spring Boot application to a JBoss Data Grid (or Infinispan) server using the Hot Rod protocol. It requires that the data grid server (or cluster) has been deployed first, one simple way to run a JDG service is following the documentation of the JDG xPaaS image for OpenShift related to the datagrid65-basic template.", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-camel-infinispan" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-camel-infinispan" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-spring-boot-camel-infinispan", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/fabric8-quickstarts/spring-boot-camel-infinispan.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-infinispan-1.0.0.fuse-710017-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "INFINISPAN_SERVICE", + "displayName": "JBoss Data Grid Service (Hot Rod)", + "required": true, + "value": "datagrid-app-hotrod", + "description": "Set this to the name of the Hot Rod service of the JBoss Data Grid. You may need to create the data grid first." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710017-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + } , { + "name": "INFINISPAN_SERVICE", + "value": "${INFINISPAN_SERVICE}" + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-rest-sql-template.json b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-rest-sql-template.json new file mode 100644 index 0000000000..2c051794ee --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-rest-sql-template.json @@ -0,0 +1,439 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel REST SQL with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel REST DSL and MySQL QuickStart. This quickstart demonstrates how to connect a Spring Boot application to a MySQL database and expose a REST API with Camel on OpenShift. In this example we will use two containers, one container to run as a MySQL server, and another as a client to the database, where the Camel routes are running. This quickstart requires the MySQL server to be deployed and started first, one simple way to run a MySQL service is following the documentation of the OpenShift MySQL container image related to the mysql-ephemeral template.", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-camel-rest-sql" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-camel-rest-sql" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-spring-boot-camel-rest-sql", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/fabric8-quickstarts/spring-boot-camel-rest-sql.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-rest-sql-1.0.0.fuse-710017-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "SERVICE_NAME", + "displayName": "Service Name", + "value": "camel-rest-sql", + "description": "Exposed service name." + }, + { + "name": "MYSQL_SERVICE_NAME", + "displayName": "MySQL Server Service", + "required": true, + "value": "mysql", + "description": "Set this to the name of the TCP service of the MySQL server. You may need to create a server first." + }, + { + "name": "MYSQL_SERVICE_DATABASE", + "displayName": "MySQL Server Database", + "value": "sampledb", + "description": "The database hosted by the MySQL server to be used by the application." + }, + { + "name": "MYSQL_SERVICE_USERNAME", + "displayName": "MySQL Server Username", + "description": "The username used to authenticate with the MySQL server. Leave it empty if authentication is disabled." + }, + { + "name": "MYSQL_SERVICE_PASSWORD", + "displayName": "MySQL Server Password", + "description": "The password used to authenticate with the MySQL server. Leave it empty if authentication is disabled." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710017-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "apiVersion": "v1", + "kind": "Route", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}-route" + }, + "spec": { + "to": { + "kind": "Service", + "name": "${SERVICE_NAME}" + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "annotations": { + }, + "labels": { + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}" + }, + "spec": { + "clusterIP": "None", + "deprecatedPublicIPs": [], + "ports": [ + { + "port": 9411, + "protocol": "TCP", + "targetPort": 8080 + } + ], + "selector": { + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8080, + "name": "http" + }, + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + } , { + "name": "MYSQL_SERVICE_NAME", + "value": "${MYSQL_SERVICE_NAME}" + }, { + "name": "MYSQL_SERVICE_DATABASE", + "value": "${MYSQL_SERVICE_DATABASE}" + }, { + "name": "MYSQL_SERVICE_USERNAME", + "value": "${MYSQL_SERVICE_USERNAME}" + }, { + "name": "MYSQL_SERVICE_PASSWORD", + "value": "${MYSQL_SERVICE_PASSWORD}" + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-teiid-template.json b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-teiid-template.json new file mode 100644 index 0000000000..de52297003 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-teiid-template.json @@ -0,0 +1,379 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel + JDV with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel and JBoss Data Virtualization QuickStart. This example demonstrates how to connect Apache Camel to a remote JBoss Data Virtualization (or Teiid) Server using the JDBC protocol. This quickstart assumes that the JDV server is already running and configured on OpenShift, more information about to setup a JDV server can be found at https://github.com/fabric8-quickstarts/spring-boot-camel-teiid/blob/spring-boot-camel-teiid-1.0.0.fuse-710017-redhat-00002/README.md", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-camel-teiid" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-camel-teiid" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-spring-boot-camel-teiid", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/fabric8-quickstarts/spring-boot-camel-teiid.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-teiid-1.0.0.fuse-710017-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "TEIID_SERVICE_NAME", + "displayName": "JDV Server Name", + "required": true, + "value": "datavirt-app", + "description": "Set this to the name of the JDV Server. You may need to create an instance before." + }, + { + "name": "TEIID_PORT_NAME", + "displayName": "JDV Port Name", + "value": "jdbc", + "description": "Set this to the name of the JDV port to use. Set this value if the JDV service contains multiple named ports." + }, + { + "name": "TEIID_USERNAME", + "displayName": "JDV Server Username", + "required": true, + "description": "The username used to authenticate with the JDV Server." + }, + { + "name": "TEIID_PASSWORD", + "displayName": "JDV Server Password", + "required": true, + "description": "The password used to authenticate with the JDV Server." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710017-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ + { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + }, { + "name": "TEIID_SERVICE_NAME", + "value": "${TEIID_SERVICE_NAME}" + }, { + "name": "TEIID_PORT_NAME", + "value": "${TEIID_PORT_NAME}" + }, { + "name": "TEIID_USERNAME", + "value": "${TEIID_USERNAME}" + }, { + "name": "TEIID_PASSWORD", + "value": "${TEIID_PASSWORD}" + }], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-template.json b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-template.json new file mode 100644 index 0000000000..b6455f8be2 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-template.json @@ -0,0 +1,341 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot and Camel QuickStart. This example demonstrates how you can use Apache Camel with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure an application which includes a Camel route that triggers a message every 5th second, and routes the message to a log.", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-camel" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-camel" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-spring-boot-camel", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/fabric8-quickstarts/spring-boot-camel.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-1.0.0.fuse-710017-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710017-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-xa-template.json b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-xa-template.json new file mode 100644 index 0000000000..fc47a33ebb --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-xa-template.json @@ -0,0 +1,591 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel on Spring Boot with XA Transactions", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel and XA Transactions. This example demonstrates how to run a Camel Service on Spring-Boot that supports XA transactions on two external transactional resources: a JMS resource (A-MQ) and a database (PostgreSQL). This quickstart requires the PostgreSQL database and the A-MQ broker have been deployed and running first, one simple way to run them is to use the templates provided in the Openshift service catalog", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-camel-xa" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-camel-xa" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-xa", + "description": "The name assigned to the application (max 20 characters)." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/jboss-fuse/spring-boot-camel-xa.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-xa-1.0.0.fuse-710006-redhat-00003", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "BROKER_HOST", + "displayName": "A-MQ Broker Service", + "required": true, + "value": "broker-amq-tcp", + "description": "Set this to the name of the TCP service of the A-MQ broker. You may need to create a broker first." + }, + { + "name": "BROKER_USERNAME", + "displayName": "A-MQ Broker Username", + "required": true, + "description": "The username used to authenticate with the A-MQ broker." + }, + { + "name": "BROKER_PASSWORD", + "displayName": "A-MQ Broker Password", + "required": true, + "description": "The password used to authenticate with the A-MQ broker." + }, + { + "name": "DATABASE_HOST", + "displayName": "PostgreSQL Service", + "required": true, + "value": "postgresql", + "description": "Set this to the name of the PostgreSQL service. You may need to create the database first." + }, + { + "name": "DATABASE_USERNAME", + "displayName": "PostgreSQL Username", + "required": true, + "description": "The username used to authenticate with the PostgreSQL database." + }, + { + "name": "DATABASE_PASSWORD", + "displayName": "PostgreSQL Password", + "required": true, + "description": "The password used to authenticate with the PostgreSQL database." + }, + { + "name": "VOLUME_SIZE", + "displayName": "Volume size for transaction log", + "required": true, + "value": "1Gi", + "description": "The size of the volume used to store the transaction log." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the Fuse S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710006-redhat-00003", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "lookupPolicy": { + "local": true + } + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "StatefulSet", + "apiVersion": "apps/v1beta1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "annotations": { + "image.openshift.io/triggers": "[{\"from\":{\"kind\":\"ImageStreamTag\",\"name\":\"${APP_NAME}:latest\"},\"fieldPath\":\"spec.template.spec.containers[?(@.name==\\\"${APP_NAME}\\\")].image\"}]" + } + }, + "spec": { + "podManagementPolicy": "Parallel", + "updateStrategy": { + "type": "RollingUpdate" + }, + "replicas": 1, + "selector": { + "matchLabels": { + "app": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + }, + "serviceName": "${APP_NAME}-headless", + "template": { + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "containers": [ + { + "env": [ + { + "name": "CLUSTER_RECOVERY_ENABLED", + "value": "true" + }, + { + "name": "CLUSTER_BASE_DIR", + "value": "/var/transaction/data" + }, + { + "name": "CLUSTER_NAME", + "value": "${APP_NAME}" + }, + { + "name": "CLUSTER_NODENAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "metadata.name" + } + } + }, + { + "name": "BROKER_HOST", + "value": "${BROKER_HOST}" + }, + { + "name": "BROKER_USERNAME", + "value": "${BROKER_USERNAME}" + }, + { + "name": "BROKER_PASSWORD", + "value": "${BROKER_PASSWORD}" + }, + { + "name": "DATABASE_HOST", + "value": "${DATABASE_HOST}" + }, + { + "name": "DATABASE_USERNAME", + "value": "${DATABASE_USERNAME}" + }, + { + "name": "DATABASE_PASSWORD", + "value": "${DATABASE_PASSWORD}" + }, + { + "name": "KUBERNETES_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + } + ], + "image": "${APP_NAME}:latest", + "imagePullPolicy": "Always", + "livenessProbe": { + "httpGet": { + "path": "/health", + "port": 8080, + "scheme": "HTTP" + }, + "initialDelaySeconds": 180 + }, + "name": "${APP_NAME}", + "ports": [ + { + "containerPort": 8080, + "name": "http", + "protocol": "TCP" + }, + { + "containerPort": 8778, + "name": "jolokia", + "protocol": "TCP" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health", + "port": 8080, + "scheme": "HTTP" + }, + "initialDelaySeconds": 10 + }, + "resources": { + "limits": { + "cpu": "1.0", + "memory": "256Mi" + }, + "requests": { + "cpu": "0.2", + "memory": "256Mi" + } + }, + "securityContext": { + "privileged": false + }, + "volumeMounts": [ + { + "mountPath": "/var/transaction/data", + "name": "${APP_NAME}-data" + } + ] + } + ], + "serviceAccountName": "${APP_NAME}", + "terminationGracePeriodSeconds": 180, + "volumes": [ + { + "name": "${APP_NAME}-data", + "persistentVolumeClaim": { + "claimName": "${APP_NAME}" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${APP_NAME}" + }, + "spec": { + "ports": [ + { + "name": "http", + "port": 8080, + "protocol": "TCP", + "targetPort": 8080 + } + ], + "selector": { + "app": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + } + }, + { + "apiVersion" : "v1", + "kind" : "Service", + "metadata" : { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name" : "${APP_NAME}-headless" + }, + "spec" : { + "clusterIP" : "None", + "ports" : [ { + "name" : "http", + "port" : 8080, + "protocol" : "TCP", + "targetPort" : 8080 + } ], + "selector" : { + "app" : "${APP_NAME}", + "group" : "quickstarts", + "provider" : "s2i" + } + } + }, + { + "apiVersion" : "route.openshift.io/v1", + "kind" : "Route", + "metadata" : { + "labels" : { + "component" : "${APP_NAME}", + "app" : "${APP_NAME}", + "provider" : "s2i", + "version" : "${APP_VERSION}", + "group" : "quickstarts" + }, + "name" : "${APP_NAME}" + }, + "spec" : { + "port" : { + "targetPort" : 8080 + }, + "to" : { + "kind" : "Service", + "name" : "${APP_NAME}" + } + } + }, + { + "apiVersion": "v1", + "kind": "ServiceAccount", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${APP_NAME}" + } + }, + { + "apiVersion": "v1", + "kind": "RoleBinding", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${APP_NAME}" + }, + "roleRef": { + "name": "edit" + }, + "subjects": [ + { + "kind": "ServiceAccount", + "name": "${APP_NAME}" + } + ] + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "group": "quickstarts", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "name": "${APP_NAME}" + }, + "spec": { + "accessModes": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_SIZE}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-xml-template.json b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-xml-template.json new file mode 100644 index 0000000000..26b5bdd7e7 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/spring-boot-camel-xml-template.json @@ -0,0 +1,341 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel XML DSL with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot and Camel Xml QuickStart. This example demonstrates how you can use Apache Camel with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure an application which includes a Camel route (in Spring xml) that triggers a message every 5th second, and routes the message to a log.", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-camel-xml" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-camel-xml" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-spring-boot-camel-xml", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/fabric8-quickstarts/spring-boot-camel-xml.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-xml-1.0.0.fuse-710017-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710017-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/spring-boot-cxf-jaxrs-template.json b/addons/xpaas/v3.11/xpaas-templates/spring-boot-cxf-jaxrs-template.json new file mode 100644 index 0000000000..11172e9c71 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/spring-boot-cxf-jaxrs-template.json @@ -0,0 +1,400 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 CXF JAX-RS with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot and CXF JAX-RS QuickStart. This example demonstrates how you can use Apache CXF JAX-RS with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure a CXF application which includes a JAX-RS endpoint with Swagger enabled.", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-cxf-jaxrs" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-cxf-jaxrs" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-spring-boot-cxf-jaxrs", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/fabric8-quickstarts/spring-boot-cxf-jaxrs.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-cxf-jaxrs-1.0.0.fuse-710017-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "SERVICE_NAME", + "displayName": "Service Name", + "value": "cxf-jaxrs", + "description": "Exposed service name." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710017-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "apiVersion": "v1", + "kind": "Route", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}-route" + }, + "spec": { + "to": { + "kind": "Service", + "name": "${SERVICE_NAME}" + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "annotations": { + }, + "labels": { + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}" + }, + "spec": { + "clusterIP": "None", + "deprecatedPublicIPs": [], + "ports": [ + { + "port": 9413, + "protocol": "TCP", + "targetPort": 8080 + } + ], + "selector": { + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/spring-boot-cxf-jaxws-template.json b/addons/xpaas/v3.11/xpaas-templates/spring-boot-cxf-jaxws-template.json new file mode 100644 index 0000000000..cb7b73c0c6 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/spring-boot-cxf-jaxws-template.json @@ -0,0 +1,400 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 CXF JAX-WS with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot and CXF JAX-WS QuickStart. This example demonstrates how you can use Apache CXF JAX-WS with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure a CXF application which includes a JAX-WS endpoint.", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-cxf-jaxws" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-cxf-jaxws" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-spring-boot-cxf-jaxws", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/fabric8-quickstarts/spring-boot-cxf-jaxws.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-cxf-jaxws-1.0.0.fuse-710017-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "SERVICE_NAME", + "displayName": "Service Name", + "value": "cxf-jaxws", + "description": "Exposed service name." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710017-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "apiVersion": "v1", + "kind": "Route", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}-route" + }, + "spec": { + "to": { + "kind": "Service", + "name": "${SERVICE_NAME}" + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "annotations": { + }, + "labels": { + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}" + }, + "spec": { + "clusterIP": "None", + "deprecatedPublicIPs": [], + "ports": [ + { + "port": 9414, + "protocol": "TCP", + "targetPort": 8080 + } + ], + "selector": { + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health", + "port" : 8081 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/sso72-https.json b/addons/xpaas/v3.11/xpaas-templates/sso72-https.json new file mode 100644 index 0000000000..9320ca659b --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/sso72-https.json @@ -0,0 +1,568 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass" : "icon-sso", + "tags" : "sso,keycloak,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2 (Ephemeral with passthrough TLS)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example RH-SSO 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Single Sign-On 7.2 server based deployment, securing RH-SSO communication using passthrough TLS.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-single-sign-on/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "sso72-https" + }, + "labels": { + "template": "sso72-https", + "xpaas": "1.4.14" + }, + "message": "A new RH-SSO service has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing RH-SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "RH-SSO Administrator Username", + "description": "RH-SSO Server administrator username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Administrator Password", + "description": "RH-SSO Server administrator password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Realm", + "description": "Realm to be created in the RH-SSO server (e.g. demorealm).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Username", + "description": "The username used to access the RH-SSO service. This is used by clients to create the appliction client(s) within the specified RH-SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Password", + "description": "The password for the RH-SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Container Memory Limit", + "description": "Container memory limit.", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso72-openshift:1.2" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/sso72-mysql-persistent.json b/addons/xpaas/v3.11/xpaas-templates/sso72-mysql-persistent.json new file mode 100644 index 0000000000..52fbd5f011 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/sso72-mysql-persistent.json @@ -0,0 +1,838 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass" : "icon-sso", + "tags" : "sso,keycloak,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + MySQL (Persistent with passthrough TLS)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example RH-SSO 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Single Sign-On 7.2 server based deployment, deployment configuration for MySQL using persistence, and securing RH-SSO communication using passthrough TLS.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-single-sign-on/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "sso72-mysql-persistent" + }, + "labels": { + "template": "sso72-mysql-persistent", + "xpaas": "1.4.14" + }, + "message": "A new persistent RH-SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing RH-SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "RH-SSO Administrator Username", + "description": "RH-SSO Server administrator username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Administrator Password", + "description": "RH-SSO Server administrator password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Realm", + "description": "Realm to be created in the RH-SSO server (e.g. demorealm).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Username", + "description": "The username used to access the RH-SSO service. This is used by clients to create the appliction client(s) within the specified RH-SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Password", + "description": "The password for the RH-SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "displayName": "Container Memory Limit", + "description": "Container memory limit.", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso72-openshift:1.2" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/sso72-mysql.json b/addons/xpaas/v3.11/xpaas-templates/sso72-mysql.json new file mode 100644 index 0000000000..97ed3145d0 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/sso72-mysql.json @@ -0,0 +1,820 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass" : "icon-sso", + "tags" : "sso,keycloak,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + MySQL (Ephemeral with passthrough TLS)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example RH-SSO 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Single Sign-On 7.2 server based deployment, deployment configuration for MySQL using ephemeral (temporary) storage, and securing RH-SSO communication using passthrough TLS.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-single-sign-on/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "sso72-mysql" + }, + "labels": { + "template": "sso72-mysql", + "xpaas": "1.4.14" + }, + "message": "A new RH-SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing RH-SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "RH-SSO Administrator Username", + "description": "RH-SSO Server administrator username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Administrator Password", + "description": "RH-SSO Server administrator password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Realm", + "description": "Realm to be created in the RH-SSO server (e.g. demorealm).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Username", + "description": "The username used to access the RH-SSO service. This is used by clients to create the appliction client(s) within the specified RH-SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Password", + "description": "The password for the RH-SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "displayName": "Container Memory Limit", + "description": "Container memory limit.", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso72-openshift:1.2" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/sso72-postgresql-persistent.json b/addons/xpaas/v3.11/xpaas-templates/sso72-postgresql-persistent.json new file mode 100644 index 0000000000..a706744997 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/sso72-postgresql-persistent.json @@ -0,0 +1,811 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass" : "icon-sso", + "tags" : "sso,keycloak,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + PostgreSQL (Persistent with passthrough TLS)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example RH-SSO 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Single Sign-On 7.2 server based deployment, deployment configuration for PostgreSQL using persistence, and securing RH-SSO communication using passthrough TLS.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-single-sign-on/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "sso72-postgresql-persistent" + }, + "labels": { + "template": "sso72-postgresql-persistent", + "xpaas": "1.4.14" + }, + "message": "A new persistent RH-SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing RH-SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "RH-SSO Administrator Username", + "description": "RH-SSO Server administrator username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Administrator Password", + "description": "RH-SSO Server administrator password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Realm", + "description": "Realm to be created in the RH-SSO server (e.g. demorealm).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Username", + "description": "The username used to access the RH-SSO service. This is used by clients to create the appliction client(s) within the specified RH-SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Password", + "description": "The password for the RH-SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "displayName": "Container Memory Limit", + "description": "Container memory limit.", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso72-openshift:1.2" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/sso72-postgresql.json b/addons/xpaas/v3.11/xpaas-templates/sso72-postgresql.json new file mode 100644 index 0000000000..4f1b8a47a9 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/sso72-postgresql.json @@ -0,0 +1,793 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass" : "icon-sso", + "tags" : "sso,keycloak,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + PostgreSQL (Ephemeral with passthrough TLS)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example RH-SSO 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Single Sign-On 7.2 server based deployment, deployment configuration for PostgreSQL using ephemeral (temporary) storage, and securing RH-SSO communication using passthrough TLS.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-single-sign-on/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "sso72-postgresql" + }, + "labels": { + "template": "sso72-postgresql", + "xpaas": "1.4.14" + }, + "message": "A new RH-SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing RH-SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "RH-SSO Administrator Username", + "description": "RH-SSO Server administrator username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Administrator Password", + "description": "RH-SSO Server administrator password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Realm", + "description": "Realm to be created in the RH-SSO server (e.g. demorealm).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Username", + "description": "The username used to access the RH-SSO service. This is used by clients to create the appliction client(s) within the specified RH-SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Password", + "description": "The password for the RH-SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "displayName": "Container Memory Limit", + "description": "Container memory limit.", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso72-openshift:1.2" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}", + "component": "server" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}", + "component": "database" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-data" + } + ] + } + ], + "volumes": [ + { + "emptyDir": { + "medium": "" + }, + "name": "${APPLICATION_NAME}-data" + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/sso72-x509-https.json b/addons/xpaas/v3.11/xpaas-templates/sso72-x509-https.json new file mode 100644 index 0000000000..86d20b217e --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/sso72-x509-https.json @@ -0,0 +1,368 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass" : "icon-sso", + "tags" : "sso,keycloak,jboss", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2 (Ephemeral)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example RH-SSO 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Single Sign-On 7.2 server based deployment, securing RH-SSO communication using re-encrypt TLS.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-single-sign-on/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "sso72-x509-https" + }, + "labels": { + "template": "sso72-x509-https", + "xpaas": "1.4.14" + }, + "message": "A new RH-SSO service has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The HTTPS keystore used for serving secure content, the JGroups keystore used for securing JGroups communications, and server truststore used for securing RH-SSO requests were automatically created via OpenShift's service serving x509 certificate secrets.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "The password for the JGroups cluster.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{32}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "RH-SSO Administrator Username", + "description": "RH-SSO Server administrator username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Administrator Password", + "description": "RH-SSO Server admininistrator password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{32}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Realm", + "description": "Realm to be created in the RH-SSO server (e.g. demorealm).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Username", + "description": "The username used to access the RH-SSO service. This is used by clients to create the appliction client(s) within the specified RH-SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Password", + "description": "The password for the RH-SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Container Memory Limit", + "description": "Container memory limit.", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/serving-cert-secret-name": "sso-x509-https-secret" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "service.alpha.openshift.io/serving-cert-secret-name": "sso-x509-jgroups-secret", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + }, + "tls": { + "termination": "reencrypt" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso72-openshift:1.2" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "sso-x509-https-volume", + "mountPath": "/etc/x509/https", + "readOnly": true + }, + { + "name": "sso-x509-jgroups-volume", + "mountPath": "/etc/x509/jgroups", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "X509_CA_BUNDLE", + "value": "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "sso-x509-https-volume", + "secret": { + "secretName": "sso-x509-https-secret" + } + }, + { + "name": "sso-x509-jgroups-volume", + "secret": { + "secretName": "sso-x509-jgroups-secret" + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/sso72-x509-mysql-persistent.json b/addons/xpaas/v3.11/xpaas-templates/sso72-x509-mysql-persistent.json new file mode 100644 index 0000000000..a98e5b888a --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/sso72-x509-mysql-persistent.json @@ -0,0 +1,637 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass" : "icon-sso", + "tags" : "sso,keycloak,jboss", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + MySQL (Persistent)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example RH-SSO 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Single Sign-On 7.2 server based deployment, deployment configuration for MySQL using persistence, and securing RH-SSO communication using re-encrypt TLS.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-single-sign-on/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "sso72-x509-mysql-persistent" + }, + "labels": { + "template": "sso72-x509-mysql-persistent", + "xpaas": "1.4.14" + }, + "message": "A new persistent RH-SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. The HTTPS keystore used for serving secure content, the JGroups keystore used for securing JGroups communications, and server truststore used for securing RH-SSO requests were automatically created via OpenShift's service serving x509 certificate secrets.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "The password for the JGroups cluster.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{32}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{32}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "RH-SSO Administrator Username", + "description": "RH-SSO Server administrator username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH_SSO Administrator Password", + "description": "RH-SSO Server administrator password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{32}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Realm", + "description": "Realm to be created in the RH-SSO server (e.g. demorealm).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Username", + "description": "The username used to access the RH-SSO service. This is used by clients to create the appliction client(s) within the specified RH-SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Password", + "description": "The password for the RH-SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "displayName": "Container Memory Limit", + "description": "Container memory limit.", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/serving-cert-secret-name": "sso-x509-https-secret", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "service.alpha.openshift.io/serving-cert-secret-name": "sso-x509-jgroups-secret", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + }, + "tls": { + "termination": "reencrypt" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso72-openshift:1.2" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "sso-x509-https-volume", + "mountPath": "/etc/x509/https", + "readOnly": true + }, + { + "name": "sso-x509-jgroups-volume", + "mountPath": "/etc/x509/jgroups", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-mysql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "X509_CA_BUNDLE", + "value": "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "sso-x509-https-volume", + "secret": { + "secretName": "sso-x509-https-secret" + } + }, + { + "name": "sso-x509-jgroups-volume", + "secret": { + "secretName": "sso-x509-jgroups-secret" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-mysql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-mysql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/mysql/data", + "name": "${APPLICATION_NAME}-mysql-pvol" + } + ], + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-mysql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-mysql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-mysql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.11/xpaas-templates/sso72-x509-postgresql-persistent.json b/addons/xpaas/v3.11/xpaas-templates/sso72-x509-postgresql-persistent.json new file mode 100644 index 0000000000..a49c066212 --- /dev/null +++ b/addons/xpaas/v3.11/xpaas-templates/sso72-x509-postgresql-persistent.json @@ -0,0 +1,610 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass" : "icon-sso", + "tags" : "sso,keycloak,jboss", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + PostgreSQL (Persistent)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example RH-SSO 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Single Sign-On 7.2 server based deployment, deployment configuration for PostgreSQL using persistence, and securing RH-SSO communication using re-encrypt TLS.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-single-sign-on/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "sso72-x509-postgresql-persistent" + }, + "labels": { + "template": "sso72-x509-postgresql-persistent", + "xpaas": "1.4.14" + }, + "message": "A new persistent RH-SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. The HTTPS keystore used for serving secure content, the JGroups keystore used for securing JGroups communications, and server truststore used for securing RH-SSO requests were automatically created via OpenShift's service serving x509 certificate secrets.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "The password for the JGroups cluster.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{32}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{32}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "RH-SSO Administrator Username", + "description": "RH-SSO Server administrator username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Administrator Password", + "description": "RH-SSO Server administrator password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{32}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Realm", + "description": "Realm to be created in the RH-SSO server (e.g. demorealm).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Username", + "description": "The username used to access the RH-SSO service. This is used by clients to create the appliction client(s) within the specified RH-SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Password", + "description": "The password for the RH-SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "displayName": "Container Memory Limit", + "description": "Container memory limit.", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/serving-cert-secret-name": "sso-x509-https-secret", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "service.alpha.openshift.io/serving-cert-secret-name": "sso-x509-jgroups-secret", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "to": { + "name": "${APPLICATION_NAME}" + }, + "tls": { + "termination": "reencrypt" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso72-openshift:1.2" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "sso-x509-https-volume", + "mountPath": "/etc/x509/https", + "readOnly": true + }, + { + "name": "sso-x509-jgroups-volume", + "mountPath": "/etc/x509/jgroups", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "X509_CA_BUNDLE", + "value": "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "sso-x509-https-volume", + "secret": { + "secretName": "sso-x509-https-secret" + } + }, + { + "name": "sso-x509-jgroups-volume", + "secret": { + "secretName": "sso-x509-jgroups-secret" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-streams/amq62-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/amq62-image-stream.json index 2b0e1af6d3..8c2759910b 100644 --- a/addons/xpaas/v3.9/xpaas-streams/amq62-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/amq62-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss A-MQ 6.2", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/amq63-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/amq63-image-stream.json index d5a97eec4b..67c61af8c8 100644 --- a/addons/xpaas/v3.9/xpaas-streams/amq63-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/amq63-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss A-MQ 6.3", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/datagrid65-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/datagrid65-image-stream.json index d1d6892ccb..e7c497cf04 100644 --- a/addons/xpaas/v3.9/xpaas-streams/datagrid65-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/datagrid65-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ @@ -111,11 +111,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss Data Grid 6.5 Client Modules for EAP", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/datagrid71-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/datagrid71-image-stream.json index 1ba857f920..586679b708 100644 --- a/addons/xpaas/v3.9/xpaas-streams/datagrid71-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/datagrid71-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss Data Grid 7.1", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ @@ -96,11 +96,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss Data Grid 7.1 Client Modules for EAP", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/datavirt63-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/datavirt63-image-stream.json index fd639677ca..736b1b3b55 100644 --- a/addons/xpaas/v3.9/xpaas-streams/datavirt63-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/datavirt63-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.3", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ @@ -111,11 +111,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss Data Virtualization 6.5 JDBC Driver Modules for EAP", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/decisionserver62-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/decisionserver62-image-stream.json index 6e87c9b875..278b4dab2f 100644 --- a/addons/xpaas/v3.9/xpaas-streams/decisionserver62-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/decisionserver62-image-stream.json @@ -16,11 +16,11 @@ "name": "jboss-decisionserver62-openshift", "annotations": { "openshift.io/display-name": "Red Hat JBoss BRMS 6.2 decision server", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/decisionserver63-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/decisionserver63-image-stream.json index ad99b10b22..b27a23133b 100644 --- a/addons/xpaas/v3.9/xpaas-streams/decisionserver63-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/decisionserver63-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss BRMS 6.3 decision server", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/decisionserver64-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/decisionserver64-image-stream.json index f49a2d68c1..d445c90cb5 100644 --- a/addons/xpaas/v3.9/xpaas-streams/decisionserver64-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/decisionserver64-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss BRMS 6.4 decision server", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/eap70-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/eap70-image-stream.json index 62d2f49dd5..19c2443ae1 100644 --- a/addons/xpaas/v3.9/xpaas-streams/eap70-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/eap70-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss EAP 7.0", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/eap71-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/eap71-image-stream.json index 1de1d57efb..fc6ca8aac5 100644 --- a/addons/xpaas/v3.9/xpaas-streams/eap71-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/eap71-image-stream.json @@ -17,36 +17,36 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss EAP 7.1", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ { - "name": "TP", + "name": "latest", "annotations": { - "description": "The latest available build of the JBoss EAP 7.1 S2I image.", + "description": "JBoss EAP 7.1 S2I image (latest).", "iconClass": "icon-eap", "tags": "builder,eap,javaee,java,jboss,hidden", - "supports": "eap:7.1,javaee:7,java:8,xpass:1.0", + "supports": "eap:7.1,javaee:7,java:8", "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "7.1.0.GA", - "version": "TP", - "openshift.io/display-name": "Red Hat JBoss EAP 7.1 (Tech Preview)" + "version": "latest", + "openshift.io/display-name": "Red Hat JBoss EAP 7.1" }, "from": { - "kind": "ImageStreamTag", - "name": "1.1" + "kind": "DockerImage", + "name": "registry.access.redhat.com/jboss-eap-7/eap71-openshift:latest" } }, { - "name": "1.0-TP", + "name": "1.1", "annotations": { - "description": "JBoss EAP 7.1 Tech Preview.", + "description": "JBoss EAP 7.1 S2I image.", "iconClass": "icon-eap", "tags": "builder,eap,javaee,java,jboss,hidden", "supports": "eap:7.1,javaee:7,java:8", @@ -54,15 +54,15 @@ "sampleContextDir": "kitchensink", "sampleRef": "7.1.0.GA", "version": "1.0", - "openshift.io/display-name": "Red Hat JBoss EAP 7.1 (Tech Preview)" + "openshift.io/display-name": "Red Hat JBoss EAP 7.1" }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/jboss-eap-7-tech-preview/eap71-openshift:1.0" + "name": "registry.access.redhat.com/jboss-eap-7/eap71-openshift:1.1" } }, { - "name": "1.1", + "name": "1.2", "annotations": { "description": "JBoss EAP 7.1 S2I image.", "iconClass": "icon-eap", @@ -71,16 +71,16 @@ "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "7.1.0.GA", - "version": "1.0", + "version": "1.2", "openshift.io/display-name": "Red Hat JBoss EAP 7.1" }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/jboss-eap-7/eap71-openshift:1.1" + "name": "registry.access.redhat.com/jboss-eap-7/eap71-openshift:1.2" } }, { - "name": "1.2", + "name": "1.3", "annotations": { "description": "JBoss EAP 7.1 S2I image.", "iconClass": "icon-eap", @@ -89,12 +89,12 @@ "sampleRepo": "https://github.com/jboss-developer/jboss-eap-quickstarts.git", "sampleContextDir": "kitchensink", "sampleRef": "7.1.0.GA", - "version": "1.2", + "version": "1.3", "openshift.io/display-name": "Red Hat JBoss EAP 7.1" }, "from": { "kind": "DockerImage", - "name": "registry.access.redhat.com/jboss-eap-7/eap71-openshift:1.2" + "name": "registry.access.redhat.com/jboss-eap-7/eap71-openshift:1.3" } } ] diff --git a/addons/xpaas/v3.9/xpaas-streams/fis-image-streams.json b/addons/xpaas/v3.9/xpaas-streams/fis-image-streams.json index 9317d63fa5..7524fc4429 100644 --- a/addons/xpaas/v3.9/xpaas-streams/fis-image-streams.json +++ b/addons/xpaas/v3.9/xpaas-streams/fis-image-streams.json @@ -2,9 +2,9 @@ "kind": "List", "apiVersion": "v1", "metadata": { - "name": "fis-image-streams", + "name": "jboss-fuse-image-streams", "annotations": { - "description": "ImageStream definitions for JBoss Fuse Integration Services." + "description": "ImageStream definitions for Red Hat Fuse." } }, "items": [ @@ -12,15 +12,20 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "fis-java-openshift" + "name": "fis-java-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 6.3 Java", + "openshift.io/provider-display-name": "Red Hat, Inc." + } }, "spec": { "tags": [ { "name": "1.0", "annotations": { - "description": "JBoss Fuse Integration Services 1.0 Java S2I images.", - "iconClass": "icon-jboss", + "description": "Red Hat Fuse 6.2.1 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 6.2.1 Java", + "iconClass": "icon-rh-integration", "tags": "builder,jboss-fuse,java,xpaas,hidden", "supports":"jboss-fuse:6.2.1,java:8,xpaas:1.2", "version": "1.0" @@ -33,9 +38,10 @@ { "name": "2.0", "annotations": { - "description": "JBoss Fuse Integration Services 2.0 Java S2I images.", - "iconClass": "icon-jboss", - "tags": "builder,jboss-fuse,java,xpaas", + "description": "Red Hat Fuse 6.3 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 6.3 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", "supports":"jboss-fuse:6.3.0,java:8,xpaas:1.2", "version": "2.0" }, @@ -51,15 +57,50 @@ "kind": "ImageStream", "apiVersion": "v1", "metadata": { - "name": "fis-karaf-openshift" + "name": "jboss-fuse70-java-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.0 Java", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-java-openshift:1.0" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fis-karaf-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 6.3 Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc." + } }, "spec": { "tags": [ { "name": "1.0", "annotations": { - "description": "JBoss Fuse Integration Services 1.0 Karaf S2I images.", - "iconClass": "icon-jboss", + "description": "Red Hat Fuse 6.2.1 Karaf S2I image.", + "openshift.io/display-name": "Red Hat Fuse 6.2.1 Karaf", + "iconClass": "icon-rh-integration", "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", "supports":"jboss-fuse:6.2.1,java:8,xpaas:1.2", "version": "1.0" @@ -72,9 +113,10 @@ { "name": "2.0", "annotations": { - "description": "JBoss Fuse Integration Services 2.0 Karaf S2I images.", - "iconClass": "icon-jboss", - "tags": "builder,jboss-fuse,java,karaf,xpaas", + "description": "Red Hat Fuse 6.3 Karaf S2I images.", + "openshift.io/display-name": "Red Hat Fuse 6.3 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", "supports":"jboss-fuse:6.3.0,java:8,xpaas:1.2", "version": "2.0" }, @@ -85,6 +127,276 @@ } ] } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-fuse70-karaf-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.0 Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Karaf S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-karaf-openshift:1.0" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-fuse70-eap-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.0 EAP", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 EAP S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 EAP", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,eap,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-eap-openshift:1.0" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "jboss-fuse70-console", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.0 Console", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Console image.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Console", + "iconClass": "icon-rh-integration", + "tags": "jboss-fuse,hawtio,java,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-console:1.0" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-java-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 Java", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-java-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 Java S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Java", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-java-openshift:1.1" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-karaf-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Karaf S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-karaf-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 Karaf S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Karaf", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,karaf,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-karaf-openshift:1.1" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-eap-openshift", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 EAP", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 EAP S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.0 EAP", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,eap,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-eap-openshift:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 EAP S2I images.", + "openshift.io/display-name": "Red Hat Fuse 7.1 EAP", + "iconClass": "icon-rh-integration", + "tags": "builder,jboss-fuse,java,eap,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-eap-openshift:1.1" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "fuse7-console", + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7 Console", + "openshift.io/provider-display-name": "Red Hat, Inc." + } + }, + "spec": { + "tags": [ + { + "name": "1.0", + "annotations": { + "description": "Red Hat Fuse 7.0 Console image.", + "openshift.io/display-name": "Red Hat Fuse 7.0 Console", + "iconClass": "icon-rh-integration", + "tags": "jboss-fuse,hawtio,java,xpaas,hidden", + "supports":"jboss-fuse:7.0.0,java:8,xpaas:1.2", + "version": "1.0" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-console:1.0" + } + }, + { + "name": "1.1", + "annotations": { + "description": "Red Hat Fuse 7.1 Console image.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Console", + "iconClass": "icon-rh-integration", + "tags": "jboss-fuse,hawtio,java,xpaas,hidden", + "supports":"jboss-fuse:7.1.0,java:8,xpaas:1.2", + "version": "1.1" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/fuse7/fuse-console:1.1" + } + } + ] + } } ] } diff --git a/addons/xpaas/v3.9/xpaas-streams/jws30-tomcat7-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/jws30-tomcat7-image-stream.json index a814b4b5c1..576cc58969 100644 --- a/addons/xpaas/v3.9/xpaas-streams/jws30-tomcat7-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/jws30-tomcat7-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Apache Tomcat 7", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/jws30-tomcat8-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/jws30-tomcat8-image-stream.json index f18edc4ed5..3d77ac249a 100644 --- a/addons/xpaas/v3.9/xpaas-streams/jws30-tomcat8-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/jws30-tomcat8-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss Web Server 3.0 Apache Tomcat 8", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/jws31-tomcat7-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/jws31-tomcat7-image-stream.json index 4fbffb9ae4..cfb89e47cf 100644 --- a/addons/xpaas/v3.9/xpaas-streams/jws31-tomcat7-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/jws31-tomcat7-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss Web Server 3.1 Apache Tomcat 7", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/jws31-tomcat8-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/jws31-tomcat8-image-stream.json index 7de2a4a2d2..fcdbcf9684 100644 --- a/addons/xpaas/v3.9/xpaas-streams/jws31-tomcat8-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/jws31-tomcat8-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/openjdk18-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/openjdk18-image-stream.json index 473e2abefe..41b20b168f 100644 --- a/addons/xpaas/v3.9/xpaas-streams/openjdk18-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/openjdk18-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat OpenJDK 8", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ @@ -48,7 +48,7 @@ "openshift.io/display-name": "Red Hat OpenJDK 8", "description": "Build and run Java applications using Maven and OpenJDK 8.", "iconClass": "icon-rh-openjdk", - "tags": "builder,java,openjdk", + "tags": "builder,java,openjdk,hidden", "supports": "java:8", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", "sampleContextDir": "undertow-servlet", @@ -65,7 +65,7 @@ "openshift.io/display-name": "Red Hat OpenJDK 8", "description": "Build and run Java applications using Maven and OpenJDK 8.", "iconClass": "icon-rh-openjdk", - "tags": "builder,java,openjdk", + "tags": "builder,java,openjdk,hidden", "supports": "java:8", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", "sampleContextDir": "undertow-servlet", @@ -82,7 +82,7 @@ "openshift.io/display-name": "Red Hat OpenJDK 8", "description": "Build and run Java applications using Maven and OpenJDK 8.", "iconClass": "icon-rh-openjdk", - "tags": "builder,java,openjdk", + "tags": "builder,java,openjdk,hidden", "supports": "java:8", "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", "sampleContextDir": "undertow-servlet", @@ -92,6 +92,76 @@ "kind": "DockerImage", "name": "registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:1.3" } + }, + { + "name": "1.4", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-rh-openjdk", + "tags": "builder,java,openjdk,hidden", + "supports": "java:8", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "1.4" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:1.4" + } + } + ] + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "java", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "version": "1.4.14" + } + }, + "labels": { + "xpaas": "1.4.14" + }, + "spec": { + "tags": [ + { + "name": "8", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-rh-openjdk", + "tags": "builder,java,openjdk", + "supports": "java:8,java", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "8" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift:latest" + } + }, + { + "name": "latest", + "annotations": { + "openshift.io/display-name": "Red Hat OpenJDK 8", + "description": "Build and run Java applications using Maven and OpenJDK 8.", + "iconClass": "icon-rh-openjdk", + "tags": "builder,java,openjdk", + "supports": "java:8,java", + "sampleRepo": "https://github.com/jboss-openshift/openshift-quickstarts", + "sampleContextDir": "undertow-servlet", + "version": "latest" + }, + "from": { + "kind": "ImageStreamTag", + "name": "java:8" + } } ] } diff --git a/addons/xpaas/v3.9/xpaas-streams/processserver63-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/processserver63-image-stream.json index 061e1e05d6..ce3a739954 100644 --- a/addons/xpaas/v3.9/xpaas-streams/processserver63-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/processserver63-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.3 intelligent process server", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/processserver64-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/processserver64-image-stream.json index 00e98398cb..18b1c1b407 100644 --- a/addons/xpaas/v3.9/xpaas-streams/processserver64-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/processserver64-image-stream.json @@ -17,11 +17,11 @@ "annotations": { "openshift.io/display-name": "Red Hat JBoss BPM Suite 6.4 intelligent process server", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/sso70-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/sso70-image-stream.json index 504c5e9863..72e9b363d7 100644 --- a/addons/xpaas/v3.9/xpaas-streams/sso70-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/sso70-image-stream.json @@ -18,11 +18,11 @@ "description": "Red Hat SSO 7.0", "openshift.io/display-name": "Red Hat Single Sign-On 7.0", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/sso71-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/sso71-image-stream.json index b1c94bce41..0adb7e52e6 100644 --- a/addons/xpaas/v3.9/xpaas-streams/sso71-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/sso71-image-stream.json @@ -18,11 +18,11 @@ "description": "Red Hat SSO 7.1", "openshift.io/display-name": "Red Hat Single Sign-On 7.1", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ diff --git a/addons/xpaas/v3.9/xpaas-streams/sso72-image-stream.json b/addons/xpaas/v3.9/xpaas-streams/sso72-image-stream.json index a0de1f1ca4..881682a6c1 100644 --- a/addons/xpaas/v3.9/xpaas-streams/sso72-image-stream.json +++ b/addons/xpaas/v3.9/xpaas-streams/sso72-image-stream.json @@ -18,11 +18,11 @@ "description": "Red Hat SSO 7.2", "openshift.io/display-name": "Red Hat Single Sign-On 7.2", "openshift.io/provider-display-name": "Red Hat, Inc.", - "version": "1.4.12" + "version": "1.4.14" } }, "labels": { - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "spec": { "tags": [ @@ -55,6 +55,21 @@ "kind": "DockerImage", "name": "registry.access.redhat.com/redhat-sso-7/sso72-openshift:1.1" } + }, + { + "name": "1.2", + "annotations": { + "description": "Red Hat SSO 7.2", + "iconClass": "icon-sso", + "tags": "sso,keycloak,redhat,hidden", + "supports": "sso:7.2", + "version": "1.2", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2" + }, + "from": { + "kind": "DockerImage", + "name": "registry.access.redhat.com/redhat-sso-7/sso72-openshift:1.2" + } } ] } diff --git a/addons/xpaas/v3.9/xpaas-streams/stream.txt b/addons/xpaas/v3.9/xpaas-streams/stream.txt deleted file mode 100644 index acb3d97db1..0000000000 --- a/addons/xpaas/v3.9/xpaas-streams/stream.txt +++ /dev/null @@ -1,21 +0,0 @@ -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/amq62-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/amq63-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/datagrid65-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/datagrid71-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/datavirt63-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/decisionserver62-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/decisionserver63-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/decisionserver64-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/eap70-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/eap71-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/fis-image-streams.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/jws30-tomcat7-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/jws30-tomcat8-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/jws31-tomcat7-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/jws31-tomcat8-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/openjdk18-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/processserver63-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/processserver64-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/sso70-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/sso71-image-stream.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-streams/sso72-image-stream.json diff --git a/addons/xpaas/v3.9/xpaas-templates/amq62-basic.json b/addons/xpaas/v3.9/xpaas-templates/amq62-basic.json index 51147f67d0..5ce6206e28 100644 --- a/addons/xpaas/v3.9/xpaas-templates/amq62-basic.json +++ b/addons/xpaas/v3.9/xpaas-templates/amq62-basic.json @@ -7,14 +7,14 @@ "iconClass": "icon-amq", "openshift.io/provider-display-name": "Red Hat, Inc.", "tags": "messaging,amq,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss A-MQ 6.2 (Ephemeral, no SSL)" }, "name": "amq62-basic" }, "labels": { "template": "amq62-basic", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/amq62-persistent-ssl.json b/addons/xpaas/v3.9/xpaas-templates/amq62-persistent-ssl.json index 63630a104d..c769675cd7 100644 --- a/addons/xpaas/v3.9/xpaas-templates/amq62-persistent-ssl.json +++ b/addons/xpaas/v3.9/xpaas-templates/amq62-persistent-ssl.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-amq", "tags": "messaging,amq,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss A-MQ 6.2 (with SSL)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -18,7 +18,7 @@ }, "labels": { "template": "amq62-persistent-ssl", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/amq62-persistent.json b/addons/xpaas/v3.9/xpaas-templates/amq62-persistent.json index 0857b93f30..9e70b78ff5 100644 --- a/addons/xpaas/v3.9/xpaas-templates/amq62-persistent.json +++ b/addons/xpaas/v3.9/xpaas-templates/amq62-persistent.json @@ -6,7 +6,7 @@ "description": "Application template for JBoss A-MQ brokers. These can be deployed as standalone and use persistent storage for saving messages, including message migration when the number of pods are reduced. This template doesn't feature SSL support.", "iconClass": "icon-amq", "tags": "messaging,amq,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss A-MQ 6.2 (no SSL)", "openshift.io/provider-display-name": "Red Hat, Inc." }, @@ -14,7 +14,7 @@ }, "labels": { "template": "amq62-persistent", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/amq62-ssl.json b/addons/xpaas/v3.9/xpaas-templates/amq62-ssl.json index fe51598ff5..5c0cf8674f 100644 --- a/addons/xpaas/v3.9/xpaas-templates/amq62-ssl.json +++ b/addons/xpaas/v3.9/xpaas-templates/amq62-ssl.json @@ -6,7 +6,7 @@ "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-amq", "tags": "messaging,amq,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss A-MQ 6.2 (Ephemeral with SSL)", "openshift.io/provider-display-name": "Red Hat, Inc." }, @@ -14,7 +14,7 @@ }, "labels": { "template": "amq62-ssl", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/amq63-basic.json b/addons/xpaas/v3.9/xpaas-templates/amq63-basic.json index ed6d936d8c..e47e798bc9 100644 --- a/addons/xpaas/v3.9/xpaas-templates/amq63-basic.json +++ b/addons/xpaas/v3.9/xpaas-templates/amq63-basic.json @@ -6,7 +6,7 @@ "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-amq", "tags": "messaging,amq,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "Red Hat JBoss A-MQ 6.3 (Ephemeral, no SSL)", "openshift.io/provider-display-name": "Red Hat, Inc." }, @@ -14,7 +14,7 @@ }, "labels": { "template": "amq63-basic", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/amq63-persistent-ssl.json b/addons/xpaas/v3.9/xpaas-templates/amq63-persistent-ssl.json index d528036551..c16b79ef2b 100644 --- a/addons/xpaas/v3.9/xpaas-templates/amq63-persistent-ssl.json +++ b/addons/xpaas/v3.9/xpaas-templates/amq63-persistent-ssl.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-amq", "tags": "messaging,amq,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss A-MQ 6.3 (with SSL)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "amq63-persistent-ssl", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/amq63-persistent.json b/addons/xpaas/v3.9/xpaas-templates/amq63-persistent.json index d5ea232eaa..88f007301b 100644 --- a/addons/xpaas/v3.9/xpaas-templates/amq63-persistent.json +++ b/addons/xpaas/v3.9/xpaas-templates/amq63-persistent.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-amq", "tags": "messaging,amq,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss A-MQ 6.3 (no SSL)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "amq63-persistent", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent messaging service has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/amq63-ssl.json b/addons/xpaas/v3.9/xpaas-templates/amq63-ssl.json index 96ee851a0f..aec17e08a7 100644 --- a/addons/xpaas/v3.9/xpaas-templates/amq63-ssl.json +++ b/addons/xpaas/v3.9/xpaas-templates/amq63-ssl.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-amq", "tags": "messaging,amq,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss A-MQ 6.3 (Ephemeral with SSL)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "amq63-ssl", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new messaging service with SSL support has been created in your project. It will handle the protocol(s) \"${MQ_PROTOCOL}\". The username/password for accessing the service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create a secret named \"${AMQ_SECRET}\" containing the trust store and key store files (\"${AMQ_TRUSTSTORE}\" and \"${AMQ_KEYSTORE}\") used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid65-basic.json b/addons/xpaas/v3.9/xpaas-templates/datagrid65-basic.json index 569b417dc9..cd6cc610de 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid65-basic.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid65-basic.json @@ -6,7 +6,7 @@ "iconClass": "icon-datagrid", "description": "Application template for JDG 6.5 applications.", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 6.5 (Ephemeral, no https)", "openshift.io/provider-display-name": "Red Hat, Inc." }, @@ -14,7 +14,7 @@ }, "labels": { "template": "datagrid65-basic", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid65-https.json b/addons/xpaas/v3.9/xpaas-templates/datagrid65-https.json index dca183bc97..f4444f13d9 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid65-https.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid65-https.json @@ -6,7 +6,7 @@ "iconClass": "icon-datagrid", "description": "Application template for JDG 6.5 applications.", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 6.5 (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc." }, @@ -14,7 +14,7 @@ }, "labels": { "template": "datagrid65-https", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid65-mysql-persistent.json b/addons/xpaas/v3.9/xpaas-templates/datagrid65-mysql-persistent.json index 29303f0124..f655a0a886 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid65-mysql-persistent.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid65-mysql-persistent.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 6.5 + MySQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "datagrid65-mysql-persistent", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service (using MySQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid65-mysql.json b/addons/xpaas/v3.9/xpaas-templates/datagrid65-mysql.json index 74fe200445..cbaf0b5fd3 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid65-mysql.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid65-mysql.json @@ -6,7 +6,7 @@ "iconClass": "icon-datagrid", "description": "Application template for JDG 6.5 and MySQL applications.", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 6.5 + MySQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc." }, @@ -14,7 +14,7 @@ }, "labels": { "template": "datagrid65-mysql", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service (using MySQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid65-postgresql-persistent.json b/addons/xpaas/v3.9/xpaas-templates/datagrid65-postgresql-persistent.json index b989100d7c..2e304d7900 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid65-postgresql-persistent.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid65-postgresql-persistent.json @@ -6,7 +6,7 @@ "iconClass": "icon-datagrid", "description": "Application template for JDG 6.5 and PostgreSQL applications with persistent storage.", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 6.5 + PostgreSQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -18,7 +18,7 @@ }, "labels": { "template": "datagrid65-postgresql-persistent", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service (using PostgreSQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid65-postgresql.json b/addons/xpaas/v3.9/xpaas-templates/datagrid65-postgresql.json index 9d48c8c235..68987f7909 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid65-postgresql.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid65-postgresql.json @@ -6,7 +6,7 @@ "iconClass": "icon-datagrid", "description": "Application template for JDG 6.5 and PostgreSQL applications built using.", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 6.5 + PostgreSQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc." }, @@ -14,7 +14,7 @@ }, "labels": { "template": "datagrid65-postgresql", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service (using PostgreSQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid71-basic.json b/addons/xpaas/v3.9/xpaas-templates/datagrid71-basic.json index 8f741127cb..188b76467a 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid71-basic.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid71-basic.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 7.1 (Ephemeral, no https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "datagrid71-basic", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid71-https.json b/addons/xpaas/v3.9/xpaas-templates/datagrid71-https.json index 6c5278175e..952f9e866d 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid71-https.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid71-https.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 7.1 (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "datagrid71-https", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid71-mysql-persistent.json b/addons/xpaas/v3.9/xpaas-templates/datagrid71-mysql-persistent.json index 3766ed60e5..94bbffb281 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid71-mysql-persistent.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid71-mysql-persistent.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 7.1 + MySQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "datagrid71-mysql-persistent", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service (using MySQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid71-mysql.json b/addons/xpaas/v3.9/xpaas-templates/datagrid71-mysql.json index 835780b096..6bebf6610c 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid71-mysql.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid71-mysql.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 7.1 + MySQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Data Grid application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "datagrid71-mysql", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service (using MySQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid71-partition.json b/addons/xpaas/v3.9/xpaas-templates/datagrid71-partition.json index a6ccd1c857..eac110083c 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid71-partition.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid71-partition.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 7.1 (Ephemeral, no https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Data Grid application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "datagrid71-partition", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\".", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid71-postgresql-persistent.json b/addons/xpaas/v3.9/xpaas-templates/datagrid71-postgresql-persistent.json index b76a5b2497..c53ae4b9ed 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid71-postgresql-persistent.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid71-postgresql-persistent.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 7.1 + PostgreSQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "datagrid71-postgresql-persistent", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service (using PostgreSQL with persistent storage) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datagrid71-postgresql.json b/addons/xpaas/v3.9/xpaas-templates/datagrid71-postgresql.json index d92da02c46..157e68ae30 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datagrid71-postgresql.json +++ b/addons/xpaas/v3.9/xpaas-templates/datagrid71-postgresql.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-datagrid", "tags": "datagrid,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Grid 7.1 + PostgreSQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Data Grid application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "datagrid71-postgresql", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data grid service (using PostgreSQL) has been created in your project. It supports connector type(s) \"${INFINISPAN_CONNECTORS}\". The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datavirt63-basic-s2i.json b/addons/xpaas/v3.9/xpaas-templates/datavirt63-basic-s2i.json index c52aaaeec1..18d0e211ef 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datavirt63-basic-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/datavirt63-basic-s2i.json @@ -6,7 +6,7 @@ "iconClass": "icon-datavirt", "description": "Application template for JBoss Data Virtualization 6.3 services built using S2I.", "tags": "jdv,datavirt,database,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Virtualization 6.3 (no SSL)", "openshift.io/provider-display-name": "Red Hat, Inc." }, @@ -14,7 +14,7 @@ }, "labels": { "template": "datavirt63-basic-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data service has been created in your project. The username/password for accessing the service is ${TEIID_USERNAME}/${TEIID_PASSWORD}. Please be sure to create the secret named ${CONFIGURATION_NAME} containing the datasource configuration details required by the deployed VDB(s).", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datavirt63-extensions-support-s2i.json b/addons/xpaas/v3.9/xpaas-templates/datavirt63-extensions-support-s2i.json index 81fc63bb8e..e5a692cba3 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datavirt63-extensions-support-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/datavirt63-extensions-support-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-datavirt", "tags": "jdv,datavirt,database,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Virtualization 6.3 (with SSL and Extensions)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Data Virtualization application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "datavirt63-extensions-support-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data service has been created in your project. The username/password for accessing the service is ${TEIID_USERNAME}/${TEIID_PASSWORD}. Please be sure to create the following secrets: \"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed VDB(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/datavirt63-secure-s2i.json b/addons/xpaas/v3.9/xpaas-templates/datavirt63-secure-s2i.json index d2df9bfd7a..79d3521de8 100644 --- a/addons/xpaas/v3.9/xpaas-templates/datavirt63-secure-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/datavirt63-secure-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-datavirt", "tags": "jdv,datavirt,database,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Data Virtualization 6.3 (with SSL)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Data Virtualization application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "datavirt63-secure-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new data service has been created in your project. The username/password for accessing the service is ${TEIID_USERNAME}/${TEIID_PASSWORD}. Please be sure to create the following secrets: \"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed VDB(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/decisionserver64-amq-s2i.json b/addons/xpaas/v3.9/xpaas-templates/decisionserver64-amq-s2i.json index 5a0e57a333..f1da7cdcf7 100644 --- a/addons/xpaas/v3.9/xpaas-templates/decisionserver64-amq-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/decisionserver64-amq-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-decisionserver", "tags": "decisionserver,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss BRMS 6.4 decision server + A-MQ (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example BRMS decision server A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "decisionserver64-amq-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new BRMS/A-MQ application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/decisionserver64-basic-s2i.json b/addons/xpaas/v3.9/xpaas-templates/decisionserver64-basic-s2i.json index ce4a356bcf..244e00b7a4 100644 --- a/addons/xpaas/v3.9/xpaas-templates/decisionserver64-basic-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/decisionserver64-basic-s2i.json @@ -6,14 +6,14 @@ "description": "Application template for Red Hat JBoss BRMS 6.4 decision server applications built using S2I.", "iconClass": "icon-decisionserver", "tags": "decisionserver,jboss,xpaas", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "Red Hat JBoss BRMS 6.4 decision server (no https)" }, "name": "decisionserver64-basic-s2i" }, "labels": { "template": "decisionserver64-basic-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new BRMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/decisionserver64-https-s2i.json b/addons/xpaas/v3.9/xpaas-templates/decisionserver64-https-s2i.json index 581426c150..384277a325 100644 --- a/addons/xpaas/v3.9/xpaas-templates/decisionserver64-https-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/decisionserver64-https-s2i.json @@ -6,7 +6,7 @@ "description": "Application template for Red Hat JBoss BRMS 6.4 decision server HTTPS applications built using S2I.", "iconClass": "icon-decisionserver", "tags": "decisionserver,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss BRMS 6.4 decision server (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example BRMS decision server application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -18,7 +18,7 @@ }, "labels": { "template": "decisionserver64-https-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new BRMS application with SSL support has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap-camel-amq-template.json b/addons/xpaas/v3.9/xpaas-templates/eap-camel-amq-template.json new file mode 100644 index 0000000000..10cc3b325f --- /dev/null +++ b/addons/xpaas/v3.9/xpaas-templates/eap-camel-amq-template.json @@ -0,0 +1,560 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel A-MQ with EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Red Hat Fuse on EAP Camel A-MQ quickstart. This example demonstrates using the camel-activemq component to connect to A-MQ xPaaS message broker running in OpenShift. It is assumed that the broker is already deployed. More more information, refer to the documentation for the A-MQ xPaaS image related to the amq63-basic template.", + "tags": "quickstart,javaee,java,jboss-fuse,fis", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-eap-camel-amq" + }, + "labels": { + "template": "s2i-fuse71-eap-camel-amq" + }, + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APP_NAME", + "value": "s2i-fuse71-eap-camel-amq", + "required": true + }, + { + "displayName": "Application Version", + "description": "The application version.", + "name": "APP_VERSION", + "value": "5.2.0.fuse-710018-redhat-00001", + "required": true + }, + { + "displayName": "Custom http Route Hostname.", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application.", + "name": "GIT_REPO", + "value": "https://github.com/jboss-fuse/wildfly-camel-examples.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "GIT_REF", + "value": "wildfly-camel-examples-5.2.0.fuse-710018-redhat-00001", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Builder version", + "description": "The version of the FIS S2I builder image to use.", + "name": "BUILDER_VERSION", + "value": "1.1" + }, + { + "displayName": "A-MQ Service Prefix", + "description": "The prefix of the TCP service for the A-MQ broker without the protocol part. E.g for broker-amq-tcp the prefix is broker-amq. You may need to create a broker first.", + "name": "MQ_SERVICE_PREFIX", + "value": "broker-amq", + "required": true + }, + { + "displayName": "A-MQ Username", + "description": "The username used to authenticate with the broker. Leave it empty if authentication is disabled.", + "name": "MQ_USERNAME" + }, + { + "displayName": "A-MQ Password", + "description": "The password used to authenticate with the broker. Leave it empty if authentication is disabled.", + "name": "MQ_PASSWORD" + }, + { + "displayName": "JMS Connection Factory JNDI Name", + "description": "JNDI name for connection factory used by applications to connect to the broker, e.g. java:/ActiveMQConnectionFactory", + "name": "MQ_JNDI", + "value": "java:/ActiveMQConnectionFactory", + "required": false + }, + { + "displayName": "Queues", + "description": "Queue names.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the Fuse ImageStreams are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed.", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven Arguments To Append", + "description": "Additional arguments passed to mvn, e.g. for multi-module builds.", + "name": "MAVEN_ARGS_APPEND", + "value": "-pl camel-activemq -am", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds.", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "camel-activemq/target", + "required": false + }, + { + "displayName": "CPU request", + "description": "The amount of CPU to request.", + "name": "CPU_REQUEST", + "value": "0.2", + "required": true + }, + { + "displayName": "CPU limit", + "description": "The amount of CPU the container is limited to use.", + "name": "CPU_LIMIT", + "value": "1.0", + "required": true + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}-ping", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APP_NAME}-http", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APP_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "incremental": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}" + }, + "template": { + "metadata": { + "name": "${APP_NAME}", + "labels": { + "deploymentConfig": "${APP_NAME}", + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APP_NAME}", + "image": "${APP_NAME}", + "imagePullPolicy": "Always", + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APP_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_SERVICE_PREFIX_MAPPING", + "value": "${MQ_SERVICE_PREFIX}=MQ" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "MQ_USERNAME", + "value": "${MQ_USERNAME}" + }, + { + "name": "MQ_PASSWORD", + "value": "${MQ_PASSWORD}" + }, + { + "name": "MQ_JNDI", + "value": "${MQ_JNDI}" + }, + { + "name": "MQ_PROTOCOL", + "value": "tcp" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-templates/eap-camel-cdi-template.json b/addons/xpaas/v3.9/xpaas-templates/eap-camel-cdi-template.json new file mode 100644 index 0000000000..41b17122b2 --- /dev/null +++ b/addons/xpaas/v3.9/xpaas-templates/eap-camel-cdi-template.json @@ -0,0 +1,525 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel CDI with EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Red Hat Fuse on EAP Camel CDI quickstart. This example demonstrates using the camel-cdi component to integrate CDI beans with Camel routes.", + "tags": "quickstart,javaee,java,jboss-fuse,fis", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-eap-camel-cdi" + }, + "labels": { + "template": "s2i-fuse71-eap-camel-cdi" + }, + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APP_NAME", + "value": "s2i-fuse71-eap-camel-cdi", + "required": true + }, + { + "displayName": "Application Version", + "description": "The application version.", + "name": "APP_VERSION", + "value": "5.2.0.fuse-710018-redhat-00001", + "required": true + }, + { + "displayName": "Custom http Route Hostname.", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application.", + "name": "GIT_REPO", + "value": "https://github.com/jboss-fuse/wildfly-camel-examples.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "GIT_REF", + "value": "wildfly-camel-examples-5.2.0.fuse-710018-redhat-00001", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Builder version", + "description": "The version of the FIS S2I builder image to use.", + "name": "BUILDER_VERSION", + "value": "1.1" + }, + { + "displayName": "Queues", + "description": "Queue names.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the Fuse ImageStreams are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed.", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven Arguments To Append", + "description": "Additional arguments passed to mvn, e.g. for multi-module builds.", + "name": "MAVEN_ARGS_APPEND", + "value": "-pl camel-cdi -am", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds.", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "camel-cdi/target", + "required": false + }, + { + "displayName": "CPU request", + "description": "The amount of CPU to request.", + "name": "CPU_REQUEST", + "value": "0.2", + "required": true + }, + { + "displayName": "CPU limit", + "description": "The amount of CPU the container is limited to use.", + "name": "CPU_LIMIT", + "value": "1.0", + "required": true + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}-ping", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APP_NAME}-http", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APP_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "incremental": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}" + }, + "template": { + "metadata": { + "name": "${APP_NAME}", + "labels": { + "deploymentConfig": "${APP_NAME}", + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APP_NAME}", + "image": "${APP_NAME}", + "imagePullPolicy": "Always", + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APP_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-templates/eap-camel-cxf-jaxrs-template.json b/addons/xpaas/v3.9/xpaas-templates/eap-camel-cxf-jaxrs-template.json new file mode 100644 index 0000000000..fd1beb13d0 --- /dev/null +++ b/addons/xpaas/v3.9/xpaas-templates/eap-camel-cxf-jaxrs-template.json @@ -0,0 +1,525 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel CXF JAX-RS with EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Red Hat Fuse on EAP Camel CXF JAX-RS quickstart. This example demonstrates using the camel-cxf component to produce and consume JAX-RS REST services.", + "tags": "quickstart,javaee,java,jboss-fuse,fis", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-eap-camel-cxf-jaxrs" + }, + "labels": { + "template": "s2i-fuse71-eap-camel-cxf-jaxrs" + }, + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APP_NAME", + "value": "s2i-fuse71-eap-camel-cxf-jaxrs", + "required": true + }, + { + "displayName": "Application Version", + "description": "The application version.", + "name": "APP_VERSION", + "value": "5.2.0.fuse-710018-redhat-00001", + "required": true + }, + { + "displayName": "Custom http Route Hostname.", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application.", + "name": "GIT_REPO", + "value": "https://github.com/jboss-fuse/wildfly-camel-examples.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "GIT_REF", + "value": "wildfly-camel-examples-5.2.0.fuse-710018-redhat-00001", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Builder version", + "description": "The version of the FIS S2I builder image to use.", + "name": "BUILDER_VERSION", + "value": "1.1" + }, + { + "displayName": "Queues", + "description": "Queue names.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the Fuse ImageStreams are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed.", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven Arguments To Append", + "description": "Additional arguments passed to mvn, e.g. for multi-module builds.", + "name": "MAVEN_ARGS_APPEND", + "value": "-pl camel-cxf-jaxrs -am", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds.", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "camel-cxf-jaxrs/target", + "required": false + }, + { + "displayName": "CPU request", + "description": "The amount of CPU to request.", + "name": "CPU_REQUEST", + "value": "0.2", + "required": true + }, + { + "displayName": "CPU limit", + "description": "The amount of CPU the container is limited to use.", + "name": "CPU_LIMIT", + "value": "1.0", + "required": true + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}-ping", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APP_NAME}-http", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APP_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "incremental": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}" + }, + "template": { + "metadata": { + "name": "${APP_NAME}", + "labels": { + "deploymentConfig": "${APP_NAME}", + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APP_NAME}", + "image": "${APP_NAME}", + "imagePullPolicy": "Always", + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APP_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-templates/eap-camel-cxf-jaxws-template.json b/addons/xpaas/v3.9/xpaas-templates/eap-camel-cxf-jaxws-template.json new file mode 100644 index 0000000000..99a3950994 --- /dev/null +++ b/addons/xpaas/v3.9/xpaas-templates/eap-camel-cxf-jaxws-template.json @@ -0,0 +1,525 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel CXF JAX-WS with EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Red Hat Fuse on EAP Camel CXF JAX-WS quickstart. This example demonstrates using the camel-cxf component to produce and consume JAX-WS web services.", + "tags": "quickstart,javaee,java,jboss-fuse,fis", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-eap-camel-cxf-jaxws" + }, + "labels": { + "template": "s2i-fuse71-eap-camel-cxf-jaxws" + }, + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APP_NAME", + "value": "s2i-fuse71-eap-camel-cxf-jaxws", + "required": true + }, + { + "displayName": "Application Version", + "description": "The application version.", + "name": "APP_VERSION", + "value": "5.2.0.fuse-710018-redhat-00001", + "required": true + }, + { + "displayName": "Custom http Route Hostname.", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application.", + "name": "GIT_REPO", + "value": "https://github.com/jboss-fuse/wildfly-camel-examples.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "GIT_REF", + "value": "wildfly-camel-examples-5.2.0.fuse-710018-redhat-00001", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Builder version", + "description": "The version of the FIS S2I builder image to use.", + "name": "BUILDER_VERSION", + "value": "1.1" + }, + { + "displayName": "Queues", + "description": "Queue names.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the Fuse ImageStreams are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed.", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven Arguments To Append", + "description": "Additional arguments passed to mvn, e.g. for multi-module builds.", + "name": "MAVEN_ARGS_APPEND", + "value": "-pl camel-cxf-jaxws -am", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds.", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "camel-cxf-jaxws/target", + "required": false + }, + { + "displayName": "CPU request", + "description": "The amount of CPU to request.", + "name": "CPU_REQUEST", + "value": "0.2", + "required": true + }, + { + "displayName": "CPU limit", + "description": "The amount of CPU the container is limited to use.", + "name": "CPU_LIMIT", + "value": "1.0", + "required": true + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}-ping", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APP_NAME}-http", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APP_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + } + ], + "forcePull": true, + "incremental": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}" + }, + "template": { + "metadata": { + "name": "${APP_NAME}", + "labels": { + "deploymentConfig": "${APP_NAME}", + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APP_NAME}", + "image": "${APP_NAME}", + "imagePullPolicy": "Always", + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APP_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-templates/eap-camel-jpa-template.json b/addons/xpaas/v3.9/xpaas-templates/eap-camel-jpa-template.json new file mode 100644 index 0000000000..c02d231741 --- /dev/null +++ b/addons/xpaas/v3.9/xpaas-templates/eap-camel-jpa-template.json @@ -0,0 +1,798 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel JPA + MySQL (Ephemeral) with EAP", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Red Hat Fuse on EAP Camel JPA quickstart. This example demonstrates how to connect a Camel application with Red Hat Fuse on EAP to a MySQL database and expose a REST API. This example creates two containers, one container to run as a MySQL server, and another running the Camel application which acts as as a client to the database.", + "tags": "quickstart,javaee,java,jboss-fuse,fis", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-eap-camel-jpa" + }, + "labels": { + "template": "s2i-fuse71-eap-camel-jpa" + }, + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APP_NAME", + "value": "s2i-fuse71-eap-camel-jpa", + "required": true + }, + { + "displayName": "Application Version", + "description": "The application version.", + "name": "APP_VERSION", + "value": "5.2.0.fuse-710018-redhat-00001", + "required": true + }, + { + "displayName": "Custom http Route Hostname.", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: -.", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Git Repository URL", + "description": "Git source URI for application.", + "name": "GIT_REPO", + "value": "https://github.com/jboss-fuse/wildfly-camel-examples.git", + "required": true + }, + { + "displayName": "Git Reference", + "description": "Git branch/tag reference", + "name": "GIT_REF", + "value": "wildfly-camel-examples-5.2.0.fuse-710018-redhat-00001", + "required": false + }, + { + "displayName": "Context Directory", + "description": "Path within Git project to build; empty for root project directory.", + "name": "CONTEXT_DIR", + "value": "", + "required": false + }, + { + "displayName": "Builder version", + "description": "The version of the FIS S2I builder image to use.", + "name": "BUILDER_VERSION", + "value": "1.1" + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/OrdersDS", + "name": "DB_JNDI", + "value": "java:jboss/datasources/OrdersDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "orders_db", + "required": true + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "MySQL Lower Case Table Names", + "description": "Sets how the table names are stored and compared.", + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "required": false + }, + { + "displayName": "MySQL Maximum number of connections", + "description": "The maximum permitted number of simultaneous client connections.", + "name": "MYSQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "MySQL FullText Minimum Word Length", + "description": "The minimum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MIN_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL FullText Maximum Word Length", + "description": "The maximum length of the word to be included in a FULLTEXT index.", + "name": "MYSQL_FT_MAX_WORD_LEN", + "required": false + }, + { + "displayName": "MySQL AIO", + "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", + "name": "MYSQL_AIO", + "required": false + }, + { + "displayName": "MySQL Image Stream Tag", + "description": "The tag to use for the \"mysql\" image stream. Typically, this aligns with the major.minor version of MySQL.", + "name": "MYSQL_IMAGE_STREAM_TAG", + "value": "5.7", + "required": true + }, + { + "displayName": "Queues", + "description": "Queue names.", + "name": "MQ_QUEUES", + "value": "", + "required": false + }, + { + "displayName": "Topics", + "description": "Topic names.", + "name": "MQ_TOPICS", + "value": "", + "required": false + }, + { + "displayName": "A-MQ cluster password", + "description": "A-MQ cluster admin password.", + "name": "MQ_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Github Webhook Secret", + "description": "GitHub trigger secret.", + "name": "GITHUB_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Generic Webhook Secret", + "description": "Generic build trigger secret.", + "name": "GENERIC_WEBHOOK_SECRET", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the Fuse ImageStreams are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password.", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Deploy Exploded Archives", + "description": "Controls whether exploded deployment content should be automatically deployed.", + "name": "AUTO_DEPLOY_EXPLODED", + "value": "false", + "required": false + }, + { + "displayName": "Maven Arguments To Append", + "description": "Additional arguments passed to mvn, e.g. for multi-module builds.", + "name": "MAVEN_ARGS_APPEND", + "value": "-pl camel-jpa -am", + "required": false + }, + { + "displayName": "Maven mirror URL", + "description": "Maven mirror to use for S2I builds.", + "name": "MAVEN_MIRROR_URL", + "value": "", + "required": false + }, + { + "displayName": "Artifact Directories", + "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.", + "name": "ARTIFACT_DIR", + "value": "camel-jpa/target", + "required": false + }, + { + "displayName": "CPU request", + "description": "The amount of CPU to request.", + "name": "CPU_REQUEST", + "value": "0.2", + "required": true + }, + { + "displayName": "CPU limit", + "description": "The amount of CPU the container is limited to use.", + "name": "CPU_LIMIT", + "value": "1.0", + "required": true + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "1Gi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The web server's http port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}" + } + }, + "metadata": { + "name": "${APP_NAME}-ping", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 3306, + "targetPort": 3306 + } + ], + "selector": { + "deploymentConfig": "${APP_NAME}-mysql" + } + }, + "metadata": { + "name": "${APP_NAME}-mysql", + "labels": { + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APP_NAME}-http", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APP_NAME}" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + }, + "contextDir": "${CONTEXT_DIR}" + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "env": [ + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + }, + { + "name": "MAVEN_MIRROR_URL", + "value": "${MAVEN_MIRROR_URL}" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + } + ], + "forcePull": true, + "incremental": true, + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-eap-openshift:${BUILDER_VERSION}" + } + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + }, + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${GITHUB_WEBHOOK_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${GENERIC_WEBHOOK_SECRET}" + } + }, + { + "type": "ImageChange", + "imageChange": {} + }, + { + "type": "ConfigChange" + } + ] + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}" + }, + "template": { + "metadata": { + "name": "${APP_NAME}", + "labels": { + "deploymentConfig": "${APP_NAME}", + "app": "${APP_NAME}", + "container": "eap", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APP_NAME}", + "image": "${APP_NAME}", + "imagePullPolicy": "Always", + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APP_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APP_NAME}-mysql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APP_NAME}-mysql=DB" + }, + { + "name": "MQ_CLUSTER_PASSWORD", + "value": "${MQ_CLUSTER_PASSWORD}" + }, + { + "name": "MQ_QUEUES", + "value": "${MQ_QUEUES}" + }, + { + "name": "MQ_TOPICS", + "value": "${MQ_TOPICS}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "AUTO_DEPLOY_EXPLODED", + "value": "${AUTO_DEPLOY_EXPLODED}" + } + ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}-mysql", + "labels": { + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}-mysql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "mysql:${MYSQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APP_NAME}-mysql" + }, + "template": { + "metadata": { + "name": "${APP_NAME}-mysql", + "labels": { + "deploymentConfig": "${APP_NAME}-mysql", + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APP_NAME}-mysql", + "image": "mysql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 3306, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", + "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 3306 + } + }, + "env": [ + { + "name": "MYSQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "MYSQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "MYSQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "MYSQL_LOWER_CASE_TABLE_NAMES", + "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" + }, + { + "name": "MYSQL_MAX_CONNECTIONS", + "value": "${MYSQL_MAX_CONNECTIONS}" + }, + { + "name": "MYSQL_FT_MIN_WORD_LEN", + "value": "${MYSQL_FT_MIN_WORD_LEN}" + }, + { + "name": "MYSQL_FT_MAX_WORD_LEN", + "value": "${MYSQL_FT_MAX_WORD_LEN}" + }, + { + "name": "MYSQL_AIO", + "value": "${MYSQL_AIO}" + } + ] + } + ] + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-amq-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-amq-persistent-s2i.json index 3aafba495e..3e39bba16d 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-amq-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-amq-persistent-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 + A-MQ (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-amq-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and A-MQ persistent based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-amq-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-amq-s2i.json index bc90c7af67..758699ae80 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-amq-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-amq-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 + A-MQ (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-amq-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and A-MQ based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-basic-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-basic-s2i.json index eb6d6d8f01..fe88d792dc 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-basic-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-basic-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 (no https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-basic-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 based application has been created in your project.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-https-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-https-s2i.json index 9615011ee0..960b9e3d31 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-https-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-https-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-https-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-mongodb-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-mongodb-persistent-s2i.json index 96cfd71b16..63b845fa99 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-mongodb-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-mongodb-persistent-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 + MongoDB (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a MongoDB database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-mongodb-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and MongoDB persistent based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-mongodb-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-mongodb-s2i.json index d91b3e9156..d809da780e 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-mongodb-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-mongodb-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "Boss EAP 7.0 + MongoDB (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a MongoDB database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-mongodb-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and MongoDB based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-mysql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-mysql-persistent-s2i.json index d12ce83d06..7801eaeb29 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-mysql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-mysql-persistent-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 + MySQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-mysql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and MySQL persistent based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-mysql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-mysql-s2i.json index f830087f6f..8cd7d84b74 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-mysql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-mysql-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 + MySQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-mysql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and MySQL based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-postgresql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-postgresql-persistent-s2i.json index 148030ee8f..a5d6661726 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-postgresql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-postgresql-persistent-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 + PostgreSQL (Persistent with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-postgresql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and PostgreSQL persistent based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-postgresql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-postgresql-s2i.json index bd338fc550..400e287015 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-postgresql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-postgresql-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 + PostgreSQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-postgresql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and PostgreSQL based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-sso-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-sso-s2i.json index 4b861d01de..556371584b 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-sso-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-sso-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 + Single Sign-On (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 Single Sign-On application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-sso-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 based application with SSL and SSO support has been created in your project. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-third-party-db-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-third-party-db-s2i.json index dacc68afcf..10e7a81ad1 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-third-party-db-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-third-party-db-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 (with https, DB drivers)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 DB application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-third-party-db-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the following secrets:\"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed application(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap70-tx-recovery-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap70-tx-recovery-s2i.json index d2ac7edb7e..7d6a0b0548 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap70-tx-recovery-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap70-tx-recovery-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.0 (tx recovery)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap70-tx-recovery-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 based application has been created in your project.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-amq-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-amq-persistent-s2i.json index 51e60cd1ce..007fae34d3 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-amq-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-amq-persistent-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 + A-MQ (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-amq-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and A-MQ persistent based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -489,7 +489,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-amq-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-amq-s2i.json index 99c094bcd1..c174bc4cf1 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-amq-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-amq-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 + A-MQ (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 A-MQ application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-amq-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and A-MQ based application with SSL support has been created in your project. The username/password for accessing the A-MQ service is ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -475,7 +475,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-basic-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-basic-s2i.json index cbc71b7159..e67a597c4b 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-basic-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-basic-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 (no https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-basic-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 based application has been created in your project.", "parameters": [ @@ -263,7 +263,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-https-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-https-s2i.json index 22048af612..43360dcafa 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-https-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-https-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-https-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -380,7 +380,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-mongodb-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-mongodb-persistent-s2i.json index e4f5339bd4..65fc3b8855 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-mongodb-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-mongodb-persistent-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 + MongoDB (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a MongoDB database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-mongodb-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and MongoDB persistent based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -494,7 +494,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-mongodb-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-mongodb-s2i.json index 8abedad281..a3509d3abd 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-mongodb-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-mongodb-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 + MongoDB (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a MongoDB database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-mongodb-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and MongoDB based application with SSL support has been created in your project. The username/password for accessing the MongoDB database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -487,7 +487,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-mysql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-mysql-persistent-s2i.json index 2021039158..e710b23827 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-mysql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-mysql-persistent-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 + MySQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-mysql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and MySQL persistent based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -498,7 +498,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-mysql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-mysql-s2i.json index 6e6b382cab..8d34970dea 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-mysql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-mysql-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 + MySQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-mysql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and MySQL based application with SSL support has been created in your project. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -491,7 +491,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-postgresql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-postgresql-persistent-s2i.json index c35d04ed43..07a7c15037 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-postgresql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-postgresql-persistent-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 + PostgreSQL (Persistent with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-postgresql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and PostgreSQL persistent based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -480,7 +480,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-postgresql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-postgresql-s2i.json index a7b75fa03e..866235fd11 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-postgresql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-postgresql-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 + PostgreSQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-postgresql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 and PostgreSQL based application with SSL support has been created in your project. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -473,7 +473,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-sso-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-sso-s2i.json index f671c32fdc..b55620ec53 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-sso-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-sso-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 + Single Sign-On (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 Single Sign-On application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-sso-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 based application with SSL and SSO support has been created in your project. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -494,7 +494,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" }, "env": [ { diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-third-party-db-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-third-party-db-s2i.json index 7a32f572dd..0bbd89e04a 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-third-party-db-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-third-party-db-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 (with https, DB drivers)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 DB application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-third-party-db-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 based application with SSL support has been created in your project. Please be sure to create the following secrets:\"${CONFIGURATION_NAME}\" containing the datasource configuration details required by the deployed application(s); \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications.", "parameters": [ @@ -427,7 +427,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/eap71-tx-recovery-s2i.json b/addons/xpaas/v3.9/xpaas-templates/eap71-tx-recovery-s2i.json index 0a26d35d3a..6c30271ae0 100644 --- a/addons/xpaas/v3.9/xpaas-templates/eap71-tx-recovery-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/eap71-tx-recovery-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-eap", "tags": "eap,javaee,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss EAP 7.1 (tx recovery)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example EAP 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "eap71-tx-recovery-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new EAP 7 based application has been created in your project.", "parameters": [ @@ -277,7 +277,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "jboss-eap71-openshift:1.2" + "name": "jboss-eap71-openshift:1.3" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-basic-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-basic-s2i.json index 9bc292133a..c6f197f4a9 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-basic-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-basic-s2i.json @@ -7,14 +7,14 @@ "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Application template for JWS applications built using S2I.", "tags": "tomcat,tomcat7,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 (no https)" }, "name": "jws31-tomcat7-basic-s2i" }, "labels": { "template": "jws31-tomcat7-basic-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new JWS application for Apache Tomcat 7 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-https-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-https-s2i.json index f17ad8dc24..4c30589642 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-https-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-https-s2i.json @@ -7,7 +7,7 @@ "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example JBoss Web Server application configured for use with https. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", "tags": "tomcat,tomcat7,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 (with https)", "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 7 based application, including a build configuration, and application deployment configuration. This also illustrations how to connect to the web applicaiton using https.", "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-web-server/", @@ -18,7 +18,7 @@ }, "labels": { "template": "jws31-tomcat7-https-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new JWS application for Apache Tomcat 7 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mongodb-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mongodb-persistent-s2i.json index c1b1a4bc44..49b68456e6 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mongodb-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mongodb-persistent-s2i.json @@ -6,7 +6,7 @@ "iconClass": "icon-rh-tomcat", "openshift.io/provider-display-name": "Red Hat, Inc.", "tags": "tomcat,tomcat7,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 + MongoDB (with https)", "description": "An example JBoss Web Server application with a MongoDB database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 7 based application, including a build configuration, application deployment configuration, database deployment configuration for MongoDB using persistence and secure communication using https.", @@ -17,7 +17,7 @@ }, "labels": { "template": "jws31-tomcat7-mongodb-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent JWS application for Apache Tomcat 7 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mongodb-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mongodb-s2i.json index a291fcb5b3..3990b36357 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mongodb-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mongodb-s2i.json @@ -7,14 +7,14 @@ "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Application template for JWS MongoDB applications built using S2I.", "tags": "tomcat,tomcat7,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 + MongoDB (Ephemeral with https)" }, "name": "jws31-tomcat7-mongodb-s2i" }, "labels": { "template": "jws31-tomcat7-mongodb-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new JWS application for Apache Tomcat 7 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mysql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mysql-persistent-s2i.json index 3d11bd9396..c9247787f1 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mysql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mysql-persistent-s2i.json @@ -6,7 +6,7 @@ "iconClass": "icon-rh-tomcat", "openshift.io/provider-display-name": "Red Hat, Inc.", "tags": "tomcat,tomcat7,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "Red Hat JBoss Web Server 3.1 Apache Tomcat 7 + MySQL (with https)", "description": "An example JBoss Web Server application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 7 based application, including a build configuration, application deployment configuration, database deployment configuration for MySQL using persistence and secure communication using https.", @@ -18,7 +18,7 @@ }, "labels": { "template": "jws31-tomcat7-mysql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent JWS application for Apache Tomcat 7 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mysql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mysql-s2i.json index c8df69f345..4503734973 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mysql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-mysql-s2i.json @@ -7,14 +7,14 @@ "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Application template for JWS MySQL applications built using S2I.", "tags": "tomcat,tomcat7,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 + MySQL (Ephemeral with https)" }, "name": "jws31-tomcat7-mysql-s2i" }, "labels": { "template": "jws31-tomcat7-mysql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new JWS application for Apache Tomcat 7 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-postgresql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-postgresql-persistent-s2i.json index fc99f79bfb..2379acb2f6 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-postgresql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-postgresql-persistent-s2i.json @@ -6,7 +6,7 @@ "iconClass": "icon-rh-tomcat", "openshift.io/provider-display-name": "Red Hat, Inc.", "tags": "tomcat,tomcat7,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 + PostgreSQL (with https)", "description": "An example JBoss Web Server application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 8 based application, including a build configuration, application deployment configuration, database deployment configuration for PostgreSQL using persistence and secure communication using https.", @@ -17,7 +17,7 @@ }, "labels": { "template": "jws31-tomcat7-postgresql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent JWS application for Apache Tomcat 7 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-postgresql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-postgresql-s2i.json index e9e6683935..b2afb5c46f 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-postgresql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat7-postgresql-s2i.json @@ -7,14 +7,14 @@ "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Application template for JWS PostgreSQL applications built using S2I.", "tags": "tomcat,tomcat7,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 7 + PostgreSQL (Ephemeral with https)" }, "name": "jws31-tomcat7-postgresql-s2i" }, "labels": { "template": "jws31-tomcat7-postgresql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new JWS application for Apache Tomcat 7 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-basic-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-basic-s2i.json index fa656f0716..826a5e4e95 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-basic-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-basic-s2i.json @@ -6,7 +6,7 @@ "iconClass": "icon-rh-tomcat", "openshift.io/provider-display-name": "Red Hat, Inc.", "tags": "tomcat,tomcat8,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 (no https)", "description": "An example JBoss Web Server application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 8 based application, including a build configuration, and an application deployment configuration.", @@ -17,7 +17,7 @@ }, "labels": { "template": "jws31-tomcat8-basic-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new JWS application for Apache Tomcat 8 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-https-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-https-s2i.json index e4d2b6f7fc..c4323b4927 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-https-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-https-s2i.json @@ -6,7 +6,7 @@ "iconClass": "icon-rh-tomcat", "openshift.io/provider-display-name": "Red Hat, Inc.", "tags": "tomcat,tomcat8,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 (with https)", "description": "An example JBoss Web Server application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 8 based application, including a build configuration, application deployment configuration, and secure communication using https.", @@ -18,7 +18,7 @@ }, "labels": { "template": "jws31-tomcat8-https-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new JWS application for Apache Tomcat 8 has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mongodb-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mongodb-persistent-s2i.json index 660aec081b..47b130c4c5 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mongodb-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mongodb-persistent-s2i.json @@ -4,7 +4,7 @@ "metadata": { "annotations": { "tags": "tomcat,tomcat8,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "iconClass": "icon-rh-tomcat", "openshift.io/provider-display-name": "Red Hat, Inc.", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 + MongoDB (with https)", @@ -19,7 +19,7 @@ "message": "A new persistent JWS application for Apache Tomcat 8 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "labels": { "template": "jws31-tomcat8-mongodb-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "parameters": [ { diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mongodb-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mongodb-s2i.json index 2754050dcf..615d5c4b7e 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mongodb-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mongodb-s2i.json @@ -7,14 +7,14 @@ "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Application template for JWS MongoDB applications built using S2I.", "tags": "tomcat,tomcat8,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 + MongoDB (Ephemeral with https)" }, "name": "jws31-tomcat8-mongodb-s2i" }, "labels": { "template": "jws31-tomcat8-mongodb-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new JWS application for Apache Tomcat 8 (using MongoDB) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MongoDB database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD} (Admin password is \"${DB_ADMIN_PASSWORD}\"). Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mysql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mysql-persistent-s2i.json index 6dfacdd121..d4bbc98ba8 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mysql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mysql-persistent-s2i.json @@ -6,7 +6,7 @@ "iconClass": "icon-rh-tomcat", "openshift.io/provider-display-name": "Red Hat, Inc.", "tags": "tomcat,tomcat8,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 + MySQL (with https)", "description": "An example JBoss Web Server application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat JBoss Web Server 3.1 Apache Tomcat 8 based application, including a build configuration, application deployment configuration, database deployment configuration for MySQL using persistence and secure communication using https.", @@ -17,7 +17,7 @@ }, "labels": { "template": "jws31-tomcat8-mysql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent JWS application for Apache Tomcat 8 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mysql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mysql-s2i.json index 01977debba..75c2025152 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mysql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-mysql-s2i.json @@ -7,14 +7,14 @@ "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Application template for JWS MySQL applications built using S2I.", "tags": "tomcat,tomcat8,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 + MySQL (Ephemeral with https)" }, "name": "jws31-tomcat8-mysql-s2i" }, "labels": { "template": "jws31-tomcat8-mysql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new JWS application for Apache Tomcat 8 (using MySQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-postgresql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-postgresql-persistent-s2i.json index 835b631976..257d306030 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-postgresql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-postgresql-persistent-s2i.json @@ -7,14 +7,14 @@ "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Application template for JWS PostgreSQL applications with persistent storage built using S2I.", "tags": "tomcat,tomcat8,java,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.1 Apache Tomcat 8 + PostgreSQL (with https)" }, "name": "jws31-tomcat8-postgresql-persistent-s2i" }, "labels": { "template": "jws31-tomcat8-postgresql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent JWS application for Apache Tomcat 8 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-postgresql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-postgresql-s2i.json index b2cb6615b3..3b412e98d0 100644 --- a/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-postgresql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/jws31-tomcat8-postgresql-s2i.json @@ -7,14 +7,14 @@ "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Application template for JWS PostgreSQL applications built using S2I.", "tags": "tomcat,tomcat8,java,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss Web Server 3.0 Apache Tomcat 8 + PostgreSQL (Ephemeral with https)" }, "name": "jws31-tomcat8-postgresql-s2i" }, "labels": { "template": "jws31-tomcat8-postgresql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new JWS application for Apache Tomcat 8 (using PostgreSQL) has been created in your project. The username/password for administering your JWS is ${JWS_ADMIN_USERNAME}/${JWS_ADMIN_PASSWORD}. For accessing the PostgreSQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${JWS_HTTPS_SECRET}\" containing the ${JWS_HTTPS_CERTIFICATE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/karaf-camel-amq-template.json b/addons/xpaas/v3.9/xpaas-templates/karaf-camel-amq-template.json new file mode 100644 index 0000000000..818fee97a6 --- /dev/null +++ b/addons/xpaas/v3.9/xpaas-templates/karaf-camel-amq-template.json @@ -0,0 +1,390 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel A-MQ with Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Camel route using AMQ in Karaf container. This quickstart demonstrates how to use Camel in a Karaf Container using Blueprint to connect to EnMasse (MaaS) and use JMS messaging between two Camel routes. It requires EnMasse to have been deployed and running first.", + "tags": "quickstart,java,karaf,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-karaf-camel-amq" + }, + "labels": { + "template": "s2i-fuse71-karaf-camel-amq" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-karaf-camel-amq", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "value": "https://github.com/fabric8-quickstarts/karaf-camel-amq.git", + "required": true, + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "karaf-camel-amq-1.0.0.fuse-710018-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "SERVICE_NAME", + "displayName": "Service Name", + "value": "s2i-fuse70-karaf-camel-amq", + "description": "Exposed Service name." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710018-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "install -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "AMQP_SERVICE_NAME", + "displayName": "EnMasse Service", + "required": true, + "description": "Set this to the route host name attached to the TCP service of the external 'messaging' route exposed by EnMasse. E.g messaging-enmasse.192.168.64.1.nip.io." + }, + { + "name": "AMQP_USERNAME", + "displayName": "EnMasse Username", + "description": "The username used to authenticate with EnMasse." + }, + { + "name": "AMQP_PASSWORD", + "displayName": "EnMasse Password", + "description": "The password used to authenticate with EnMasse." + }, + { + "name": "AMQP_PARAMETERS", + "displayName": "EnMasse Parameters", + "description": "The parameters passed to EnMasse.", + "value": "transport.trustAll=true&transport.verifyHost=false&amqp.idleTimeout=120000" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "128Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "512Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "container": "karaf", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/readiness-check", + "port" : 8181 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health-check", + "port" : 8181 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8181, + "name": "http" + }, + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + }, { + "name": "AMQP_SERVICE_NAME", + "value": "${AMQP_SERVICE_NAME}" + }, { + "name": "AMQP_USERNAME", + "value": "${AMQP_USERNAME}" + }, { + "name": "AMQP_PASSWORD", + "value": "${AMQP_PASSWORD}" + }, { + "name": "AMQP_PARAMETERS", + "value": "${AMQP_PARAMETERS}" + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-templates/karaf2-camel-amq-template.json b/addons/xpaas/v3.9/xpaas-templates/karaf-camel-log-template.json similarity index 79% rename from addons/xpaas/v3.9/xpaas-templates/karaf2-camel-amq-template.json rename to addons/xpaas/v3.9/xpaas-templates/karaf-camel-log-template.json index 701ab831a2..0b4b9d8cfa 100644 --- a/addons/xpaas/v3.9/xpaas-templates/karaf2-camel-amq-template.json +++ b/addons/xpaas/v3.9/xpaas-templates/karaf-camel-log-template.json @@ -3,53 +3,55 @@ "kind": "Template", "metadata": { "annotations": { - "description": "Camel route using ActiveMQ in Karaf container. This quickstart shows how to use Camel in a Karaf Container using Blueprint to connect to the A-MQ xPaaS message broker on OpenShift that should already be installed, one simple way to run a A-MQ service is following the documentation of the A-MQ xPaaS image for OpenShift related to the amq63-basic template.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel log with Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "A simple Camel route in Karaf container. This quickstart shows a simple Apache Camel application that logs a message to the server log every 5th second.", "tags": "quickstart,java,karaf,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-karaf2-camel-amq" + "name": "s2i-fuse71-karaf-camel-log" }, "labels": { - "template": "s2i-karaf2-camel-amq" + "template": "s2i-fuse71-karaf-camel-log" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-karaf2-camel-amq", + "value": "s2i-fuse71-karaf-camel-log", "description": "The name assigned to the application." }, { "name": "GIT_REPO", "displayName": "Git Repository URL", - "value": "https://github.com/fabric8-quickstarts/karaf2-camel-amq.git", + "value": "https://github.com/fabric8-quickstarts/karaf-camel-log.git", "required": true, "description": "The URL of the repository with your application source code." }, { "name": "GIT_REF", "displayName": "Git Reference", - "value": "karaf2-camel-amq-1.0.0.redhat-000022", + "value": "karaf-camel-log-1.0.0.fuse-710018-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "SERVICE_NAME", "displayName": "Service Name", - "value": "s2i-karaf2-camel-amq", + "value": "s2i-fuse70-karaf-camel-log", "description": "Exposed Service name." }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000022", + "value": "1.0.0.fuse-710018-redhat-00002", "description": "The application version." }, { @@ -82,34 +84,17 @@ "description": "The secret needed to trigger a build.", "from": "[a-zA-Z0-9]{40}" }, - { - "name": "ACTIVEMQ_SERVICE_NAME", - "displayName": "ActiveMQ Broker Service", - "required": true, - "value": "broker-amq-tcp", - "description": "Set this to the name of the TCP service of the ActiveMQ broker. You may need to create a broker first." - }, - { - "name": "ACTIVEMQ_USERNAME", - "displayName": "ActiveMQ Broker Username", - "description": "The username used to authenticate with the ActiveMQ broker. Leave it empty if authentication is disabled." - }, - { - "name": "ACTIVEMQ_PASSWORD", - "displayName": "ActiveMQ Broker Password", - "description": "The password used to authenticate with the ActiveMQ broker. Leave it empty if authentication is disabled." - }, { "name": "CPU_REQUEST", "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." }, { "name": "MEMORY_REQUEST", "displayName": "Memory request", - "value": "1.5G", + "value": "128Mi", "required": true, "description": "The amount of memory required for the container to run." }, @@ -123,9 +108,23 @@ { "name": "MEMORY_LIMIT", "displayName": "Memory limit", - "value": "2G", + "value": "512Mi", "required": true, "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -139,7 +138,7 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -159,7 +158,7 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -199,7 +198,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-karaf-openshift:${BUILDER_VERSION}" + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -229,7 +228,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -245,15 +251,12 @@ "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -278,7 +281,7 @@ "container": "karaf", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -290,7 +293,7 @@ "container": "karaf", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -331,15 +334,6 @@ "fieldPath" : "metadata.namespace" } } - }, { - "name": "ACTIVEMQ_SERVICE_NAME", - "value": "${ACTIVEMQ_SERVICE_NAME}" - }, { - "name": "ACTIVEMQ_USERNAME", - "value": "${ACTIVEMQ_USERNAME}" - }, { - "name": "ACTIVEMQ_PASSWORD", - "value": "${ACTIVEMQ_PASSWORD}" } ], "resources": { "requests": { diff --git a/addons/xpaas/v3.9/xpaas-templates/karaf-camel-rest-sql-template.json b/addons/xpaas/v3.9/xpaas-templates/karaf-camel-rest-sql-template.json new file mode 100644 index 0000000000..cae03d0f5b --- /dev/null +++ b/addons/xpaas/v3.9/xpaas-templates/karaf-camel-rest-sql-template.json @@ -0,0 +1,441 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel REST SQL with Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Camel example using Rest DSL with SQL Database in Karaf container. This example demonstrates how to use SQL via JDBC along with Camel's REST DSL to expose a RESTful API. The OpenShift MySQL container image should already be installed and running on your OpenShift installation, one simple way to run a MySQL service is following the documentation of the OpenShift MySQL container image related to the mysql-ephemeral template..", + "tags": "quickstart,java,karaf,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-karaf-camel-rest-sql" + }, + "labels": { + "template": "s2i-fuse71-karaf-camel-rest-sql" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-karaf-camel-rest-sql", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "value": "https://github.com/fabric8-quickstarts/karaf-camel-rest-sql.git", + "required": true, + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "karaf-camel-rest-sql-1.0.0.fuse-710018-redhat-00002", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "SERVICE_NAME", + "displayName": "Service Name", + "value": "s2i-karaf-camel-rest", + "description": "Exposed Service name." + }, + { + "name": "MYSQL_SERVICE_NAME", + "displayName": "MySQL Server Service", + "required": true, + "value": "mysql", + "description": "Set this to the name of the TCP service of the MySQL server. You may need to create a server first." + }, + { + "name": "MYSQL_SERVICE_DATABASE", + "displayName": "MySQL Server Database", + "required": true, + "value": "sampledb", + "description": "The database hosted by the MySQL server to be used by the application." + }, + { + "name": "MYSQL_SERVICE_USERNAME", + "displayName": "MySQL Server Username", + "description": "The username used to authenticate with the MySQL server. Leave it empty if authentication is disabled." + }, + { + "name": "MYSQL_SERVICE_PASSWORD", + "displayName": "MySQL Server Password", + "description": "The password used to authenticate with the MySQL server. Leave it empty if authentication is disabled." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710018-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "install -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "128Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "512Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "apiVersion": "v1", + "kind": "Route", + "metadata": { + "labels": { + "container": "karaf", + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}-route" + }, + "spec": { + "to": { + "kind": "Service", + "name": "${SERVICE_NAME}" + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "annotations": { + }, + "labels": { + "container": "karaf", + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}" + }, + "spec": { + "clusterIP": "None", + "deprecatedPublicIPs": [], + "ports": [ + { + "port": 9411, + "protocol": "TCP", + "targetPort": 8181 + } + ], + "selector": { + "container": "karaf", + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "container": "karaf", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/readiness-check", + "port" : 8181 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health-check", + "port" : 8181 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8181, + "name": "http" + }, + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + } , { + "name": "MYSQL_SERVICE_NAME", + "value": "${MYSQL_SERVICE_NAME}" + }, { + "name": "MYSQL_SERVICE_DATABASE", + "value": "${MYSQL_SERVICE_DATABASE}" + }, { + "name": "MYSQL_SERVICE_USERNAME", + "value": "${MYSQL_SERVICE_USERNAME}" + }, { + "name": "MYSQL_SERVICE_PASSWORD", + "value": "${MYSQL_SERVICE_PASSWORD}" + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-templates/karaf-cxf-rest-template.json b/addons/xpaas/v3.9/xpaas-templates/karaf-cxf-rest-template.json new file mode 100644 index 0000000000..2fa87c8427 --- /dev/null +++ b/addons/xpaas/v3.9/xpaas-templates/karaf-cxf-rest-template.json @@ -0,0 +1,405 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel CXF REST with Karaf", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "REST example using CXF in Karaf container. This quickstart demonstrates how to create a RESTful (JAX-RS) web service using CXF and expose it through the OSGi HTTP Service", + "tags": "quickstart,java,karaf,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-karaf-cxf-rest" + }, + "labels": { + "template": "s2i-fuse71-karaf-cxf-rest" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-karaf-cxf-rest", + "description": "The name assigned to the application." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "value": "https://github.com/fabric8-quickstarts/karaf-cxf-rest.git", + "required": true, + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "karaf-cxf-rest-1.0.0.fuse-710018-redhat-00003", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "SERVICE_NAME", + "displayName": "Service Name", + "value": "s2i-fuse70-karaf-cxf-rest", + "description": "Exposed Service name." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the FIS S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710018-redhat-00002", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "install -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "128Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "512Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "apiVersion": "v1", + "kind": "Route", + "metadata": { + "labels": { + "container": "java", + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}-route" + }, + "spec": { + "to": { + "kind": "Service", + "name": "${SERVICE_NAME}" + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "annotations": { + }, + "labels": { + "container": "karaf", + "component": "${APP_NAME}", + "provider": "s2i", + "app": "${APP_NAME}", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${SERVICE_NAME}" + }, + "spec": { + "clusterIP": "None", + "deprecatedPublicIPs": [], + "ports": [ + { + "port": 9412, + "protocol": "TCP", + "targetPort": 8181 + } + ], + "selector": { + "container": "karaf", + "app": "${APP_NAME}", + "component": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + } + }, + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": {}, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-karaf-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APP_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + } + } + ], + "replicas": 1, + "selector": { + "component": "${APP_NAME}", + "container": "karaf", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "template": { + "metadata": { + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "container": "karaf", + "deploymentconfig": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "containers": [ + { + "name": "${APP_NAME}", + "image": "library/${APP_NAME}:latest", + "readinessProbe" : { + "httpGet" : { + "path" : "/readiness-check", + "port" : 8181 + }, + "initialDelaySeconds" : 10 + }, + "livenessProbe" : { + "httpGet" : { + "path" : "/health-check", + "port" : 8181 + }, + "initialDelaySeconds" : 180 + }, + "ports": [ + { + "containerPort": 8181, + "name": "http" + }, + { + "containerPort": 8778, + "name": "jolokia" + } + ], + "env" : [ { + "name" : "KUBERNETES_NAMESPACE", + "valueFrom" : { + "fieldRef" : { + "fieldPath" : "metadata.namespace" + } + } + } ], + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + } + } + ] + } + } + }, + "status": {} + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-mysql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-mysql-persistent-s2i.json index e23da01eca..b2bdeede9d 100644 --- a/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-mysql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-mysql-persistent-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-processserver", "tags": "processserver,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + A-MQ + MySQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example BPM Suite application with A-MQ and a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "processserver64-amq-mysql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent BPMS application (using MySQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-mysql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-mysql-s2i.json index 2ceab77d8c..c8df508c41 100644 --- a/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-mysql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-mysql-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-processserver", "tags": "processserver,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + A-MQ + MySQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example BPM Suite application with A-MQ and a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "processserver64-amq-mysql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new BPMS application (using MySQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-postgresql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-postgresql-persistent-s2i.json index 456b6f502e..1a04345b24 100644 --- a/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-postgresql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-postgresql-persistent-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-processserver", "tags": "processserver,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + A-MQ + PostgreSQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example BPM Suite application with A-MQ and a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "processserver64-amq-postgresql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent BPMS application (using PostgreSQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-postgresql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-postgresql-s2i.json index 18ae15ece3..44630c9b82 100644 --- a/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-postgresql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/processserver64-amq-postgresql-s2i.json @@ -6,7 +6,7 @@ "description": "Application template for Red Hat JBoss BPM Suite 6.4 intelligent process server AMQ and PostgreSQL applications built using S2I.", "iconClass": "icon-processserver", "tags": "processserver,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + A-MQ + PostgreSQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example BPM Suite application with A-MQ and a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -18,7 +18,7 @@ }, "labels": { "template": "processserver64-amq-postgresql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new BPMS application (using PostgreSQL and A-MQ) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. And for the A-MQ service use the credentials ${MQ_USERNAME}/${MQ_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/processserver64-basic-s2i.json b/addons/xpaas/v3.9/xpaas-templates/processserver64-basic-s2i.json index c7988f5bd6..cd02c25d98 100644 --- a/addons/xpaas/v3.9/xpaas-templates/processserver64-basic-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/processserver64-basic-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-processserver", "tags": "processserver,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server (no https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example BPM Suite application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "processserver64-basic-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new BPMS application has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/processserver64-mysql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/processserver64-mysql-persistent-s2i.json index 2f4f7c3333..f7718362a3 100644 --- a/addons/xpaas/v3.9/xpaas-templates/processserver64-mysql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/processserver64-mysql-persistent-s2i.json @@ -6,7 +6,7 @@ "description": "Application template for Red Hat JBoss BPM Suite 6.4 intelligent process server MySQL applications with persistent storage built using S2I.", "iconClass": "icon-processserver", "tags": "processserver,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + MySQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example BPM Suite application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -18,7 +18,7 @@ }, "labels": { "template": "processserver64-mysql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent BPMS application (using MySQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/processserver64-mysql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/processserver64-mysql-s2i.json index e38c4552f2..327b01aa0b 100644 --- a/addons/xpaas/v3.9/xpaas-templates/processserver64-mysql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/processserver64-mysql-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-processserver", "tags": "processserver,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + MySQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example BPM Suite application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "processserver64-mysql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new BPMS application (using MySQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/processserver64-postgresql-persistent-s2i.json b/addons/xpaas/v3.9/xpaas-templates/processserver64-postgresql-persistent-s2i.json index e285f3f012..c3b5a3b701 100644 --- a/addons/xpaas/v3.9/xpaas-templates/processserver64-postgresql-persistent-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/processserver64-postgresql-persistent-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-processserver", "tags": "processserver,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + PostgreSQL (with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example BPM Suite application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "processserver64-postgresql-persistent-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent BPMS application (using PostgreSQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/processserver64-postgresql-s2i.json b/addons/xpaas/v3.9/xpaas-templates/processserver64-postgresql-s2i.json index dd3bc10fb4..d31ac90be8 100644 --- a/addons/xpaas/v3.9/xpaas-templates/processserver64-postgresql-s2i.json +++ b/addons/xpaas/v3.9/xpaas-templates/processserver64-postgresql-s2i.json @@ -5,7 +5,7 @@ "annotations": { "iconClass": "icon-processserver", "tags": "processserver,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "JBoss BPM Suite 6.4 intelligent process server + PostgreSQL (Ephemeral with https)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example BPM Suite application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "processserver64-postgresql-s2i", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new BPMS application (using PostgreSQL) has been created in your project. The username/password for accessing the KIE Server REST or JMS interface is ${KIE_SERVER_USER}/${KIE_SERVER_PASSWORD}. For accessing the MySQL database \"${DB_DATABASE}\" use the credentials ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the secret named \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content.", "parameters": [ diff --git a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-amq-template.json b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-amq-template.json index a0f45fbb84..20fa19f49d 100644 --- a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-amq-template.json +++ b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-amq-template.json @@ -3,22 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "description": "Spring Boot, Camel and ActiveMQ QuickStart. This quickstart demonstrates how to connect a Spring-Boot application to an ActiveMQ broker and use JMS messaging between two Camel routes using OpenShift. In this example we will use two containers, one container to run as a ActiveMQ broker, and another as a client to the broker, where the Camel routes are running. This quickstart requires the ActiveMQ broker has been deployed and running first, one simple way to run a A-MQ service is following the documentation of the A-MQ xPaaS image for OpenShift related to the amq63-basic template", + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel A-MQ with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel and ActiveMQ QuickStart. This quickstart demonstrates how to connect a Spring Boot application to an ActiveMQ broker and use JMS messaging between two Camel routes using OpenShift. In this example we will use two containers, one container to run as a ActiveMQ broker, and another as a client to the broker, where the Camel routes are running. This quickstart requires the ActiveMQ broker has been deployed and running first, one simple way to run a A-MQ service is following the documentation of the A-MQ xPaaS image for OpenShift related to the amq63-basic template", "tags": "quickstart,java,springboot,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-spring-boot-camel-amq" + "name": "s2i-fuse71-spring-boot-camel-amq" }, "labels": { - "template": "s2i-spring-boot-camel-amq" + "template": "s2i-fuse71-spring-boot-camel-amq" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-spring-boot-camel-amq", + "value": "s2i-fuse71-spring-boot-camel-amq", "description": "The name assigned to the application." }, { @@ -31,36 +33,36 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-amq-1.0.0.redhat-000067", + "value": "spring-boot-camel-amq-1.0.0.fuse-710017-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { - "name": "ACTIVEMQ_SERVICE_NAME", + "name": "AMQP_HOST", "displayName": "ActiveMQ Broker Service", "required": true, - "value": "broker-amq-tcp", - "description": "Set this to the name of the TCP service of the ActiveMQ broker. You may need to create a broker first." + "value": "broker-amq-amqp", + "description": "Set this to the name of the AMQP service of the ActiveMQ broker. You may need to create a broker first." }, { - "name": "ACTIVEMQ_BROKER_USERNAME", + "name": "AMQP_USERNAME", "displayName": "ActiveMQ Broker Username", "description": "The username used to authenticate with the ActiveMQ broker. Leave it empty if authentication is disabled." }, { - "name": "ACTIVEMQ_BROKER_PASSWORD", + "name": "AMQP_PASSWORD", "displayName": "ActiveMQ Broker Password", "description": "The password used to authenticate with the ActiveMQ broker. Leave it empty if authentication is disabled." }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000067", + "value": "1.0.0.fuse-710017-redhat-00002", "description": "The application version." }, { @@ -98,7 +100,14 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." }, { "name": "CPU_LIMIT", @@ -106,6 +115,27 @@ "value": "1.0", "required": true, "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -118,7 +148,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -137,7 +167,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -177,7 +207,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -207,7 +237,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -222,15 +259,12 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -254,7 +288,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -265,7 +299,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -303,21 +337,23 @@ } } } , { - "name": "ACTIVEMQ_SERVICE_NAME", - "value": "${ACTIVEMQ_SERVICE_NAME}" + "name": "AMQP_HOST", + "value": "${AMQP_HOST}" }, { - "name": "ACTIVEMQ_BROKER_USERNAME", - "value": "${ACTIVEMQ_BROKER_USERNAME}" + "name": "AMQP_USERNAME", + "value": "${AMQP_USERNAME}" }, { - "name": "ACTIVEMQ_BROKER_PASSWORD", - "value": "${ACTIVEMQ_BROKER_PASSWORD}" + "name": "AMQP_PASSWORD", + "value": "${AMQP_PASSWORD}" } ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-config-template.json b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-config-template.json index 10f0a5f876..f163506120 100644 --- a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-config-template.json +++ b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-config-template.json @@ -3,22 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "description": "Spring Boot and Camel using ConfigMaps and Secrets. This quickstart demonstrates how to configure a Spring-Boot application using OpenShift ConfigMaps and Secrets. This example requires that a ConfigMap named camel-config and a Secret named camel-config are present in the namespace before the application is deployed, instruction about how to manually create them can be found here: https://github.com/fabric8-quickstarts/spring-boot-camel-config/blob/fis-2.0.x.redhat/README.redhat.md ", + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel + ConfigMap with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot and Camel using ConfigMaps and Secrets. This quickstart demonstrates how to configure a Spring Boot application using OpenShift ConfigMaps and Secrets. This example requires that a ConfigMap named camel-config and a Secret named camel-config are present in the namespace before the application is deployed, instruction about how to manually create them can be found here: https://github.com/fabric8-quickstarts/spring-boot-camel-config/blob/spring-boot-camel-config-1.0.0.fuse-710017-redhat-00002/README.md ", "tags": "quickstart,java,springboot,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-spring-boot-camel-config" + "name": "s2i-fuse71-spring-boot-camel-config" }, "labels": { - "template": "s2i-spring-boot-camel-config" + "template": "s2i-fuse71-spring-boot-camel-config" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-spring-boot-camel-config", + "value": "s2i-fuse71-spring-boot-camel-config", "description": "The name assigned to the application." }, { @@ -31,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-config-1.0.0.redhat-000017", + "value": "spring-boot-camel-config-1.0.0.fuse-710017-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -39,32 +41,32 @@ "displayName": "Service Account", "value": "qs-camel-config", "required": true, - "description": "The Service Account that will be used to run the container. It must be already present in Openshift and have the view role." + "description": "The Service Account that will be used to run the container. It must be already present in OpenShift and have the view role." }, { "name": "SECRET_NAME", "displayName": "Secret Name", "value": "camel-config", "required": true, - "description": "The name of the Openshift Secret that will be used to configure the application. It must be already present in Openshift." + "description": "The name of the OpenShift Secret that will be used to configure the application. It must be already present in OpenShift." }, { "name": "CONFIGMAP_NAME", "displayName": "ConfigMap Name", "value": "camel-config", "required": true, - "description": "The name of the Openshift ConfigMap that will be used to configure the application. It must be already present in Openshift." + "description": "The name of the OpenShift ConfigMap that will be used to configure the application. It must be already present in OpenShift." }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000017", + "value": "1.0.0.fuse-710017-redhat-00002", "description": "The application version." }, { @@ -96,6 +98,48 @@ "generate": "expression", "description": "The secret needed to trigger a build.", "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -108,7 +152,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -127,7 +171,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -167,7 +211,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -197,7 +241,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -212,15 +263,12 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -244,7 +292,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -255,7 +303,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -308,7 +356,16 @@ "name": "SPRING_CLOUD_KUBERNETES_CONFIG_NAME", "value": "${CONFIGMAP_NAME}" } ], - "resources": {}, + "resources": { + "requests": { + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" + }, + "limits": { + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" + } + }, "volumeMounts": [ { "name": "camel-config", diff --git a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-drools-template.json b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-drools-template.json index 272c880ecf..0d06c67fca 100644 --- a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-drools-template.json +++ b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-drools-template.json @@ -3,22 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "description": "Spring-Boot, Camel and JBoss BRMS QuickStart. This example demonstrates how you can use Apache Camel and JBoss BRMS with Spring Boot on OpenShift. DRL files contain simple rules which are used to create knowledge session via Spring configuration file. Camel routes, defined via Spring as well, are then used to e.g. pass (insert) the Body of the message as a POJO to Drools engine for execution. A Kie Server should be deployed and configured before running the application, more information about how to configure it can be found at https://github.com/fabric8-quickstarts/spring-boot-camel-drools/blob/fis-2.0.x.redhat/README.redhat.md", + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel + Drools with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel and JBoss BRMS QuickStart. This example demonstrates how you can use Apache Camel and JBoss BRMS with Spring Boot on OpenShift. Camel routes, defined via Spring, are used to pass (insert) the Body of the message as a POJO to a Drools engine for execution. A Kie Server should be deployed and configured before running the application, more information about how to configure it can be found at https://github.com/fabric8-quickstarts/spring-boot-camel-drools/blob/spring-boot-camel-drools-1.0.0.fuse-710017-redhat-00002/README.md", "tags": "quickstart,java,springboot,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-spring-boot-camel-drools" + "name": "s2i-fuse71-spring-boot-camel-drools" }, "labels": { - "template": "s2i-spring-boot-camel-drools" + "template": "s2i-fuse71-spring-boot-camel-drools" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-spring-boot-camel-drools", + "value": "s2i-fuse71-spring-boot-camel-drools", "description": "The name assigned to the application." }, { @@ -31,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-drools-1.0.0.redhat-000066", + "value": "spring-boot-camel-drools-1.0.0.fuse-710017-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -57,13 +59,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000066", + "value": "1.0.0.fuse-710017-redhat-00002", "description": "The application version." }, { @@ -101,7 +103,14 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." }, { "name": "CPU_LIMIT", @@ -109,6 +118,27 @@ "value": "1.0", "required": true, "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -121,7 +151,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -140,7 +170,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -180,7 +210,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -210,7 +240,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -225,15 +262,12 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -257,7 +291,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -268,7 +302,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -317,10 +351,12 @@ } ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-infinispan-template.json b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-infinispan-template.json index 31172f2652..84f394e3f3 100644 --- a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-infinispan-template.json +++ b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-infinispan-template.json @@ -3,22 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "description": "Spring Boot, Camel and JBoss Data Grid QuickStart. This quickstart demonstrates how to connect a Spring-Boot application to a JBoss Data Grid (or Infinispan) server using the Hot Rod protocol. It requires that the data grid server (or cluster) has been deployed first, one simple way to run a JDG service is following the documentation of the JDG xPaaS image for OpenShift related to the datagrid65-basic template.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel + JDG with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel and JBoss Data Grid QuickStart. This quickstart demonstrates how to connect a Spring Boot application to a JBoss Data Grid (or Infinispan) server using the Hot Rod protocol. It requires that the data grid server (or cluster) has been deployed first, one simple way to run a JDG service is following the documentation of the JDG xPaaS image for OpenShift related to the datagrid65-basic template.", "tags": "quickstart,java,springboot,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-spring-boot-camel-infinispan" + "name": "s2i-fuse71-spring-boot-camel-infinispan" }, "labels": { - "template": "s2i-spring-boot-camel-infinispan" + "template": "s2i-fuse71-spring-boot-camel-infinispan" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-spring-boot-camel-infinispan", + "value": "s2i-fuse71-spring-boot-camel-infinispan", "description": "The name assigned to the application." }, { @@ -31,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-infinispan-1.0.0.redhat-000036", + "value": "spring-boot-camel-infinispan-1.0.0.fuse-710017-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -44,13 +46,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000036", + "value": "1.0.0.fuse-710017-redhat-00002", "description": "The application version." }, { @@ -88,7 +90,14 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." }, { "name": "CPU_LIMIT", @@ -96,6 +105,27 @@ "value": "1.0", "required": true, "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -108,7 +138,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -127,7 +157,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -167,7 +197,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -197,7 +227,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -212,15 +249,12 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -244,7 +278,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -255,7 +289,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -298,10 +332,12 @@ } ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-rest-sql-template.json b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-rest-sql-template.json index 9fa8453d1c..2c051794ee 100644 --- a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-rest-sql-template.json +++ b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-rest-sql-template.json @@ -3,22 +3,24 @@ "kind": "Template", "metadata": { "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel REST SQL with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "Spring Boot, Camel REST DSL and MySQL QuickStart. This quickstart demonstrates how to connect a Spring Boot application to a MySQL database and expose a REST API with Camel on OpenShift. In this example we will use two containers, one container to run as a MySQL server, and another as a client to the database, where the Camel routes are running. This quickstart requires the MySQL server to be deployed and started first, one simple way to run a MySQL service is following the documentation of the OpenShift MySQL container image related to the mysql-ephemeral template.", "tags": "quickstart,java,springboot,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-spring-boot-camel-rest-sql" + "name": "s2i-fuse71-spring-boot-camel-rest-sql" }, "labels": { - "template": "s2i-spring-boot-camel-rest-sql" + "template": "s2i-fuse71-spring-boot-camel-rest-sql" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-spring-boot-camel-rest-sql", + "value": "s2i-fuse71-spring-boot-camel-rest-sql", "description": "The name assigned to the application." }, { @@ -31,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-rest-sql-1.0.0.redhat-000067", + "value": "spring-boot-camel-rest-sql-1.0.0.fuse-710017-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -66,13 +68,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000067", + "value": "1.0.0.fuse-710017-redhat-00002", "description": "The application version." }, { @@ -110,7 +112,14 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." }, { "name": "CPU_LIMIT", @@ -118,6 +127,27 @@ "value": "1.0", "required": true, "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -128,7 +158,7 @@ "labels": { "component": "${APP_NAME}", "provider": "s2i", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, @@ -150,7 +180,7 @@ "labels": { "component": "${APP_NAME}", "provider": "s2i", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, @@ -167,7 +197,7 @@ } ], "selector": { - "project": "${APP_NAME}", + "app": "${APP_NAME}", "component": "${APP_NAME}", "provider": "s2i", "group": "quickstarts" @@ -183,7 +213,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -202,7 +232,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -242,7 +272,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -272,7 +302,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -287,15 +324,12 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -319,7 +353,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -330,7 +364,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -386,10 +420,12 @@ } ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-teiid-template.json b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-teiid-template.json index 7c6d5d1073..de52297003 100644 --- a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-teiid-template.json +++ b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-teiid-template.json @@ -3,22 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "description": "Spring-Boot, Camel and JBoss Data Virtualization QuickStart. This example demonstrates how to connect Apache Camel to a remote JBoss Data Virtualization (or Teiid) Server using the JDBC protocol. This quickstart assumes that the JDV server is already running and configured on OpenShift, more information about to setup a JDV server can be found at https://github.com/fabric8-quickstarts/spring-boot-camel-teiid/blob/fis-2.0.x.redhat/README.redhat.md", + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel + JDV with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel and JBoss Data Virtualization QuickStart. This example demonstrates how to connect Apache Camel to a remote JBoss Data Virtualization (or Teiid) Server using the JDBC protocol. This quickstart assumes that the JDV server is already running and configured on OpenShift, more information about to setup a JDV server can be found at https://github.com/fabric8-quickstarts/spring-boot-camel-teiid/blob/spring-boot-camel-teiid-1.0.0.fuse-710017-redhat-00002/README.md", "tags": "quickstart,java,springboot,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-spring-boot-camel-teiid" + "name": "s2i-fuse71-spring-boot-camel-teiid" }, "labels": { - "template": "s2i-spring-boot-camel-teiid" + "template": "s2i-fuse71-spring-boot-camel-teiid" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-spring-boot-camel-teiid", + "value": "s2i-fuse71-spring-boot-camel-teiid", "description": "The name assigned to the application." }, { @@ -31,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-teiid-1.0.0.redhat-000065", + "value": "spring-boot-camel-teiid-1.0.0.fuse-710017-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -62,13 +64,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000065", + "value": "1.0.0.fuse-710017-redhat-00002", "description": "The application version." }, { @@ -106,7 +108,14 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." }, { "name": "CPU_LIMIT", @@ -114,6 +123,27 @@ "value": "1.0", "required": true, "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -126,7 +156,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -145,7 +175,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -185,7 +215,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -215,7 +245,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -230,15 +267,12 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -262,7 +296,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -273,7 +307,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -326,10 +360,12 @@ }], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-template.json b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-template.json index fe90148c36..b6455f8be2 100644 --- a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-template.json +++ b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-template.json @@ -3,22 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "description": "Spring-Boot and Camel QuickStart. This example demonstrates how you can use Apache Camel with Spring Boot on Openshift. The quickstart uses Spring Boot to configure a little application that includes a Camel route that triggeres a message every 5th second, and routes the message to a log.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot and Camel QuickStart. This example demonstrates how you can use Apache Camel with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure an application which includes a Camel route that triggers a message every 5th second, and routes the message to a log.", "tags": "quickstart,java,springboot,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-spring-boot-camel" + "name": "s2i-fuse71-spring-boot-camel" }, "labels": { - "template": "s2i-spring-boot-camel" + "template": "s2i-fuse71-spring-boot-camel" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-spring-boot-camel", + "value": "s2i-fuse71-spring-boot-camel", "description": "The name assigned to the application." }, { @@ -31,19 +33,19 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-1.0.0.redhat-000067", + "value": "spring-boot-camel-1.0.0.fuse-710017-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000067", + "value": "1.0.0.fuse-710017-redhat-00002", "description": "The application version." }, { @@ -81,7 +83,14 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." }, { "name": "CPU_LIMIT", @@ -89,6 +98,27 @@ "value": "1.0", "required": true, "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -101,7 +131,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -120,7 +150,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -160,7 +190,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -190,7 +220,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -205,15 +242,12 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -237,7 +271,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -248,7 +282,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -288,10 +322,12 @@ } ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-xa-template.json b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-xa-template.json new file mode 100644 index 0000000000..fc47a33ebb --- /dev/null +++ b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-xa-template.json @@ -0,0 +1,591 @@ +{ + "apiVersion": "v1", + "kind": "Template", + "metadata": { + "annotations": { + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel on Spring Boot with XA Transactions", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot, Camel and XA Transactions. This example demonstrates how to run a Camel Service on Spring-Boot that supports XA transactions on two external transactional resources: a JMS resource (A-MQ) and a database (PostgreSQL). This quickstart requires the PostgreSQL database and the A-MQ broker have been deployed and running first, one simple way to run them is to use the templates provided in the Openshift service catalog", + "tags": "quickstart,java,springboot,fis,jboss-fuse", + "iconClass": "icon-rh-integration", + "version": "1.1" + }, + "name": "s2i-fuse71-spring-boot-camel-xa" + }, + "labels": { + "template": "s2i-fuse71-spring-boot-camel-xa" + }, + "parameters": [ + { + "name": "APP_NAME", + "displayName": "Application Name", + "required": true, + "value": "s2i-fuse71-xa", + "description": "The name assigned to the application (max 20 characters)." + }, + { + "name": "GIT_REPO", + "displayName": "Git Repository URL", + "required": true, + "value": "https://github.com/jboss-fuse/spring-boot-camel-xa.git", + "description": "The URL of the repository with your application source code." + }, + { + "name": "GIT_REF", + "displayName": "Git Reference", + "value": "spring-boot-camel-xa-1.0.0.fuse-710006-redhat-00003", + "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." + }, + { + "name": "BROKER_HOST", + "displayName": "A-MQ Broker Service", + "required": true, + "value": "broker-amq-tcp", + "description": "Set this to the name of the TCP service of the A-MQ broker. You may need to create a broker first." + }, + { + "name": "BROKER_USERNAME", + "displayName": "A-MQ Broker Username", + "required": true, + "description": "The username used to authenticate with the A-MQ broker." + }, + { + "name": "BROKER_PASSWORD", + "displayName": "A-MQ Broker Password", + "required": true, + "description": "The password used to authenticate with the A-MQ broker." + }, + { + "name": "DATABASE_HOST", + "displayName": "PostgreSQL Service", + "required": true, + "value": "postgresql", + "description": "Set this to the name of the PostgreSQL service. You may need to create the database first." + }, + { + "name": "DATABASE_USERNAME", + "displayName": "PostgreSQL Username", + "required": true, + "description": "The username used to authenticate with the PostgreSQL database." + }, + { + "name": "DATABASE_PASSWORD", + "displayName": "PostgreSQL Password", + "required": true, + "description": "The password used to authenticate with the PostgreSQL database." + }, + { + "name": "VOLUME_SIZE", + "displayName": "Volume size for transaction log", + "required": true, + "value": "1Gi", + "description": "The size of the volume used to store the transaction log." + }, + { + "name": "BUILDER_VERSION", + "displayName": "Builder version", + "value": "1.1", + "description": "The version of the Fuse S2I builder image to use." + }, + { + "name": "APP_VERSION", + "displayName": "Application Version", + "value": "1.0.0.fuse-710006-redhat-00003", + "description": "The application version." + }, + { + "name": "MAVEN_ARGS", + "displayName": "Maven Arguments", + "value": "package -DskipTests -Dfabric8.skip -e -B", + "description": "Arguments passed to mvn in the build." + }, + { + "name": "MAVEN_ARGS_APPEND", + "displayName": "Extra Maven Arguments", + "description": "Extra arguments passed to mvn, e.g. for multi-module builds." + }, + { + "name": "ARTIFACT_DIR", + "displayName": "Maven build directory", + "description": "Directory of the artifact to be built, e.g. for multi-module builds." + }, + { + "name": "IMAGE_STREAM_NAMESPACE", + "displayName": "Image Stream Namespace", + "value": "openshift", + "required": true, + "description": "Namespace in which the Fuse ImageStreams 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": "BUILD_SECRET", + "displayName": "Git Build Secret", + "generate": "expression", + "description": "The secret needed to trigger a build.", + "from": "[a-zA-Z0-9]{40}" + }, + { + "name": "CPU_REQUEST", + "displayName": "CPU request", + "value": "0.2", + "required": true, + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." + }, + { + "name": "CPU_LIMIT", + "displayName": "CPU limit", + "value": "1.0", + "required": true, + "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." + } + ], + "objects": [ + { + "kind": "ImageStream", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "lookupPolicy": { + "local": true + } + }, + "status": { + "dockerImageRepository": "" + } + }, + { + "kind": "BuildConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APP_NAME}", + "creationTimestamp": null, + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + } + }, + "spec": { + "triggers": [ + { + "type": "GitHub", + "github": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "Generic", + "generic": { + "secret": "${BUILD_SECRET}" + } + }, + { + "type": "ConfigChange" + }, + { + "type": "ImageChange", + "imageChange": {} + } + ], + "source": { + "type": "Git", + "git": { + "uri": "${GIT_REPO}", + "ref": "${GIT_REF}" + } + }, + "strategy": { + "type": "Source", + "sourceStrategy": { + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "fuse7-java-openshift:${BUILDER_VERSION}" + }, + "forcePull": true, + "incremental": true, + "env": [ + { + "name": "BUILD_LOGLEVEL", + "value": "5" + }, + { + "name": "ARTIFACT_DIR", + "value": "${ARTIFACT_DIR}" + }, + { + "name": "MAVEN_ARGS", + "value": "${MAVEN_ARGS}" + }, + { + "name": "MAVEN_ARGS_APPEND", + "value": "${MAVEN_ARGS_APPEND}" + } + ] + } + }, + "output": { + "to": { + "kind": "ImageStreamTag", + "name": "${APP_NAME}:latest" + } + }, + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } + }, + "status": { + "lastVersion": 0 + } + }, + { + "kind": "StatefulSet", + "apiVersion": "apps/v1beta1", + "metadata": { + "name": "${APP_NAME}", + "labels": { + "component": "${APP_NAME}", + "group": "quickstarts", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "annotations": { + "image.openshift.io/triggers": "[{\"from\":{\"kind\":\"ImageStreamTag\",\"name\":\"${APP_NAME}:latest\"},\"fieldPath\":\"spec.template.spec.containers[?(@.name==\\\"${APP_NAME}\\\")].image\"}]" + } + }, + "spec": { + "podManagementPolicy": "Parallel", + "updateStrategy": { + "type": "RollingUpdate" + }, + "replicas": 1, + "selector": { + "matchLabels": { + "app": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + }, + "serviceName": "${APP_NAME}-headless", + "template": { + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + } + }, + "spec": { + "containers": [ + { + "env": [ + { + "name": "CLUSTER_RECOVERY_ENABLED", + "value": "true" + }, + { + "name": "CLUSTER_BASE_DIR", + "value": "/var/transaction/data" + }, + { + "name": "CLUSTER_NAME", + "value": "${APP_NAME}" + }, + { + "name": "CLUSTER_NODENAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "metadata.name" + } + } + }, + { + "name": "BROKER_HOST", + "value": "${BROKER_HOST}" + }, + { + "name": "BROKER_USERNAME", + "value": "${BROKER_USERNAME}" + }, + { + "name": "BROKER_PASSWORD", + "value": "${BROKER_PASSWORD}" + }, + { + "name": "DATABASE_HOST", + "value": "${DATABASE_HOST}" + }, + { + "name": "DATABASE_USERNAME", + "value": "${DATABASE_USERNAME}" + }, + { + "name": "DATABASE_PASSWORD", + "value": "${DATABASE_PASSWORD}" + }, + { + "name": "KUBERNETES_NAMESPACE", + "valueFrom": { + "fieldRef": { + "fieldPath": "metadata.namespace" + } + } + } + ], + "image": "${APP_NAME}:latest", + "imagePullPolicy": "Always", + "livenessProbe": { + "httpGet": { + "path": "/health", + "port": 8080, + "scheme": "HTTP" + }, + "initialDelaySeconds": 180 + }, + "name": "${APP_NAME}", + "ports": [ + { + "containerPort": 8080, + "name": "http", + "protocol": "TCP" + }, + { + "containerPort": 8778, + "name": "jolokia", + "protocol": "TCP" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health", + "port": 8080, + "scheme": "HTTP" + }, + "initialDelaySeconds": 10 + }, + "resources": { + "limits": { + "cpu": "1.0", + "memory": "256Mi" + }, + "requests": { + "cpu": "0.2", + "memory": "256Mi" + } + }, + "securityContext": { + "privileged": false + }, + "volumeMounts": [ + { + "mountPath": "/var/transaction/data", + "name": "${APP_NAME}-data" + } + ] + } + ], + "serviceAccountName": "${APP_NAME}", + "terminationGracePeriodSeconds": 180, + "volumes": [ + { + "name": "${APP_NAME}-data", + "persistentVolumeClaim": { + "claimName": "${APP_NAME}" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${APP_NAME}" + }, + "spec": { + "ports": [ + { + "name": "http", + "port": 8080, + "protocol": "TCP", + "targetPort": 8080 + } + ], + "selector": { + "app": "${APP_NAME}", + "provider": "s2i", + "group": "quickstarts" + } + } + }, + { + "apiVersion" : "v1", + "kind" : "Service", + "metadata" : { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name" : "${APP_NAME}-headless" + }, + "spec" : { + "clusterIP" : "None", + "ports" : [ { + "name" : "http", + "port" : 8080, + "protocol" : "TCP", + "targetPort" : 8080 + } ], + "selector" : { + "app" : "${APP_NAME}", + "group" : "quickstarts", + "provider" : "s2i" + } + } + }, + { + "apiVersion" : "route.openshift.io/v1", + "kind" : "Route", + "metadata" : { + "labels" : { + "component" : "${APP_NAME}", + "app" : "${APP_NAME}", + "provider" : "s2i", + "version" : "${APP_VERSION}", + "group" : "quickstarts" + }, + "name" : "${APP_NAME}" + }, + "spec" : { + "port" : { + "targetPort" : 8080 + }, + "to" : { + "kind" : "Service", + "name" : "${APP_NAME}" + } + } + }, + { + "apiVersion": "v1", + "kind": "ServiceAccount", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${APP_NAME}" + } + }, + { + "apiVersion": "v1", + "kind": "RoleBinding", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "provider": "s2i", + "version": "${APP_VERSION}", + "group": "quickstarts" + }, + "name": "${APP_NAME}" + }, + "roleRef": { + "name": "edit" + }, + "subjects": [ + { + "kind": "ServiceAccount", + "name": "${APP_NAME}" + } + ] + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "labels": { + "component": "${APP_NAME}", + "app": "${APP_NAME}", + "group": "quickstarts", + "provider": "s2i", + "version": "${APP_VERSION}" + }, + "name": "${APP_NAME}" + }, + "spec": { + "accessModes": [ + "ReadWriteMany" + ], + "resources": { + "requests": { + "storage": "${VOLUME_SIZE}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-xml-template.json b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-xml-template.json index c646cc0082..26b5bdd7e7 100644 --- a/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-xml-template.json +++ b/addons/xpaas/v3.9/xpaas-templates/spring-boot-camel-xml-template.json @@ -3,22 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "description": "Spring-Boot and Camel Xml QuickStart. This example demonstrates how you can use Apache Camel with Spring Boot on Openshift. The quickstart uses Spring Boot to configure a little application that includes a Camel route (in Spring xml) that triggeres a message every 5th second, and routes the message to a log.", + "openshift.io/display-name": "Red Hat Fuse 7.1 Camel XML DSL with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot and Camel Xml QuickStart. This example demonstrates how you can use Apache Camel with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure an application which includes a Camel route (in Spring xml) that triggers a message every 5th second, and routes the message to a log.", "tags": "quickstart,java,springboot,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-spring-boot-camel-xml" + "name": "s2i-fuse71-spring-boot-camel-xml" }, "labels": { - "template": "s2i-spring-boot-camel-xml" + "template": "s2i-fuse71-spring-boot-camel-xml" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-spring-boot-camel-xml", + "value": "s2i-fuse71-spring-boot-camel-xml", "description": "The name assigned to the application." }, { @@ -31,19 +33,19 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-camel-xml-1.0.0.redhat-000067", + "value": "spring-boot-camel-xml-1.0.0.fuse-710017-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000067", + "value": "1.0.0.fuse-710017-redhat-00002", "description": "The application version." }, { @@ -81,7 +83,14 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." }, { "name": "CPU_LIMIT", @@ -89,6 +98,27 @@ "value": "1.0", "required": true, "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -101,7 +131,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -120,7 +150,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -160,7 +190,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -190,7 +220,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -205,15 +242,12 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -237,7 +271,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -248,7 +282,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -288,10 +322,12 @@ } ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.9/xpaas-templates/spring-boot-cxf-jaxrs-template.json b/addons/xpaas/v3.9/xpaas-templates/spring-boot-cxf-jaxrs-template.json index eaa471b7ea..11172e9c71 100644 --- a/addons/xpaas/v3.9/xpaas-templates/spring-boot-cxf-jaxrs-template.json +++ b/addons/xpaas/v3.9/xpaas-templates/spring-boot-cxf-jaxrs-template.json @@ -3,22 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "description": "Spring-Boot and CXF JAXRS QuickStart. This example demonstrates how you can use Apache CXF JAXRS with Spring Boot on Openshift. The quickstart uses Spring Boot to configure a little application that includes a CXF JAXRS endpoint with Swagger enabled.", + "openshift.io/display-name": "Red Hat Fuse 7.1 CXF JAX-RS with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot and CXF JAX-RS QuickStart. This example demonstrates how you can use Apache CXF JAX-RS with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure a CXF application which includes a JAX-RS endpoint with Swagger enabled.", "tags": "quickstart,java,springboot,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-spring-boot-cxf-jaxrs" + "name": "s2i-fuse71-spring-boot-cxf-jaxrs" }, "labels": { - "template": "s2i-spring-boot-cxf-jaxrs" + "template": "s2i-fuse71-spring-boot-cxf-jaxrs" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-spring-boot-cxf-jaxrs", + "value": "s2i-fuse71-spring-boot-cxf-jaxrs", "description": "The name assigned to the application." }, { @@ -31,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-cxf-jaxrs-1.0.0.redhat-000017", + "value": "spring-boot-cxf-jaxrs-1.0.0.fuse-710017-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -43,13 +45,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000017", + "value": "1.0.0.fuse-710017-redhat-00002", "description": "The application version." }, { @@ -87,7 +89,14 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." }, { "name": "CPU_LIMIT", @@ -95,6 +104,27 @@ "value": "1.0", "required": true, "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -105,7 +135,7 @@ "labels": { "component": "${APP_NAME}", "provider": "s2i", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, @@ -127,7 +157,7 @@ "labels": { "component": "${APP_NAME}", "provider": "s2i", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, @@ -144,7 +174,7 @@ } ], "selector": { - "project": "${APP_NAME}", + "app": "${APP_NAME}", "component": "${APP_NAME}", "provider": "s2i", "group": "quickstarts" @@ -160,7 +190,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -179,7 +209,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -219,7 +249,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -249,7 +279,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -264,15 +301,12 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -296,7 +330,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -307,7 +341,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -347,10 +381,12 @@ } ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.9/xpaas-templates/spring-boot-cxf-jaxws-template.json b/addons/xpaas/v3.9/xpaas-templates/spring-boot-cxf-jaxws-template.json index ec39d65688..cb7b73c0c6 100644 --- a/addons/xpaas/v3.9/xpaas-templates/spring-boot-cxf-jaxws-template.json +++ b/addons/xpaas/v3.9/xpaas-templates/spring-boot-cxf-jaxws-template.json @@ -3,22 +3,24 @@ "kind": "Template", "metadata": { "annotations": { - "description": "Spring-Boot and CXF JAXWS QuickStart. This example demonstrates how you can use Apache CXF JAXWS with Spring Boot on Openshift. The quickstart uses Spring Boot to configure a little application that includes a CXF JAXWS endpoint.", + "openshift.io/display-name": "Red Hat Fuse 7.1 CXF JAX-WS with Spring Boot", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "Spring Boot and CXF JAX-WS QuickStart. This example demonstrates how you can use Apache CXF JAX-WS with Spring Boot on OpenShift. The quickstart uses Spring Boot to configure a CXF application which includes a JAX-WS endpoint.", "tags": "quickstart,java,springboot,fis,jboss-fuse", - "iconClass": "icon-jboss", - "version": "2.0" + "iconClass": "icon-rh-integration", + "version": "1.1" }, - "name": "s2i-spring-boot-cxf-jaxws" + "name": "s2i-fuse71-spring-boot-cxf-jaxws" }, "labels": { - "template": "s2i-spring-boot-cxf-jaxws" + "template": "s2i-fuse71-spring-boot-cxf-jaxws" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, - "value": "s2i-spring-boot-cxf-jaxws", + "value": "s2i-fuse71-spring-boot-cxf-jaxws", "description": "The name assigned to the application." }, { @@ -31,7 +33,7 @@ { "name": "GIT_REF", "displayName": "Git Reference", - "value": "spring-boot-cxf-jaxws-1.0.0.redhat-000017", + "value": "spring-boot-cxf-jaxws-1.0.0.fuse-710017-redhat-00002", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { @@ -43,13 +45,13 @@ { "name": "BUILDER_VERSION", "displayName": "Builder version", - "value": "2.0", + "value": "1.1", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", - "value": "1.0.0.redhat-000017", + "value": "1.0.0.fuse-710017-redhat-00002", "description": "The application version." }, { @@ -87,7 +89,14 @@ "displayName": "CPU request", "value": "0.2", "required": true, - "description": "The amount of CPU to requests." + "description": "The amount of CPU to request." + }, + { + "name": "MEMORY_REQUEST", + "displayName": "Memory request", + "value": "256Mi", + "required": true, + "description": "The amount of memory required for the container to run." }, { "name": "CPU_LIMIT", @@ -95,6 +104,27 @@ "value": "1.0", "required": true, "description": "The amount of CPU the container is limited to use." + }, + { + "name": "MEMORY_LIMIT", + "displayName": "Memory limit", + "value": "256Mi", + "required": true, + "description": "The amount of memory the container is limited to use." + }, + { + "name": "BUILD_MEMORY_REQUEST", + "displayName": "Build Memory request", + "value": "0.7G", + "required": true, + "description": "The amount of memory to request for builds." + }, + { + "name": "BUILD_MEMORY_LIMIT", + "displayName": "Build Memory limit", + "value": "0.8G", + "required": true, + "description": "The amount of memory the build container is limited to use." } ], "objects": [ @@ -105,7 +135,7 @@ "labels": { "component": "${APP_NAME}", "provider": "s2i", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, @@ -127,7 +157,7 @@ "labels": { "component": "${APP_NAME}", "provider": "s2i", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, @@ -144,7 +174,7 @@ } ], "selector": { - "project": "${APP_NAME}", + "app": "${APP_NAME}", "component": "${APP_NAME}", "provider": "s2i", "group": "quickstarts" @@ -160,7 +190,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -179,7 +209,7 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -219,7 +249,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "fis-java-openshift:${BUILDER_VERSION}" + "name": "fuse7-java-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, @@ -249,7 +279,14 @@ "name": "${APP_NAME}:latest" } }, - "resources": {} + "resources": { + "requests": { + "memory": "${BUILD_MEMORY_REQUEST}" + }, + "limits": { + "memory": "${BUILD_MEMORY_LIMIT}" + } + } }, "status": { "lastVersion": 0 @@ -264,15 +301,12 @@ "labels": { "component": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { - "strategy": { - "resources": {} - }, "triggers": [ { "type": "ConfigChange" @@ -296,7 +330,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, @@ -307,7 +341,7 @@ "component": "${APP_NAME}", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", - "project": "${APP_NAME}", + "app": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } @@ -347,10 +381,12 @@ } ], "resources": { "requests": { - "cpu": "${CPU_REQUEST}" + "cpu": "${CPU_REQUEST}", + "memory": "${MEMORY_REQUEST}" }, "limits": { - "cpu": "${CPU_LIMIT}" + "cpu": "${CPU_LIMIT}", + "memory": "${MEMORY_LIMIT}" } } } diff --git a/addons/xpaas/v3.9/xpaas-templates/sso72-https.json b/addons/xpaas/v3.9/xpaas-templates/sso72-https.json index 489476eb0d..9320ca659b 100644 --- a/addons/xpaas/v3.9/xpaas-templates/sso72-https.json +++ b/addons/xpaas/v3.9/xpaas-templates/sso72-https.json @@ -5,7 +5,7 @@ "annotations": { "iconClass" : "icon-sso", "tags" : "sso,keycloak,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "Red Hat Single Sign-On 7.2 (Ephemeral with passthrough TLS)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example RH-SSO 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "sso72-https", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new RH-SSO service has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing RH-SSO requests.", "parameters": [ @@ -346,7 +346,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso72-openshift:1.1" + "name": "redhat-sso72-openshift:1.2" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/sso72-mysql-persistent.json b/addons/xpaas/v3.9/xpaas-templates/sso72-mysql-persistent.json index 63c322f9a8..52fbd5f011 100644 --- a/addons/xpaas/v3.9/xpaas-templates/sso72-mysql-persistent.json +++ b/addons/xpaas/v3.9/xpaas-templates/sso72-mysql-persistent.json @@ -5,7 +5,7 @@ "annotations": { "iconClass" : "icon-sso", "tags" : "sso,keycloak,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + MySQL (Persistent with passthrough TLS)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example RH-SSO 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "sso72-mysql-persistent", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent RH-SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing RH-SSO requests.", "parameters": [ @@ -446,7 +446,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso72-openshift:1.1" + "name": "redhat-sso72-openshift:1.2" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/sso72-mysql.json b/addons/xpaas/v3.9/xpaas-templates/sso72-mysql.json index 997efe3fa1..97ed3145d0 100644 --- a/addons/xpaas/v3.9/xpaas-templates/sso72-mysql.json +++ b/addons/xpaas/v3.9/xpaas-templates/sso72-mysql.json @@ -5,7 +5,7 @@ "annotations": { "iconClass" : "icon-sso", "tags" : "sso,keycloak,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + MySQL (Ephemeral with passthrough TLS)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example RH-SSO 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "sso72-mysql", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new RH-SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing RH-SSO requests.", "parameters": [ @@ -445,7 +445,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso72-openshift:1.1" + "name": "redhat-sso72-openshift:1.2" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/sso72-postgresql-persistent.json b/addons/xpaas/v3.9/xpaas-templates/sso72-postgresql-persistent.json new file mode 100644 index 0000000000..a706744997 --- /dev/null +++ b/addons/xpaas/v3.9/xpaas-templates/sso72-postgresql-persistent.json @@ -0,0 +1,811 @@ +{ + "kind": "Template", + "apiVersion": "v1", + "metadata": { + "annotations": { + "iconClass" : "icon-sso", + "tags" : "sso,keycloak,jboss,hidden", + "version": "1.4.14", + "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + PostgreSQL (Persistent with passthrough TLS)", + "openshift.io/provider-display-name": "Red Hat, Inc.", + "description": "An example RH-SSO 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", + "template.openshift.io/long-description": "This template defines resources needed to develop Red Hat Single Sign-On 7.2 server based deployment, deployment configuration for PostgreSQL using persistence, and securing RH-SSO communication using passthrough TLS.", + "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-single-sign-on/", + "template.openshift.io/support-url": "https://access.redhat.com" + }, + "name": "sso72-postgresql-persistent" + }, + "labels": { + "template": "sso72-postgresql-persistent", + "xpaas": "1.4.14" + }, + "message": "A new persistent RH-SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing RH-SSO requests.", + "parameters": [ + { + "displayName": "Application Name", + "description": "The name for the application.", + "name": "APPLICATION_NAME", + "value": "sso", + "required": true + }, + { + "displayName": "Custom http Route Hostname", + "description": "Custom hostname for http service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTP", + "value": "", + "required": false + }, + { + "displayName": "Custom https Route Hostname", + "description": "Custom hostname for https service route. Leave blank for default hostname, e.g.: ..", + "name": "HOSTNAME_HTTPS", + "value": "", + "required": false + }, + { + "displayName": "Database JNDI Name", + "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/postgresql", + "name": "DB_JNDI", + "value": "java:jboss/datasources/KeycloakDS", + "required": false + }, + { + "displayName": "Database Name", + "description": "Database name", + "name": "DB_DATABASE", + "value": "root", + "required": true + }, + { + "displayName": "Server Keystore Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "HTTPS_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "Server Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "HTTPS_KEYSTORE", + "value": "keystore.jks", + "required": false + }, + { + "displayName": "Server Keystore Type", + "description": "The type of the keystore file (JKS or JCEKS)", + "name": "HTTPS_KEYSTORE_TYPE", + "value": "", + "required": false + }, + { + "displayName": "Server Certificate Name", + "description": "The name associated with the server certificate (e.g. jboss)", + "name": "HTTPS_NAME", + "value": "", + "required": false + }, + { + "displayName": "Server Keystore Password", + "description": "The password for the keystore and certificate (e.g. mykeystorepass)", + "name": "HTTPS_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "Datasource Minimum Pool Size", + "description": "Sets xa-pool/min-pool-size for the configured datasource.", + "name": "DB_MIN_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Maximum Pool Size", + "description": "Sets xa-pool/max-pool-size for the configured datasource.", + "name": "DB_MAX_POOL_SIZE", + "required": false + }, + { + "displayName": "Datasource Transaction Isolation", + "description": "Sets transaction-isolation for the configured datasource.", + "name": "DB_TX_ISOLATION", + "required": false + }, + { + "displayName": "PostgreSQL Maximum number of connections", + "description": "The maximum number of client connections allowed. This also sets the maximum number of prepared transactions.", + "name": "POSTGRESQL_MAX_CONNECTIONS", + "required": false + }, + { + "displayName": "PostgreSQL Shared Buffers", + "description": "Configures how much memory is dedicated to PostgreSQL for caching data.", + "name": "POSTGRESQL_SHARED_BUFFERS", + "required": false + }, + { + "displayName": "Database Username", + "description": "Database user name", + "name": "DB_USERNAME", + "from": "user[a-zA-Z0-9]{3}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Password", + "description": "Database user password", + "name": "DB_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "Database Volume Capacity", + "description": "Size of persistent storage for database volume.", + "name": "VOLUME_CAPACITY", + "value": "1Gi", + "required": true + }, + { + "displayName": "JGroups Secret Name", + "description": "The name of the secret containing the keystore file", + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "JGroups Keystore Filename", + "description": "The name of the keystore file within the secret", + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "jgroups.jceks", + "required": false + }, + { + "displayName": "JGroups Certificate Name", + "description": "The name associated with the server certificate (e.g. secret-key)", + "name": "JGROUPS_ENCRYPT_NAME", + "value": "", + "required": false + }, + { + "displayName": "JGroups Keystore Password", + "description": "The password for the keystore and certificate (e.g. password)", + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "JGroups Cluster Password", + "description": "JGroups cluster password", + "name": "JGROUPS_CLUSTER_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "ImageStream Namespace", + "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.", + "name": "IMAGE_STREAM_NAMESPACE", + "value": "openshift", + "required": true + }, + { + "displayName": "RH-SSO Administrator Username", + "description": "RH-SSO Server administrator username", + "name": "SSO_ADMIN_USERNAME", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Administrator Password", + "description": "RH-SSO Server administrator password", + "name": "SSO_ADMIN_PASSWORD", + "from": "[a-zA-Z0-9]{8}", + "generate": "expression", + "required": true + }, + { + "displayName": "RH-SSO Realm", + "description": "Realm to be created in the RH-SSO server (e.g. demorealm).", + "name": "SSO_REALM", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Username", + "description": "The username used to access the RH-SSO service. This is used by clients to create the appliction client(s) within the specified RH-SSO realm.", + "name": "SSO_SERVICE_USERNAME", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Service Password", + "description": "The password for the RH-SSO service user.", + "name": "SSO_SERVICE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store", + "description": "The name of the truststore file within the secret (e.g. truststore.jks)", + "name": "SSO_TRUSTSTORE", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Password", + "description": "The password for the truststore and certificate (e.g. mykeystorepass)", + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "", + "required": false + }, + { + "displayName": "RH-SSO Trust Store Secret", + "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName", + "name": "SSO_TRUSTSTORE_SECRET", + "value": "sso-app-secret", + "required": false + }, + { + "displayName": "PostgreSQL Image Stream Tag", + "description": "The tag to use for the \"postgresql\" image stream. Typically, this aligns with the major.minor version of PostgreSQL.", + "name": "POSTGRESQL_IMAGE_STREAM_TAG", + "value": "9.5", + "required": true + }, + { + "displayName": "Container Memory Limit", + "description": "Container memory limit.", + "name": "MEMORY_LIMIT", + "value": "1Gi", + "required": false + } + ], + "objects": [ + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8080, + "targetPort": 8080 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's http port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 8443, + "targetPort": 8443 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The web server's https port.", + "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "ports": [ + { + "port": 5432, + "targetPort": 5432 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "The database server's port." + } + } + }, + { + "kind": "Service", + "apiVersion": "v1", + "spec": { + "clusterIP": "None", + "ports": [ + { + "name": "ping", + "port": 8888 + } + ], + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + } + }, + "metadata": { + "name": "${APPLICATION_NAME}-ping", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "service.alpha.kubernetes.io/tolerate-unready-endpoints": "true", + "description": "The JGroups ping port for clustering." + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-http", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's http service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTP}", + "to": { + "name": "${APPLICATION_NAME}" + } + } + }, + { + "kind": "Route", + "apiVersion": "v1", + "id": "${APPLICATION_NAME}-https", + "metadata": { + "name": "secure-${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + }, + "annotations": { + "description": "Route for application's https service." + } + }, + "spec": { + "host": "${HOSTNAME_HTTPS}", + "to": { + "name": "secure-${APPLICATION_NAME}" + }, + "tls": { + "termination": "passthrough" + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "redhat-sso72-openshift:1.2" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 75, + "containers": [ + { + "name": "${APPLICATION_NAME}", + "image": "${APPLICATION_NAME}", + "imagePullPolicy": "Always", + "resources": { + "limits": { + "memory": "${MEMORY_LIMIT}" + } + }, + "volumeMounts": [ + { + "name": "eap-keystore-volume", + "mountPath": "/etc/eap-secret-volume", + "readOnly": true + }, + { + "name": "eap-jgroups-keystore-volume", + "mountPath": "/etc/jgroups-encrypt-secret-volume", + "readOnly": true + }, + { + "name": "sso-truststore-volume", + "mountPath": "/etc/sso-secret-volume", + "readOnly": true + } + ], + "livenessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/livenessProbe.sh" + ] + }, + "initialDelaySeconds": 60 + }, + "readinessProbe": { + "exec": { + "command": [ + "/bin/bash", + "-c", + "/opt/eap/bin/readinessProbe.sh" + ] + } + }, + "ports": [ + { + "name": "jolokia", + "containerPort": 8778, + "protocol": "TCP" + }, + { + "name": "http", + "containerPort": 8080, + "protocol": "TCP" + }, + { + "name": "https", + "containerPort": 8443, + "protocol": "TCP" + }, + { + "name": "ping", + "containerPort": 8888, + "protocol": "TCP" + } + ], + "env": [ + { + "name": "DB_SERVICE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_JNDI", + "value": "${DB_JNDI}" + }, + { + "name": "DB_USERNAME", + "value": "${DB_USERNAME}" + }, + { + "name": "DB_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "DB_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "TX_DATABASE_PREFIX_MAPPING", + "value": "${APPLICATION_NAME}-postgresql=DB" + }, + { + "name": "DB_MIN_POOL_SIZE", + "value": "${DB_MIN_POOL_SIZE}" + }, + { + "name": "DB_MAX_POOL_SIZE", + "value": "${DB_MAX_POOL_SIZE}" + }, + { + "name": "DB_TX_ISOLATION", + "value": "${DB_TX_ISOLATION}" + }, + { + "name": "JGROUPS_PING_PROTOCOL", + "value": "openshift.DNS_PING" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", + "value": "${APPLICATION_NAME}-ping" + }, + { + "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", + "value": "8888" + }, + { + "name": "HTTPS_KEYSTORE_DIR", + "value": "/etc/eap-secret-volume" + }, + { + "name": "HTTPS_KEYSTORE", + "value": "${HTTPS_KEYSTORE}" + }, + { + "name": "HTTPS_KEYSTORE_TYPE", + "value": "${HTTPS_KEYSTORE_TYPE}" + }, + { + "name": "HTTPS_NAME", + "value": "${HTTPS_NAME}" + }, + { + "name": "HTTPS_PASSWORD", + "value": "${HTTPS_PASSWORD}" + }, + { + "name": "JGROUPS_ENCRYPT_SECRET", + "value": "${JGROUPS_ENCRYPT_SECRET}" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR", + "value": "/etc/jgroups-encrypt-secret-volume" + }, + { + "name": "JGROUPS_ENCRYPT_KEYSTORE", + "value": "${JGROUPS_ENCRYPT_KEYSTORE}" + }, + { + "name": "JGROUPS_ENCRYPT_NAME", + "value": "${JGROUPS_ENCRYPT_NAME}" + }, + { + "name": "JGROUPS_ENCRYPT_PASSWORD", + "value": "${JGROUPS_ENCRYPT_PASSWORD}" + }, + { + "name": "JGROUPS_CLUSTER_PASSWORD", + "value": "${JGROUPS_CLUSTER_PASSWORD}" + }, + { + "name": "SSO_ADMIN_USERNAME", + "value": "${SSO_ADMIN_USERNAME}" + }, + { + "name": "SSO_ADMIN_PASSWORD", + "value": "${SSO_ADMIN_PASSWORD}" + }, + { + "name": "SSO_REALM", + "value": "${SSO_REALM}" + }, + { + "name": "SSO_SERVICE_USERNAME", + "value": "${SSO_SERVICE_USERNAME}" + }, + { + "name": "SSO_SERVICE_PASSWORD", + "value": "${SSO_SERVICE_PASSWORD}" + }, + { + "name": "SSO_TRUSTSTORE", + "value": "${SSO_TRUSTSTORE}" + }, + { + "name": "SSO_TRUSTSTORE_DIR", + "value": "/etc/sso-secret-volume" + }, + { + "name": "SSO_TRUSTSTORE_PASSWORD", + "value": "${SSO_TRUSTSTORE_PASSWORD}" + } + ] + } + ], + "volumes": [ + { + "name": "eap-keystore-volume", + "secret": { + "secretName": "${HTTPS_SECRET}" + } + }, + { + "name": "eap-jgroups-keystore-volume", + "secret": { + "secretName": "${JGROUPS_ENCRYPT_SECRET}" + } + }, + { + "name": "sso-truststore-volume", + "secret": { + "secretName": "${SSO_TRUSTSTORE_SECRET}" + } + } + ] + } + } + } + }, + { + "kind": "DeploymentConfig", + "apiVersion": "v1", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "strategy": { + "type": "Recreate" + }, + "triggers": [ + { + "type": "ImageChange", + "imageChangeParams": { + "automatic": true, + "containerNames": [ + "${APPLICATION_NAME}-postgresql" + ], + "from": { + "kind": "ImageStreamTag", + "namespace": "${IMAGE_STREAM_NAMESPACE}", + "name": "postgresql:${POSTGRESQL_IMAGE_STREAM_TAG}" + } + } + }, + { + "type": "ConfigChange" + } + ], + "replicas": 1, + "selector": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql" + }, + "template": { + "metadata": { + "name": "${APPLICATION_NAME}-postgresql", + "labels": { + "deploymentConfig": "${APPLICATION_NAME}-postgresql", + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "terminationGracePeriodSeconds": 60, + "containers": [ + { + "name": "${APPLICATION_NAME}-postgresql", + "image": "postgresql", + "imagePullPolicy": "Always", + "ports": [ + { + "containerPort": 5432, + "protocol": "TCP" + } + ], + "readinessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 5, + "exec": { + "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] + } + }, + "livenessProbe": { + "timeoutSeconds": 1, + "initialDelaySeconds": 30, + "tcpSocket": { + "port": 5432 + } + }, + "volumeMounts": [ + { + "mountPath": "/var/lib/pgsql/data", + "name": "${APPLICATION_NAME}-postgresql-pvol" + } + ], + "env": [ + { + "name": "POSTGRESQL_USER", + "value": "${DB_USERNAME}" + }, + { + "name": "POSTGRESQL_PASSWORD", + "value": "${DB_PASSWORD}" + }, + { + "name": "POSTGRESQL_DATABASE", + "value": "${DB_DATABASE}" + }, + { + "name": "POSTGRESQL_MAX_CONNECTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_MAX_PREPARED_TRANSACTIONS", + "value": "${POSTGRESQL_MAX_CONNECTIONS}" + }, + { + "name": "POSTGRESQL_SHARED_BUFFERS", + "value": "${POSTGRESQL_SHARED_BUFFERS}" + } + ] + } + ], + "volumes": [ + { + "name": "${APPLICATION_NAME}-postgresql-pvol", + "persistentVolumeClaim": { + "claimName": "${APPLICATION_NAME}-postgresql-claim" + } + } + ] + } + } + } + }, + { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "metadata": { + "name": "${APPLICATION_NAME}-postgresql-claim", + "labels": { + "application": "${APPLICATION_NAME}" + } + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "resources": { + "requests": { + "storage": "${VOLUME_CAPACITY}" + } + } + } + } + ] +} diff --git a/addons/xpaas/v3.9/xpaas-templates/sso72-postgresql.json b/addons/xpaas/v3.9/xpaas-templates/sso72-postgresql.json index e480391a4a..4f1b8a47a9 100644 --- a/addons/xpaas/v3.9/xpaas-templates/sso72-postgresql.json +++ b/addons/xpaas/v3.9/xpaas-templates/sso72-postgresql.json @@ -5,7 +5,7 @@ "annotations": { "iconClass" : "icon-sso", "tags" : "sso,keycloak,jboss,hidden", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + PostgreSQL (Ephemeral with passthrough TLS)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example RH-SSO 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "sso72-postgresql", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new RH-SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. Please be sure to create the following secrets: \"${HTTPS_SECRET}\" containing the ${HTTPS_KEYSTORE} file used for serving secure content; \"${JGROUPS_ENCRYPT_SECRET}\" containing the ${JGROUPS_ENCRYPT_KEYSTORE} file used for securing JGroups communications; \"${SSO_TRUSTSTORE_SECRET}\" containing the ${SSO_TRUSTSTORE} file used for securing RH-SSO requests.", "parameters": [ @@ -427,7 +427,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso72-openshift:1.1" + "name": "redhat-sso72-openshift:1.2" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/sso72-x509-https.json b/addons/xpaas/v3.9/xpaas-templates/sso72-x509-https.json index 76bd4d53f8..86d20b217e 100644 --- a/addons/xpaas/v3.9/xpaas-templates/sso72-x509-https.json +++ b/addons/xpaas/v3.9/xpaas-templates/sso72-x509-https.json @@ -5,7 +5,7 @@ "annotations": { "iconClass" : "icon-sso", "tags" : "sso,keycloak,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "Red Hat Single Sign-On 7.2 (Ephemeral)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example RH-SSO 7 application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "sso72-x509-https", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new RH-SSO service has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The HTTPS keystore used for serving secure content, the JGroups keystore used for securing JGroups communications, and server truststore used for securing RH-SSO requests were automatically created via OpenShift's service serving x509 certificate secrets.", "parameters": [ @@ -107,30 +107,6 @@ } ], "objects": [ - { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { - "port": 8080, - "targetPort": 8080 - } - ], - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "The web server's http port." - } - } - }, { "kind": "Service", "apiVersion": "v1", @@ -146,7 +122,7 @@ } }, "metadata": { - "name": "secure-${APPLICATION_NAME}", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -183,31 +159,12 @@ } } }, - { - "kind": "Route", - "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http", - "metadata": { - "name": "${APPLICATION_NAME}", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Route for application's http service." - } - }, - "spec": { - "to": { - "name": "${APPLICATION_NAME}" - } - } - }, { "kind": "Route", "apiVersion": "v1", "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "secure-${APPLICATION_NAME}", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -217,7 +174,7 @@ }, "spec": { "to": { - "name": "secure-${APPLICATION_NAME}" + "name": "${APPLICATION_NAME}" }, "tls": { "termination": "reencrypt" @@ -248,7 +205,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso72-openshift:1.1" + "name": "redhat-sso72-openshift:1.2" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/sso72-x509-mysql-persistent.json b/addons/xpaas/v3.9/xpaas-templates/sso72-x509-mysql-persistent.json index 893ee60628..a98e5b888a 100644 --- a/addons/xpaas/v3.9/xpaas-templates/sso72-x509-mysql-persistent.json +++ b/addons/xpaas/v3.9/xpaas-templates/sso72-x509-mysql-persistent.json @@ -5,7 +5,7 @@ "annotations": { "iconClass" : "icon-sso", "tags" : "sso,keycloak,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + MySQL (Persistent)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example RH-SSO 7 application with a MySQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "sso72-x509-mysql-persistent", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent RH-SSO service (using MySQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the MySQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. The HTTPS keystore used for serving secure content, the JGroups keystore used for securing JGroups communications, and server truststore used for securing RH-SSO requests were automatically created via OpenShift's service serving x509 certificate secrets.", "parameters": [ @@ -181,31 +181,6 @@ } ], "objects": [ - { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { - "port": 8080, - "targetPort": 8080 - } - ], - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "The web server's http port.", - "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-mysql\", \"kind\": \"Service\"}]" - } - } - }, { "kind": "Service", "apiVersion": "v1", @@ -221,7 +196,7 @@ } }, "metadata": { - "name": "secure-${APPLICATION_NAME}", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -283,31 +258,12 @@ } } }, - { - "kind": "Route", - "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http", - "metadata": { - "name": "${APPLICATION_NAME}", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Route for application's http service." - } - }, - "spec": { - "to": { - "name": "${APPLICATION_NAME}" - } - } - }, { "kind": "Route", "apiVersion": "v1", "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "secure-${APPLICATION_NAME}", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -317,7 +273,7 @@ }, "spec": { "to": { - "name": "secure-${APPLICATION_NAME}" + "name": "${APPLICATION_NAME}" }, "tls": { "termination": "reencrypt" @@ -348,7 +304,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso72-openshift:1.1" + "name": "redhat-sso72-openshift:1.2" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/sso72-x509-postgresql-persistent.json b/addons/xpaas/v3.9/xpaas-templates/sso72-x509-postgresql-persistent.json index 9380d8fa6f..a49c066212 100644 --- a/addons/xpaas/v3.9/xpaas-templates/sso72-x509-postgresql-persistent.json +++ b/addons/xpaas/v3.9/xpaas-templates/sso72-x509-postgresql-persistent.json @@ -5,7 +5,7 @@ "annotations": { "iconClass" : "icon-sso", "tags" : "sso,keycloak,jboss", - "version": "1.4.12", + "version": "1.4.14", "openshift.io/display-name": "Red Hat Single Sign-On 7.2 + PostgreSQL (Persistent)", "openshift.io/provider-display-name": "Red Hat, Inc.", "description": "An example RH-SSO 7 application with a PostgreSQL database. For more information about using this template, see https://github.com/jboss-openshift/application-templates.", @@ -17,7 +17,7 @@ }, "labels": { "template": "sso72-x509-postgresql-persistent", - "xpaas": "1.4.12" + "xpaas": "1.4.14" }, "message": "A new persistent RH-SSO service (using PostgreSQL) has been created in your project. The admin username/password for accessing the master realm via the RH-SSO console is ${SSO_ADMIN_USERNAME}/${SSO_ADMIN_PASSWORD}. The username/password for accessing the PostgreSQL database \"${DB_DATABASE}\" is ${DB_USERNAME}/${DB_PASSWORD}. The HTTPS keystore used for serving secure content, the JGroups keystore used for securing JGroups communications, and server truststore used for securing RH-SSO requests were automatically created via OpenShift's service serving x509 certificate secrets.", "parameters": [ @@ -163,31 +163,6 @@ } ], "objects": [ - { - "kind": "Service", - "apiVersion": "v1", - "spec": { - "ports": [ - { - "port": 8080, - "targetPort": 8080 - } - ], - "selector": { - "deploymentConfig": "${APPLICATION_NAME}" - } - }, - "metadata": { - "name": "${APPLICATION_NAME}", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "The web server's http port.", - "service.alpha.openshift.io/dependencies": "[{\"name\": \"${APPLICATION_NAME}-postgresql\", \"kind\": \"Service\"}]" - } - } - }, { "kind": "Service", "apiVersion": "v1", @@ -203,7 +178,7 @@ } }, "metadata": { - "name": "secure-${APPLICATION_NAME}", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -265,31 +240,12 @@ } } }, - { - "kind": "Route", - "apiVersion": "v1", - "id": "${APPLICATION_NAME}-http", - "metadata": { - "name": "${APPLICATION_NAME}", - "labels": { - "application": "${APPLICATION_NAME}" - }, - "annotations": { - "description": "Route for application's http service." - } - }, - "spec": { - "to": { - "name": "${APPLICATION_NAME}" - } - } - }, { "kind": "Route", "apiVersion": "v1", "id": "${APPLICATION_NAME}-https", "metadata": { - "name": "secure-${APPLICATION_NAME}", + "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, @@ -299,7 +255,7 @@ }, "spec": { "to": { - "name": "secure-${APPLICATION_NAME}" + "name": "${APPLICATION_NAME}" }, "tls": { "termination": "reencrypt" @@ -330,7 +286,7 @@ "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", - "name": "redhat-sso72-openshift:1.1" + "name": "redhat-sso72-openshift:1.2" } } }, diff --git a/addons/xpaas/v3.9/xpaas-templates/template.txt b/addons/xpaas/v3.9/xpaas-templates/template.txt deleted file mode 100644 index 58c2204e01..0000000000 --- a/addons/xpaas/v3.9/xpaas-templates/template.txt +++ /dev/null @@ -1,101 +0,0 @@ -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/amq62-basic.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/amq62-persistent-ssl.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/amq62-persistent.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/amq62-ssl.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/amq63-basic.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/amq63-persistent-ssl.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/amq63-persistent.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/amq63-ssl.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid65-basic.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid65-https.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid65-mysql-persistent.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid65-mysql.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid65-postgresql-persistent.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid65-postgresql.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid71-basic.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid71-https.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid71-mysql-persistent.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid71-mysql.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid71-partition.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid71-postgresql-persistent.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datagrid71-postgresql.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datavirt63-basic-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datavirt63-extensions-support-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/datavirt63-secure-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/decisionserver64-amq-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/decisionserver64-basic-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/decisionserver64-https-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-amq-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-amq-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-basic-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-https-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-mongodb-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-mongodb-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-mysql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-mysql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-postgresql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-postgresql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-sso-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-third-party-db-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap70-tx-recovery-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-amq-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-amq-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-basic-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-https-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-mongodb-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-mongodb-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-mysql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-mysql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-postgresql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-postgresql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-sso-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-third-party-db-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/eap71-tx-recovery-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat7-basic-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat7-https-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat7-mongodb-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat7-mongodb-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat7-mysql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat7-mysql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat7-postgresql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat7-postgresql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat8-basic-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat8-https-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat8-mongodb-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat8-mongodb-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat8-mysql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat8-mysql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat8-postgresql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/jws31-tomcat8-postgresql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/karaf2-camel-amq-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/karaf2-camel-log-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/karaf2-camel-rest-sql-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/karaf2-cxf-rest-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/openjdk18-web-basic-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/processserver64-amq-mysql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/processserver64-amq-mysql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/processserver64-amq-postgresql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/processserver64-amq-postgresql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/processserver64-basic-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/processserver64-mysql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/processserver64-mysql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/processserver64-postgresql-persistent-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/processserver64-postgresql-s2i.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/spring-boot-camel-amq-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/spring-boot-camel-config-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/spring-boot-camel-drools-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/spring-boot-camel-infinispan-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/spring-boot-camel-rest-sql-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/spring-boot-camel-teiid-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/spring-boot-camel-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/spring-boot-camel-xml-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/spring-boot-cxf-jaxrs-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/spring-boot-cxf-jaxws-template.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/sso72-https.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/sso72-mysql-persistent.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/sso72-mysql.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/sso73-postgresql-persistent.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/sso72-postgresql.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/sso72-x509-https.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/sso72-x509-mysql-persistent.json -https://github.com/openshift/openshift-ansible/raw/release-3.9/roles/openshift_examples/files/examples/v3.9/xpaas-templates/sso72-x509-postgresql-persistent.json diff --git a/addons/xpaas/xpaas.addon b/addons/xpaas/xpaas.addon index 6ac8f7fcb9..8755f32408 100644 --- a/addons/xpaas/xpaas.addon +++ b/addons/xpaas/xpaas.addon @@ -1,8 +1,11 @@ # Name: xpaas # Description: Imports xPaaS templates -# Url: https://github.com/openshift/openshift-ansible/tree/release-3.10/roles/openshift_examples/files/examples/v3.10 +# Url: https://github.com/openshift/openshift-ansible/tree/release-3.11/roles/openshift_examples/files/examples/latest # Required-Vars: OPENSHIFT_VERSION -# Var-Defaults: OPENSHIFT_VERSION=3.10 +# Var-Defaults: OPENSHIFT_VERSION=3.11 +# Depends-On: redhat-registry-login + +echo Info: Xpaas addon depends on redhat-registry-login and has to be applied after the redhat-registry-login is applied. # Image Streams oc apply -f v#{OPENSHIFT_VERSION}/xpaas-streams -n openshift @@ -11,4 +14,4 @@ oc apply -f v#{OPENSHIFT_VERSION}/xpaas-streams -n openshift oc apply -f v#{OPENSHIFT_VERSION}/xpaas-templates -n openshift echo XPaaS imagestream and templates for OpenShift installed -echo See https://github.com/openshift/openshift-ansible/tree/release-#{OPENSHIFT_VERSION}/roles/openshift_examples/files/examples/v#{OPENSHIFT_VERSION} +echo See https://github.com/openshift/openshift-ansible/tree/release-#{OPENSHIFT_VERSION}/roles/openshift_examples/files/examples diff --git a/centos_ci.sh b/centos_ci.sh index 16b4aa97d7..f2d1b869a7 100644 --- a/centos_ci.sh +++ b/centos_ci.sh @@ -29,7 +29,7 @@ LATEST="latest" function load_jenkins_vars() { if [ -e "jenkins-env" ]; then cat jenkins-env \ - | grep -E "(JENKINS_URL|GIT_BRANCH|GIT_COMMIT|BUILD_NUMBER|ghprbSourceBranch|ghprbActualCommit|BUILD_URL|ghprbPullId|GH_TOKEN|CICO_API_KEY|API_TOKEN|JOB_NAME|RELEASE_VERSION|GITHUB_TOKEN|REPO|BRANCH|SKIP_INTEGRATION_TEST)=" \ + | grep -E "(JENKINS_URL|GIT_BRANCH|GIT_COMMIT|BUILD_NUMBER|ghprbSourceBranch|ghprbActualCommit|BUILD_URL|ghprbPullId|GH_TOKEN|CICO_API_KEY|API_TOKEN|JOB_NAME|RELEASE_VERSION|GITHUB_TOKEN|REPO|BRANCH|SKIP_INTEGRATION_TEST|RH_REGISTRY_USERNAME|RH_REGISTRY_PASSWORD)=" \ | sed 's/^/export /g' \ > ~/.jenkins-env source ~/.jenkins-env diff --git a/pkg/minishift/addon/parser/addon_parser_test.go b/pkg/minishift/addon/parser/addon_parser_test.go index 1446711f0c..ce78246627 100644 --- a/pkg/minishift/addon/parser/addon_parser_test.go +++ b/pkg/minishift/addon/parser/addon_parser_test.go @@ -115,7 +115,7 @@ func Test_successful_parsing_of_addon_dir_without_remove_addon_file(t *testing.T assert.Empty(t, addOn.RemoveCommands()) - _, ok := addOn.Commands()[0].(*command.OcCommand) + _, ok := addOn.Commands()[1].(*command.OcCommand) assert.True(t, ok) } diff --git a/test/integration/features/addons/addon-xpaas.feature b/test/integration/features/addons/addon-xpaas.feature index 4ba36ba805..d9ecd1c2c9 100644 --- a/test/integration/features/addons/addon-xpaas.feature +++ b/test/integration/features/addons/addon-xpaas.feature @@ -1,10 +1,26 @@ @addon-xpaas Feature: xpaas add-on -Xpaas add-on imports xPaaS templates and imagestreams, -which are then available in OpenShift to the user. +Xpaas add-on imports xPaaS templates and imagestreams, which are then available in OpenShift to the user. +NOTE: This feature requires valid username and password into "registry.redhat.io" to be set as RH_REGISTRY_USERNAME +and RH_REGISTRY_PASSWORD environment variables in order to run successfully. + @quick + Scenario: User enables redhat-registry-login addon + When executing "minishift addons enable redhat-registry-login" succeeds + Then exitcode should equal "0" + + @quick + Scenario: User sets registry username and password + When executing "minishift config set addon-env REGISTRY_USERNAME=env.RH_REGISTRY_USERNAME,REGISTRY_PASSWORD=env.RH_REGISTRY_PASSWORD" succeeds + Then executing "minishift config view" succeeds + And stdout should match + """ + - addon-env\s+: \[REGISTRY_USERNAME=env\.RH_REGISTRY_USERNAME REGISTRY_PASSWORD=env\.RH_REGISTRY_PASSWORD\] + """ + + @quick Scenario: User enables the xpaas add-on - When executing "minishift addons enable xpaas" succeeds + When executing "minishift addons enable xpaas --priority 10" succeeds Then stdout should contain "Add-on 'xpaas' enabled" Scenario: User starts Minishift @@ -19,10 +35,10 @@ which are then available in OpenShift to the user. Scenario Outline: User deploys, checks out and deletes several templates from XpaaS imagestream Given Minishift has state "Running" + And executing "oc project myproject" retrying 20 times with wait period of "3s" And executing "oc status" retrying 20 times with wait period of "3s" When executing "oc new-project " succeeds And executing "oc new-app " succeeds - And executing "oc set probe dc/ --readiness --get-url=http://:8080" succeeds And service "" rollout successfully within "20m" Then with up to "5" retries with wait period of "1s" the "body" of HTTP request to "" of service "" in namespace "" contains "" And with up to "5" retries with wait period of "1s" the "status code" of HTTP request to "" of service "" in namespace "" is equal to "200" @@ -30,9 +46,9 @@ which are then available in OpenShift to the user. Examples: Required information to test the templates | project-name | template-name | service-name | http-endpoint | expected-hello | - | datagrid65 | datagrid65-basic | datagrid-app | / | Welcome to the JBoss Data Grid Server | - | eap70 | eap70-basic-s2i | eap-app | /index.jsf | Welcome to JBoss! | - | eap71 | eap71-tx-recovery-s2i | eap-app | / | Welcome to JBoss EAP 7 | + | eap71-basic | eap71-basic-s2i | eap-app | / | Welcome to JBoss EAP 7 | + | eap71-tx | eap71-tx-recovery-s2i | eap-app | / | Welcome to JBoss EAP 7 | + | datagrid72 | datagrid72-basic | datagrid-app | /rest | Welcome to the Infinispan REST Server | Scenario: User deletes Minishift When executing "minishift delete --force" succeeds