datavirt63-secure-s2i.json 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964
  1. {
  2. "kind": "Template",
  3. "apiVersion": "v1",
  4. "metadata": {
  5. "annotations": {
  6. "iconClass": "icon-datavirt",
  7. "tags": "jdv,datavirt,database,jboss",
  8. "version": "1.4.7",
  9. "openshift.io/display-name": "JBoss Data Virtualization 6.3 (with SSL)",
  10. "openshift.io/provider-display-name": "Red Hat, Inc.",
  11. "description": "An example JBoss Data Virtualization application. For more information about using this template, see https://github.com/jboss-openshift/application-templates.",
  12. "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.",
  13. "template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/red-hat-jboss-data-virtualization/",
  14. "template.openshift.io/support-url": "https://access.redhat.com"
  15. },
  16. "name": "datavirt63-secure-s2i"
  17. },
  18. "labels": {
  19. "template": "datavirt63-secure-s2i",
  20. "xpaas": "1.4.7"
  21. },
  22. "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 \"${SERVICE_ACCOUNT_NAME}\" service account and 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.",
  23. "parameters": [
  24. {
  25. "description": "The name for the application.",
  26. "displayName": "Application Name",
  27. "name": "APPLICATION_NAME",
  28. "value": "datavirt-app",
  29. "required": true
  30. },
  31. {
  32. "description": "The name of the secret containing configuration properties for the data sources.",
  33. "displayName": "Configuration Secret Name",
  34. "name": "CONFIGURATION_NAME",
  35. "value": "datavirt-app-config",
  36. "required": true
  37. },
  38. {
  39. "description": "Specify a custom hostname for the http route. Leave blank to use default hostname, e.g.: <service-name>-<project>.<default-domain-suffix>",
  40. "displayName": "Custom http Route Hostname",
  41. "name": "HOSTNAME_HTTP",
  42. "value": "",
  43. "required": false
  44. },
  45. {
  46. "description": "Specify a custom hostname for the https route. Leave blank to use default hostname, e.g.: secure-<service-name>-<project>.<default-domain-suffix>",
  47. "displayName": "Custom https Route Hostname",
  48. "name": "HOSTNAME_HTTPS",
  49. "value": "",
  50. "required": false
  51. },
  52. {
  53. "description": "Specify a custom hostname for the JDBC route. Leave blank to use default hostname, e.g.: secure-<service-name>-<project>.<default-domain-suffix>",
  54. "displayName": "Custom JDBC Route Hostname",
  55. "name": "HOSTNAME_JDBC",
  56. "value": "",
  57. "required": false
  58. },
  59. {
  60. "description": "The URL of the repository with your application source code.",
  61. "displayName": "Git Repository URL",
  62. "name": "SOURCE_REPOSITORY_URL",
  63. "value": "https://github.com/jboss-openshift/openshift-quickstarts",
  64. "required": true
  65. },
  66. {
  67. "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
  68. "displayName": "Git Reference",
  69. "name": "SOURCE_REPOSITORY_REF",
  70. "value": "master",
  71. "required": false
  72. },
  73. {
  74. "description": "Set this to the relative path to your project if it is not in the root of your repository.",
  75. "displayName": "Context Directory",
  76. "name": "CONTEXT_DIR",
  77. "value": "datavirt/dynamicvdb-datafederation/app",
  78. "required": false
  79. },
  80. {
  81. "description": "The name of the service account to use for the deployment. The service account should be configured to allow usage of the secret(s) specified by CONFIGURATION_NAME, HTTPS_SECRET and JGROUPS_ENCRYPT_SECRET.",
  82. "displayName": "Service Account Name",
  83. "name": "SERVICE_ACCOUNT_NAME",
  84. "value": "datavirt-service-account",
  85. "required": true
  86. },
  87. {
  88. "description": "The name of the secret containing the keystore to be used for serving secure content.",
  89. "displayName": "Server Keystore Secret Name",
  90. "name": "HTTPS_SECRET",
  91. "value": "datavirt-app-secret",
  92. "required": true
  93. },
  94. {
  95. "description": "The name of the keystore file within the secret.",
  96. "displayName": "Server Keystore Filename",
  97. "name": "HTTPS_KEYSTORE",
  98. "value": "keystore.jks",
  99. "required": false
  100. },
  101. {
  102. "description": "The type of the keystore file (JKS or JCEKS).",
  103. "displayName": "Server Keystore Type",
  104. "name": "HTTPS_KEYSTORE_TYPE",
  105. "value": "",
  106. "required": false
  107. },
  108. {
  109. "description": "The name associated with the server certificate.",
  110. "displayName": "Server Certificate Name",
  111. "name": "HTTPS_NAME",
  112. "value": "jboss",
  113. "required": false
  114. },
  115. {
  116. "description": "The password for the keystore and certificate",
  117. "displayName": "Server Keystore Password",
  118. "name": "HTTPS_PASSWORD",
  119. "value": "mykeystorepass",
  120. "required": false
  121. },
  122. {
  123. "description": "Username associated with Teiid data service.",
  124. "displayName": "Teiid Username",
  125. "name": "TEIID_USERNAME",
  126. "from": "[\\a]{8}",
  127. "generate": "expression",
  128. "required": true
  129. },
  130. {
  131. "description": "Password for Teiid user.",
  132. "displayName": "Teiid User Password",
  133. "name": "TEIID_PASSWORD",
  134. "from": "[\\a\\A]{8}[\\d]{1}[\\A]{1}",
  135. "generate": "expression",
  136. "required": true
  137. },
  138. {
  139. "description": "Username associated with ModeShape.",
  140. "displayName": "ModeShape Username",
  141. "name": "MODESHAPE_USERNAME",
  142. "from": "[\\a]{8}",
  143. "generate": "expression",
  144. "required": true
  145. },
  146. {
  147. "description": "Password for ModeShape user.",
  148. "displayName": "ModeShape User Password",
  149. "name": "MODESHAPE_PASSWORD",
  150. "from": "[\\a\\A]{8}[\\d]{1}[\\A]{1}",
  151. "generate": "expression",
  152. "required": true
  153. },
  154. {
  155. "description": "A secret string used to configure the GitHub webhook.",
  156. "displayName": "Github Webhook Secret",
  157. "name": "GITHUB_WEBHOOK_SECRET",
  158. "from": "[a-zA-Z0-9]{8}",
  159. "generate": "expression",
  160. "required": true
  161. },
  162. {
  163. "description": "A secret string used to configure the Generic webhook.",
  164. "displayName": "Generic Webhook Secret",
  165. "name": "GENERIC_WEBHOOK_SECRET",
  166. "from": "[a-zA-Z0-9]{8}",
  167. "generate": "expression",
  168. "required": true
  169. },
  170. {
  171. "description": "Namespace in which the ImageStreams for Red Hat Middleware images are installed. These ImageStreams are normally installed in the openshift namespace. You should only need to modify this if you've installed the ImageStreams in a different namespace/project.",
  172. "displayName": "ImageStream Namespace",
  173. "name": "IMAGE_STREAM_NAMESPACE",
  174. "value": "openshift",
  175. "required": true
  176. },
  177. {
  178. "description": "The name of the secret containing the keystore to be used for securing JGroups communications.",
  179. "displayName": "JGroups Secret Name",
  180. "name": "JGROUPS_ENCRYPT_SECRET",
  181. "value": "datavirt-app-secret",
  182. "required": false
  183. },
  184. {
  185. "description": "The name of the keystore file within the JGroups secret.",
  186. "displayName": "JGroups Keystore Filename",
  187. "name": "JGROUPS_ENCRYPT_KEYSTORE",
  188. "value": "jgroups.jceks",
  189. "required": false
  190. },
  191. {
  192. "description": "The name associated with the JGroups server certificate",
  193. "displayName": "JGroups Certificate Name",
  194. "name": "JGROUPS_ENCRYPT_NAME",
  195. "value": "secret-key",
  196. "required": false
  197. },
  198. {
  199. "description": "The password for the keystore and certificate",
  200. "displayName": "JGroups Keystore Password",
  201. "name": "JGROUPS_ENCRYPT_PASSWORD",
  202. "value": "password",
  203. "required": false
  204. },
  205. {
  206. "description": "Password used by JGroups to authenticate nodes in the cluster.",
  207. "displayName": "JGroups Cluster Password",
  208. "name": "JGROUPS_CLUSTER_PASSWORD",
  209. "from": "[a-zA-Z0-9]{8}",
  210. "generate": "expression",
  211. "required": true
  212. },
  213. {
  214. "description": "Controls whether exploded deployment content should be automatically deployed",
  215. "displayName": "Deploy Exploded Archives",
  216. "name": "AUTO_DEPLOY_EXPLODED",
  217. "value": "false",
  218. "required": false
  219. },
  220. {
  221. "description": "Comma delimited list of source directories containing VDBs for deployment",
  222. "displayName": "VDB Deployment Directories",
  223. "name": "VDB_DIRS",
  224. "value": "",
  225. "required": false
  226. },
  227. {
  228. "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.",
  229. "displayName": "SSO Server URL",
  230. "name": "SSO_URL",
  231. "value": "",
  232. "required": false
  233. },
  234. {
  235. "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.",
  236. "displayName": "SSO Server Service URL",
  237. "name": "SSO_SERVICE_URL",
  238. "value": "",
  239. "required": false
  240. },
  241. {
  242. "description": "The SSO realm to which the application client(s) should be associated (e.g. demo).",
  243. "displayName": "SSO Realm",
  244. "name": "SSO_REALM",
  245. "value": "",
  246. "required": false
  247. },
  248. {
  249. "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.",
  250. "displayName": "SSO Username",
  251. "name": "SSO_USERNAME",
  252. "value": "",
  253. "required": false
  254. },
  255. {
  256. "description": "The password for the SSO service user.",
  257. "displayName": "SSO User's Password",
  258. "name": "SSO_PASSWORD",
  259. "value": "",
  260. "required": false
  261. },
  262. {
  263. "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.",
  264. "displayName": "SSO Realm Public Key",
  265. "name": "SSO_PUBLIC_KEY",
  266. "value": "",
  267. "required": false
  268. },
  269. {
  270. "description": "SSO Client Access Type. true or false",
  271. "displayName": "SSO Bearer Only",
  272. "name": "SSO_BEARER_ONLY",
  273. "value": "",
  274. "required": false
  275. },
  276. {
  277. "description": "The name of the secret containing the keystore file",
  278. "displayName": "SSO SAML Keystore Secret",
  279. "name": "SSO_SAML_KEYSTORE_SECRET",
  280. "value": "datavirt-app-secret",
  281. "required": false
  282. },
  283. {
  284. "description": "The name of the keystore file within the secret",
  285. "displayName": "SSO SAML Keystore File",
  286. "name": "SSO_SAML_KEYSTORE",
  287. "value": "keystore.jks",
  288. "required": false
  289. },
  290. {
  291. "description": "The name associated with the server certificate",
  292. "displayName": "SSO SAML Certificate Alias",
  293. "name": "SSO_SAML_CERTIFICATE_NAME",
  294. "value": "",
  295. "required": false
  296. },
  297. {
  298. "description": "The password for the keystore and certificate",
  299. "name": "SSO_SAML_KEYSTORE_PASSWORD",
  300. "displayName": "SSO SAML Keystore Password",
  301. "value": "",
  302. "required": false
  303. },
  304. {
  305. "description": "The SSO Client Secret for Confidential Access",
  306. "name": "SSO_SECRET",
  307. "displayName": "SSO Client Secret",
  308. "from": "[a-zA-Z0-9]{8}",
  309. "generate": "expression",
  310. "required": false
  311. },
  312. {
  313. "description": "Enable CORS for SSO applications. true or false",
  314. "name": "SSO_ENABLE_CORS",
  315. "displayName": "SSO Enable CORS",
  316. "value": "false",
  317. "required": false
  318. },
  319. {
  320. "description": "SSO logout page for SAML applications",
  321. "name": "SSO_SAML_LOGOUT_PAGE",
  322. "displayName": "SSO SAML Logout Page",
  323. "value": "/",
  324. "required": false
  325. },
  326. {
  327. "description": "If true SSL communication between EAP and the SSO Server will be insecure (i.e. certificate validation is disabled with curl)",
  328. "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION",
  329. "displayName": "SSO Disable SSL Certificate Validation",
  330. "value": "true",
  331. "required": false
  332. },
  333. {
  334. "description": "The name of the truststore file within the secret (e.g. truststore.jks)",
  335. "name": "SSO_TRUSTSTORE",
  336. "displayName": "SSO Truststore File",
  337. "value": "",
  338. "required": false
  339. },
  340. {
  341. "description": "The password for the truststore and certificate (e.g. mykeystorepass)",
  342. "name": "SSO_TRUSTSTORE_PASSWORD",
  343. "displayName": "SSO Truststore Password",
  344. "value": "",
  345. "required": false
  346. },
  347. {
  348. "description": "The name of the secret containing the truststore file (e.g. truststore-secret). Used for volume secretName",
  349. "name": "SSO_TRUSTSTORE_SECRET",
  350. "displayName": "SSO Truststore Secret",
  351. "value": "datavirt-app-secret",
  352. "required": false
  353. },
  354. {
  355. "description": "Comma delimited list of deployments that shoulds be exploded and enabled for SSO OpenIDConnect via auth-method",
  356. "name": "SSO_OPENIDCONNECT_DEPLOYMENTS",
  357. "displayName": "SSO OpenIDConnect Deployments",
  358. "value": "",
  359. "required": false
  360. },
  361. {
  362. "description": "Comma delimited list of deployments that shoulds be exploded and enabled for SSO SAML via auth-method",
  363. "name": "SSO_SAML_DEPLOYMENTS",
  364. "displayName": "SSO SAML Deployments",
  365. "value": "",
  366. "required": false
  367. },
  368. {
  369. "displayName": "Maven mirror URL",
  370. "description": "Maven mirror to use for S2I builds",
  371. "name": "MAVEN_MIRROR_URL",
  372. "value": "",
  373. "required": false
  374. },
  375. {
  376. "displayName": "Artifact Directories",
  377. "description": "List of directories from which archives will be copied into the deployment folder. If unspecified, all archives in /target will be copied.",
  378. "name": "ARTIFACT_DIR",
  379. "value": "",
  380. "required": false
  381. }
  382. ],
  383. "objects": [
  384. {
  385. "kind": "Service",
  386. "apiVersion": "v1",
  387. "spec": {
  388. "ports": [
  389. {
  390. "name": "http",
  391. "port": 8080,
  392. "targetPort": "http"
  393. },
  394. {
  395. "name": "https",
  396. "port": 8443,
  397. "targetPort": "https"
  398. },
  399. {
  400. "name": "jdbc",
  401. "port": 31000,
  402. "targetPort": "jdbc"
  403. },
  404. {
  405. "name": "jdbcs",
  406. "port": 31443,
  407. "targetPort": "jdbcs"
  408. },
  409. {
  410. "name": "odbc",
  411. "port": 35432,
  412. "targetPort": "odbc"
  413. },
  414. {
  415. "name": "odbcs",
  416. "port": 35443,
  417. "targetPort": "odbcs"
  418. }
  419. ],
  420. "selector": {
  421. "deploymentConfig": "${APPLICATION_NAME}"
  422. }
  423. },
  424. "metadata": {
  425. "name": "${APPLICATION_NAME}",
  426. "labels": {
  427. "application": "${APPLICATION_NAME}"
  428. },
  429. "annotations": {
  430. "description": "The data virtualization services."
  431. }
  432. }
  433. },
  434. {
  435. "kind": "Route",
  436. "apiVersion": "v1",
  437. "id": "${APPLICATION_NAME}-http",
  438. "metadata": {
  439. "name": "${APPLICATION_NAME}",
  440. "labels": {
  441. "application": "${APPLICATION_NAME}"
  442. },
  443. "annotations": {
  444. "description": "Route for application's http (REST) service."
  445. }
  446. },
  447. "spec": {
  448. "host": "${HOSTNAME_HTTP}",
  449. "port": {
  450. "targetPort": "http"
  451. },
  452. "to": {
  453. "name": "${APPLICATION_NAME}"
  454. }
  455. }
  456. },
  457. {
  458. "kind": "Route",
  459. "apiVersion": "v1",
  460. "id": "${APPLICATION_NAME}-https",
  461. "metadata": {
  462. "name": "secure-${APPLICATION_NAME}",
  463. "labels": {
  464. "application": "${APPLICATION_NAME}"
  465. },
  466. "annotations": {
  467. "description": "Route for application's https (REST) service."
  468. }
  469. },
  470. "spec": {
  471. "host": "${HOSTNAME_HTTPS}",
  472. "port": {
  473. "targetPort": "https"
  474. },
  475. "to": {
  476. "name": "${APPLICATION_NAME}"
  477. },
  478. "tls": {
  479. "termination": "passthrough"
  480. }
  481. }
  482. },
  483. {
  484. "kind": "Route",
  485. "apiVersion": "v1",
  486. "id": "${APPLICATION_NAME}-jdbc",
  487. "metadata": {
  488. "name": "jdbc-${APPLICATION_NAME}",
  489. "labels": {
  490. "application": "${APPLICATION_NAME}"
  491. },
  492. "annotations": {
  493. "description": "Route for application's JDBC service."
  494. }
  495. },
  496. "spec": {
  497. "host": "${HOSTNAME_JDBC}",
  498. "port": {
  499. "targetPort": "jdbcs"
  500. },
  501. "to": {
  502. "name": "${APPLICATION_NAME}"
  503. },
  504. "tls": {
  505. "termination": "passthrough"
  506. }
  507. }
  508. },
  509. {
  510. "kind": "ImageStream",
  511. "apiVersion": "v1",
  512. "metadata": {
  513. "name": "${APPLICATION_NAME}",
  514. "labels": {
  515. "application": "${APPLICATION_NAME}"
  516. }
  517. }
  518. },
  519. {
  520. "kind": "BuildConfig",
  521. "apiVersion": "v1",
  522. "metadata": {
  523. "name": "${APPLICATION_NAME}",
  524. "labels": {
  525. "application": "${APPLICATION_NAME}"
  526. }
  527. },
  528. "spec": {
  529. "source": {
  530. "type": "Git",
  531. "git": {
  532. "uri": "${SOURCE_REPOSITORY_URL}",
  533. "ref": "${SOURCE_REPOSITORY_REF}"
  534. },
  535. "contextDir": "${CONTEXT_DIR}",
  536. "images": [
  537. {
  538. "from": {
  539. "kind": "ImageStreamTag",
  540. "namespace": "${IMAGE_STREAM_NAMESPACE}",
  541. "name": "jboss-datagrid65-client-openshift:1.1"
  542. },
  543. "paths": [
  544. {
  545. "destinationDir": "./${CONTEXT_DIR}/extensions/datagrid65",
  546. "sourcePath": "/extensions/."
  547. }
  548. ]
  549. }
  550. ]
  551. },
  552. "strategy": {
  553. "type": "Source",
  554. "sourceStrategy": {
  555. "forcePull": true,
  556. "from": {
  557. "kind": "ImageStreamTag",
  558. "namespace": "${IMAGE_STREAM_NAMESPACE}",
  559. "name": "jboss-datavirt63-openshift:1.3"
  560. },
  561. "env": [
  562. {
  563. "name": "MAVEN_MIRROR_URL",
  564. "value": "${MAVEN_MIRROR_URL}"
  565. },
  566. {
  567. "name": "CUSTOM_INSTALL_DIRECTORIES",
  568. "value": "extensions/*"
  569. },
  570. {
  571. "name": "VDB_DIRS",
  572. "value": "${VDB_DIRS}"
  573. },
  574. {
  575. "name": "ARTIFACT_DIR",
  576. "value": "${ARTIFACT_DIR}"
  577. }
  578. ]
  579. }
  580. },
  581. "output": {
  582. "to": {
  583. "kind": "ImageStreamTag",
  584. "name": "${APPLICATION_NAME}:latest"
  585. }
  586. },
  587. "triggers": [
  588. {
  589. "type": "GitHub",
  590. "github": {
  591. "secret": "${GITHUB_WEBHOOK_SECRET}"
  592. }
  593. },
  594. {
  595. "type": "Generic",
  596. "generic": {
  597. "secret": "${GENERIC_WEBHOOK_SECRET}"
  598. }
  599. },
  600. {
  601. "type": "ImageChange",
  602. "imageChange": {}
  603. },
  604. {
  605. "type": "ImageChange",
  606. "imageChange": {
  607. "from": {
  608. "kind": "ImageStreamTag",
  609. "name": "jboss-datagrid65-client-openshift:1.1"
  610. }
  611. }
  612. },
  613. {
  614. "type": "ConfigChange"
  615. }
  616. ]
  617. }
  618. },
  619. {
  620. "kind": "DeploymentConfig",
  621. "apiVersion": "v1",
  622. "metadata": {
  623. "name": "${APPLICATION_NAME}",
  624. "labels": {
  625. "application": "${APPLICATION_NAME}"
  626. }
  627. },
  628. "spec": {
  629. "strategy": {
  630. "type": "Recreate"
  631. },
  632. "triggers": [
  633. {
  634. "type": "ImageChange",
  635. "imageChangeParams": {
  636. "automatic": true,
  637. "containerNames": [
  638. "${APPLICATION_NAME}"
  639. ],
  640. "from": {
  641. "kind": "ImageStreamTag",
  642. "name": "${APPLICATION_NAME}:latest"
  643. }
  644. }
  645. },
  646. {
  647. "type": "ConfigChange"
  648. }
  649. ],
  650. "replicas": 1,
  651. "selector": {
  652. "deploymentConfig": "${APPLICATION_NAME}"
  653. },
  654. "template": {
  655. "metadata": {
  656. "name": "${APPLICATION_NAME}",
  657. "labels": {
  658. "deploymentConfig": "${APPLICATION_NAME}",
  659. "application": "${APPLICATION_NAME}"
  660. }
  661. },
  662. "spec": {
  663. "serviceAccountName": "${SERVICE_ACCOUNT_NAME}",
  664. "terminationGracePeriodSeconds": 60,
  665. "containers": [
  666. {
  667. "name": "${APPLICATION_NAME}",
  668. "image": "${APPLICATION_NAME}",
  669. "imagePullPolicy": "Always",
  670. "volumeMounts": [
  671. {
  672. "name": "configuration",
  673. "mountPath": "/etc/datavirt-environment",
  674. "readOnly": true
  675. },
  676. {
  677. "name": "datavirt-keystore-volume",
  678. "mountPath": "/etc/datavirt-secret-volume",
  679. "readOnly": true
  680. },
  681. {
  682. "name": "datavirt-jgroups-keystore-volume",
  683. "mountPath": "/etc/jgroups-encrypt-secret-volume",
  684. "readOnly": true
  685. }
  686. ],
  687. "livenessProbe": {
  688. "exec": {
  689. "command": [
  690. "/bin/bash",
  691. "-c",
  692. "/opt/eap/bin/livenessProbe.sh"
  693. ]
  694. }
  695. },
  696. "readinessProbe": {
  697. "exec": {
  698. "command": [
  699. "/bin/bash",
  700. "-c",
  701. "/opt/eap/bin/readinessProbe.sh"
  702. ]
  703. }
  704. },
  705. "ports": [
  706. {
  707. "name": "jolokia",
  708. "containerPort": 8778,
  709. "protocol": "TCP"
  710. },
  711. {
  712. "name": "http",
  713. "containerPort": 8080,
  714. "protocol": "TCP"
  715. },
  716. {
  717. "name": "https",
  718. "containerPort": 8443,
  719. "protocol": "TCP"
  720. },
  721. {
  722. "name": "jdbc",
  723. "containerPort": 31000,
  724. "protocol": "TCP"
  725. },
  726. {
  727. "name": "jdbcs",
  728. "containerPort": 31443,
  729. "protocol": "TCP"
  730. },
  731. {
  732. "name": "odbc",
  733. "containerPort": 35432,
  734. "protocol": "TCP"
  735. },
  736. {
  737. "name": "odbcs",
  738. "containerPort": 35443,
  739. "protocol": "TCP"
  740. },
  741. {
  742. "name": "ping",
  743. "containerPort": 8888,
  744. "protocol": "TCP"
  745. }
  746. ],
  747. "env": [
  748. {
  749. "name": "OPENSHIFT_KUBE_PING_LABELS",
  750. "value": "application=${APPLICATION_NAME}"
  751. },
  752. {
  753. "name": "OPENSHIFT_KUBE_PING_NAMESPACE",
  754. "valueFrom": {
  755. "fieldRef": {
  756. "fieldPath": "metadata.namespace"
  757. }
  758. }
  759. },
  760. {
  761. "name": "HTTPS_KEYSTORE_DIR",
  762. "value": "/etc/datavirt-secret-volume"
  763. },
  764. {
  765. "name": "HTTPS_KEYSTORE",
  766. "value": "${HTTPS_KEYSTORE}"
  767. },
  768. {
  769. "name": "HTTPS_KEYSTORE_TYPE",
  770. "value": "${HTTPS_KEYSTORE_TYPE}"
  771. },
  772. {
  773. "name": "HTTPS_NAME",
  774. "value": "${HTTPS_NAME}"
  775. },
  776. {
  777. "name": "HTTPS_PASSWORD",
  778. "value": "${HTTPS_PASSWORD}"
  779. },
  780. {
  781. "name": "JGROUPS_ENCRYPT_SECRET",
  782. "value": "${JGROUPS_ENCRYPT_SECRET}"
  783. },
  784. {
  785. "name": "JGROUPS_ENCRYPT_KEYSTORE_DIR",
  786. "value": "/etc/jgroups-encrypt-secret-volume"
  787. },
  788. {
  789. "name": "JGROUPS_ENCRYPT_KEYSTORE",
  790. "value": "${JGROUPS_ENCRYPT_KEYSTORE}"
  791. },
  792. {
  793. "name": "JGROUPS_ENCRYPT_NAME",
  794. "value": "${JGROUPS_ENCRYPT_NAME}"
  795. },
  796. {
  797. "name": "JGROUPS_ENCRYPT_PASSWORD",
  798. "value": "${JGROUPS_ENCRYPT_PASSWORD}"
  799. },
  800. {
  801. "name": "JGROUPS_CLUSTER_PASSWORD",
  802. "value": "${JGROUPS_CLUSTER_PASSWORD}"
  803. },
  804. {
  805. "name": "AUTO_DEPLOY_EXPLODED",
  806. "value": "${AUTO_DEPLOY_EXPLODED}"
  807. },
  808. {
  809. "name": "TEIID_USERNAME",
  810. "value": "${TEIID_USERNAME}"
  811. },
  812. {
  813. "name": "TEIID_PASSWORD",
  814. "value": "${TEIID_PASSWORD}"
  815. },
  816. {
  817. "name": "MODESHAPE_USERNAME",
  818. "value": "${MODESHAPE_USERNAME}"
  819. },
  820. {
  821. "name": "MODESHAPE_PASSWORD",
  822. "value": "${MODESHAPE_PASSWORD}"
  823. },
  824. {
  825. "name": "ENV_FILES",
  826. "value": "/etc/datavirt-environment/*"
  827. },
  828. {
  829. "name": "DATAVIRT_TRANSPORT_KEYSTORE",
  830. "value": "${HTTPS_KEYSTORE}"
  831. },
  832. {
  833. "name": "DATAVIRT_TRANSPORT_KEYSTORE_TYPE",
  834. "value": "${HTTPS_KEYSTORE_TYPE}"
  835. },
  836. {
  837. "name": "DATAVIRT_TRANSPORT_KEY_ALIAS",
  838. "value": "${HTTPS_NAME}"
  839. },
  840. {
  841. "name": "DATAVIRT_TRANSPORT_KEYSTORE_PASSWORD",
  842. "value": "${HTTPS_PASSWORD}"
  843. },
  844. {
  845. "name": "SSO_URL",
  846. "value": "${SSO_URL}"
  847. },
  848. {
  849. "name": "SSO_SERVICE_URL",
  850. "value": "${SSO_SERVICE_URL}"
  851. },
  852. {
  853. "name": "SSO_REALM",
  854. "value": "${SSO_REALM}"
  855. },
  856. {
  857. "name": "SSO_USERNAME",
  858. "value": "${SSO_USERNAME}"
  859. },
  860. {
  861. "name": "SSO_PASSWORD",
  862. "value": "${SSO_PASSWORD}"
  863. },
  864. {
  865. "name": "SSO_PUBLIC_KEY",
  866. "value": "${SSO_PUBLIC_KEY}"
  867. },
  868. {
  869. "name": "SSO_BEARER_ONLY",
  870. "value": "${SSO_BEARER_ONLY}"
  871. },
  872. {
  873. "name": "SSO_SAML_KEYSTORE_SECRET",
  874. "value": "${SSO_SAML_KEYSTORE_SECRET}"
  875. },
  876. {
  877. "name": "SSO_SAML_KEYSTORE",
  878. "value": "${SSO_SAML_KEYSTORE}"
  879. },
  880. {
  881. "name": "SSO_SAML_KEYSTORE_DIR",
  882. "value": "/etc/sso-saml-secret-volume"
  883. },
  884. {
  885. "name": "SSO_SAML_CERTIFICATE_NAME",
  886. "value": "${SSO_SAML_CERTIFICATE_NAME}"
  887. },
  888. {
  889. "name": "SSO_SAML_KEYSTORE_PASSWORD",
  890. "value": "${SSO_SAML_KEYSTORE_PASSWORD}"
  891. },
  892. {
  893. "name": "SSO_SECRET",
  894. "value": "${SSO_SECRET}"
  895. },
  896. {
  897. "name": "SSO_ENABLE_CORS",
  898. "value": "${SSO_ENABLE_CORS}"
  899. },
  900. {
  901. "name": "SSO_SAML_LOGOUT_PAGE",
  902. "value": "${SSO_SAML_LOGOUT_PAGE}"
  903. },
  904. {
  905. "name": "SSO_DISABLE_SSL_CERTIFICATE_VALIDATION",
  906. "value": "${SSO_DISABLE_SSL_CERTIFICATE_VALIDATION}"
  907. },
  908. {
  909. "name": "SSO_TRUSTSTORE",
  910. "value": "${SSO_TRUSTSTORE}"
  911. },
  912. {
  913. "name": "SSO_TRUSTSTORE_DIR",
  914. "value": "/etc/sso-secret-volume"
  915. },
  916. {
  917. "name": "SSO_TRUSTSTORE_PASSWORD",
  918. "value": "${SSO_TRUSTSTORE_PASSWORD}"
  919. },
  920. {
  921. "name": "SSO_OPENIDCONNECT_DEPLOYMENTS",
  922. "value": "${SSO_OPENIDCONNECT_DEPLOYMENTS}"
  923. },
  924. {
  925. "name": "SSO_SAML_DEPLOYMENTS",
  926. "value": "${SSO_SAML_DEPLOYMENTS}"
  927. },
  928. {
  929. "name": "HOSTNAME_HTTP",
  930. "value": "${HOSTNAME_HTTP}"
  931. },
  932. {
  933. "name": "HOSTNAME_HTTPS",
  934. "value": "${HOSTNAME_HTTPS}"
  935. }
  936. ]
  937. }
  938. ],
  939. "volumes": [
  940. {
  941. "name": "configuration",
  942. "secret": {
  943. "secretName": "${CONFIGURATION_NAME}"
  944. }
  945. },
  946. {
  947. "name": "datavirt-keystore-volume",
  948. "secret": {
  949. "secretName": "${HTTPS_SECRET}"
  950. }
  951. },
  952. {
  953. "name": "datavirt-jgroups-keystore-volume",
  954. "secret": {
  955. "secretName": "${JGROUPS_ENCRYPT_SECRET}"
  956. }
  957. }
  958. ]
  959. }
  960. }
  961. }
  962. }
  963. ]
  964. }