datavirt63-secure-s2i.json 40 KB

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