datavirt63-secure-s2i.json 42 KB

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