{ "kind": "Template", "apiVersion": "v1", "metadata": { "annotations": { "iconClass" : "icon-tomcat", "description": "Application template for JWS applications built using STI." }, "name": "jws-tomcat8-basic-sti" }, "labels": { "template": "jws-tomcat8-basic-sti" }, "parameters": [ { "description": "JWS Release version, e.g. 3.0, 2.1, etc.", "name": "JWS_RELEASE", "value": "3.0" }, { "description": "The name for the application.", "name": "APPLICATION_NAME", "value": "jws-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": "JWS Admin User", "name": "JWS_ADMIN_USERNAME", "from": "[a-zA-Z0-9]{8}", "generate": "expression" }, { "description": "JWS Admin Password", "name": "JWS_ADMIN_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": "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": "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-webserver3-tomcat8-openshift:${JWS_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": { "containers": [ { "name": "${APPLICATION_NAME}", "image": "${APPLICATION_NAME}", "imagePullPolicy": "Always", "readinessProbe": { "exec": { "command": [ "/bin/bash", "-c", "curl -s -u ${JWS_ADMIN_USERNAME}:${JWS_ADMIN_PASSWORD} 'http://localhost:8080/manager/jmxproxy/?get=Catalina%3Atype%3DServer&att=stateName' |grep -iq 'stateName *= *STARTED'" ] } }, "ports": [ { "name": "http", "containerPort": 8080, "protocol": "TCP" } ], "env": [ { "name": "JWS_ADMIN_USERNAME", "value": "${JWS_ADMIN_USERNAME}" }, { "name": "JWS_ADMIN_PASSWORD", "value": "${JWS_ADMIN_PASSWORD}" } ] } ] } } } } ] }