{ "kind": "Template", "apiVersion": "v1", "metadata": { "annotations": { "description": "Application template for EAP 6 MySQL applications built using STI.", "iconClass" : "icon-jboss" }, "name": "eap6-mysql-sti" }, "labels": { "template": "eap6-mysql-sti" }, "parameters": [ { "description": "EAP Release version, e.g. 6.4, etc.", "name": "EAP_RELEASE", "value": "6.4" }, { "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "eap-app" }, { "description": "Custom hostname for service routes. Leave blank for default hostname, e.g.: ..", "name": "APPLICATION_HOSTNAME", "value": "" }, { "description": "Git source URI for application", "name": "GIT_URI" }, { "description": "Git branch/tag reference", "name": "GIT_REF", "value": "master" }, { "description": "Path within Git project to build; empty for root project directory.", "name": "GIT_CONTEXT_DIR", "value": "" }, { "description": "Database JNDI name used by application to resolve the datasource, e.g. java:/jboss/datasources/mysql", "name": "DB_JNDI", "value": "" }, { "description": "Database name", "name": "DB_DATABASE", "value": "root" }, { "description": "Queue names", "name": "HORNETQ_QUEUES", "value": "" }, { "description": "Topic names", "name": "HORNETQ_TOPICS", "value": "" }, { "description": "The name of the secret containing the keystore file", "name": "EAP_HTTPS_SECRET", "value": "eap-app-secret" }, { "description": "The name of the keystore file within the secret", "name": "EAP_HTTPS_KEYSTORE", "value": "keystore.jks" }, { "description": "The name associated with the server certificate", "name": "EAP_HTTPS_NAME", "value": "" }, { "description": "The password for the keystore and certificate", "name": "EAP_HTTPS_PASSWORD", "value": "" }, { "description": "Sets xa-pool/min-pool-size for the configured datasource.", "name": "DB_MIN_POOL_SIZE" }, { "description": "Sets xa-pool/max-pool-size for the configured datasource.", "name": "DB_MAX_POOL_SIZE" }, { "description": "Sets transaction-isolation for the configured datasource.", "name": "DB_TX_ISOLATION" }, { "description": "Sets how the table names are stored and compared.", "name": "MYSQL_LOWER_CASE_TABLE_NAMES" }, { "description": "The maximum permitted number of simultaneous client connections.", "name": "MYSQL_MAX_CONNECTIONS" }, { "description": "The minimum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MIN_WORD_LEN" }, { "description": "The maximum length of the word to be included in a FULLTEXT index.", "name": "MYSQL_FT_MAX_WORD_LEN" }, { "description": "Controls the innodb_use_native_aio setting value if the native AIO is broken.", "name": "MYSQL_AIO" }, { "description": "HornetQ cluster admin password", "name": "HORNETQ_CLUSTER_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression" }, { "description": "Database user name", "name": "DB_USERNAME", "from": "user[a-zA-Z0-9]{3}", "generate": "expression" }, { "description": "Database user password", "name": "DB_PASSWORD", "from": "[a-zA-Z0-9]{8}", "generate": "expression" }, { "description": "Github trigger secret", "name": "GITHUB_TRIGGER_SECRET", "from": "[a-zA-Z0-9]{8}", "generate": "expression" }, { "description": "Generic build trigger secret", "name": "GENERIC_TRIGGER_SECRET", "from": "[a-zA-Z0-9]{8}", "generate": "expression" } ], "objects": [ { "kind": "Service", "apiVersion": "v1", "spec": { "ports": [ { "port": 8080, "targetPort": 8080 } ], "selector": { "deploymentConfig": "${APPLICATION_NAME}" } }, "metadata": { "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, "annotations": { "description": "The web server's http port." } } }, { "kind": "Service", "apiVersion": "v1", "spec": { "ports": [ { "port": 8443, "targetPort": 8443 } ], "selector": { "deploymentConfig": "${APPLICATION_NAME}" } }, "metadata": { "name": "secure-${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" }, "annotations": { "description": "The web server's https port." } } }, { "kind": "Service", "apiVersion": "v1", "spec": { "ports": [ { "port": 8888, "targetPort": 8888 } ], "portalIP": "None", "selector": { "deploymentConfig": "${APPLICATION_NAME}" } }, "metadata": { "name": "${APPLICATION_NAME}-ping", "labels": { "application": "${APPLICATION_NAME}" }, "annotations": { "description": "Ping service for clustered applications." } } }, { "kind": "Service", "apiVersion": "v1", "spec": { "ports": [ { "port": 3306, "targetPort": 3306 } ], "selector": { "deploymentConfig": "${APPLICATION_NAME}-mysql" } }, "metadata": { "name": "${APPLICATION_NAME}-mysql", "labels": { "application": "${APPLICATION_NAME}" }, "annotations": { "description": "The database server's port." } } }, { "kind": "Route", "apiVersion": "v1", "id": "${APPLICATION_NAME}-http-route", "metadata": { "name": "${APPLICATION_NAME}-http-route", "labels": { "application": "${APPLICATION_NAME}" }, "annotations": { "description": "Route for application's http service." } }, "spec": { "host": "${APPLICATION_HOSTNAME}", "to": { "name": "${APPLICATION_NAME}" } } }, { "kind": "Route", "apiVersion": "v1", "id": "${APPLICATION_NAME}-https-route", "metadata": { "name": "${APPLICATION_NAME}-https-route", "labels": { "application": "${APPLICATION_NAME}" }, "annotations": { "description": "Route for application's https service." } }, "spec": { "host": "${APPLICATION_HOSTNAME}", "to": { "name": "secure-${APPLICATION_NAME}" }, "tls": { "termination" : "passthrough" } } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" } } }, { "kind": "BuildConfig", "apiVersion": "v1", "metadata": { "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" } }, "spec": { "source": { "type": "Git", "git": { "uri": "${GIT_URI}", "ref": "${GIT_REF}" }, "contextDir":"${GIT_CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { "from": { "kind": "ImageStreamTag", "namespace": "openshift", "name": "jboss-eap6-openshift:${EAP_RELEASE}" } } }, "output": { "to": { "kind": "ImageStreamTag", "name": "${APPLICATION_NAME}:latest" } }, "triggers": [ { "type": "GitHub", "github": { "secret": "${GITHUB_TRIGGER_SECRET}" } }, { "type": "Generic", "generic": { "secret": "${GENERIC_TRIGGER_SECRET}" } }, { "type": "ImageChange", "imageChange": {} } ] } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${APPLICATION_NAME}", "labels": { "application": "${APPLICATION_NAME}" } }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "${APPLICATION_NAME}" ], "from": { "kind": "ImageStream", "name": "${APPLICATION_NAME}" } } } ], "replicas": 1, "selector": { "deploymentConfig": "${APPLICATION_NAME}" }, "template": { "metadata": { "name": "${APPLICATION_NAME}", "labels": { "deploymentConfig": "${APPLICATION_NAME}", "application": "${APPLICATION_NAME}" } }, "spec": { "serviceAccount": "eap-service-account", "containers": [ { "name": "${APPLICATION_NAME}", "image": "${APPLICATION_NAME}", "imagePullPolicy": "Always", "volumeMounts": [ { "name": "eap-keystore-volume", "mountPath": "/etc/eap-secret-volume", "readOnly": true } ], "readinessProbe": { "exec": { "command": [ "/bin/bash", "-c", "/opt/eap/bin/readinessProbe.sh" ] } }, "ports": [ { "name": "http", "containerPort": 8080, "protocol": "TCP" }, { "name": "https", "containerPort": 8443, "protocol": "TCP" }, { "name": "ping", "containerPort": 8888, "protocol": "TCP" } ], "env": [ { "name": "DB_SERVICE_PREFIX_MAPPING", "value": "${APPLICATION_NAME}-mysql=DB" }, { "name": "DB_JNDI", "value": "${DB_JNDI}" }, { "name": "DB_USERNAME", "value": "${DB_USERNAME}" }, { "name": "DB_PASSWORD", "value": "${DB_PASSWORD}" }, { "name": "DB_DATABASE", "value": "${DB_DATABASE}" }, { "name": "TX_DATABASE_PREFIX_MAPPING", "value": "${APPLICATION_NAME}-mysql=DB" }, { "name": "DB_MIN_POOL_SIZE", "value": "${DB_MIN_POOL_SIZE}" }, { "name": "DB_MAX_POOL_SIZE", "value": "${DB_MAX_POOL_SIZE}" }, { "name": "DB_TX_ISOLATION", "value": "${DB_TX_ISOLATION}" }, { "name": "OPENSHIFT_DNS_PING_SERVICE_NAME", "value": "${APPLICATION_NAME}-ping" }, { "name": "OPENSHIFT_DNS_PING_SERVICE_PORT", "value": "8888" }, { "name": "EAP_HTTPS_KEYSTORE_DIR", "value": "/etc/eap-secret-volume" }, { "name": "EAP_HTTPS_KEYSTORE", "value": "${EAP_HTTPS_KEYSTORE}" }, { "name": "EAP_HTTPS_NAME", "value": "${EAP_HTTPS_NAME}" }, { "name": "EAP_HTTPS_PASSWORD", "value": "${EAP_HTTPS_PASSWORD}" }, { "name": "HORNETQ_CLUSTER_PASSWORD", "value": "${HORNETQ_CLUSTER_PASSWORD}" }, { "name": "HORNETQ_QUEUES", "value": "${HORNETQ_QUEUES}" }, { "name": "HORNETQ_TOPICS", "value": "${HORNETQ_TOPICS}" } ] } ], "volumes": [ { "name": "eap-keystore-volume", "secret": { "secretName": "${EAP_HTTPS_SECRET}" } } ] } } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${APPLICATION_NAME}-mysql", "labels": { "application": "${APPLICATION_NAME}" } }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "${APPLICATION_NAME}-mysql" ], "from": { "kind": "ImageStreamTag", "namespace": "openshift", "name": "mysql:latest" } } } ], "replicas": 1, "selector": { "deploymentConfig": "${APPLICATION_NAME}-mysql" }, "template": { "metadata": { "name": "${APPLICATION_NAME}-mysql", "labels": { "deploymentConfig": "${APPLICATION_NAME}-mysql", "application": "${APPLICATION_NAME}" } }, "spec": { "containers": [ { "name": "${APPLICATION_NAME}-mysql", "image": "mysql", "imagePullPolicy": "Always", "ports": [ { "containerPort": 3306, "protocol": "TCP" } ], "env": [ { "name": "MYSQL_USER", "value": "${DB_USERNAME}" }, { "name": "MYSQL_PASSWORD", "value": "${DB_PASSWORD}" }, { "name": "MYSQL_DATABASE", "value": "${DB_DATABASE}" }, { "name": "MYSQL_LOWER_CASE_TABLE_NAMES", "value": "${MYSQL_LOWER_CASE_TABLE_NAMES}" }, { "name": "MYSQL_MAX_CONNECTIONS", "value": "${MYSQL_MAX_CONNECTIONS}" }, { "name": "MYSQL_FT_MIN_WORD_LEN", "value": "${MYSQL_FT_MIN_WORD_LEN}" }, { "name": "MYSQL_FT_MAX_WORD_LEN", "value": "${MYSQL_FT_MAX_WORD_LEN}" }, { "name": "MYSQL_AIO", "value": "${MYSQL_AIO}" } ] } ] } } } } ] }