{
	"kind": "Template",
	"apiVersion": "template.openshift.io/v1",
	"metadata": {
		"name": "openjdk-web-basic-s2i",
		"creationTimestamp": null,
		"labels": {
			"template": "openjdk-web-basic-s2i",
			"xpaas": "1.4.17"
		},
		"annotations": {
			"description": "An example Java application using OpenJDK. For more information about using this template, see https://github.com/jboss-openshift/application-templates.",
			"iconClass": "icon-rh-openjdk",
			"openshift.io/display-name": "OpenJDK",
			"openshift.io/provider-display-name": "Red Hat, Inc.",
			"tags": "java",
			"template.openshift.io/documentation-url": "https://access.redhat.com/documentation/en/",
			"template.openshift.io/long-description": "This template defines resources needed to develop Red Hat OpenJDK Java based application.",
			"template.openshift.io/support-url": "https://access.redhat.com",
			"version": "1.4.17"
		}
	},
	"message": "A new java application has been created in your project.",
	"objects": [
		{
			"apiVersion": "v1",
			"kind": "Service",
			"metadata": {
				"annotations": {
					"description": "The application's http port."
				},
				"labels": {
					"application": "${APPLICATION_NAME}"
				},
				"name": "${APPLICATION_NAME}"
			},
			"spec": {
				"ports": [
					{
						"port": 8080,
						"targetPort": 8080
					}
				],
				"selector": {
					"deploymentConfig": "${APPLICATION_NAME}"
				}
			}
		},
		{
			"apiVersion": "route.openshift.io/v1",
			"id": "${APPLICATION_NAME}-http",
			"kind": "Route",
			"metadata": {
				"annotations": {
					"description": "Route for application's http service."
				},
				"labels": {
					"application": "${APPLICATION_NAME}"
				},
				"name": "${APPLICATION_NAME}"
			},
			"spec": {
				"host": "${HOSTNAME_HTTP}",
				"to": {
					"name": "${APPLICATION_NAME}"
				}
			}
		},
		{
			"apiVersion": "image.openshift.io/v1",
			"kind": "ImageStream",
			"metadata": {
				"labels": {
					"application": "${APPLICATION_NAME}"
				},
				"name": "${APPLICATION_NAME}"
			}
		},
		{
			"apiVersion": "build.openshift.io/v1",
			"kind": "BuildConfig",
			"metadata": {
				"labels": {
					"application": "${APPLICATION_NAME}"
				},
				"name": "${APPLICATION_NAME}"
			},
			"spec": {
				"output": {
					"to": {
						"kind": "ImageStreamTag",
						"name": "${APPLICATION_NAME}:latest"
					}
				},
				"source": {
					"contextDir": "${CONTEXT_DIR}",
					"git": {
						"ref": "${SOURCE_REPOSITORY_REF}",
						"uri": "${SOURCE_REPOSITORY_URL}"
					},
					"type": "Git"
				},
				"strategy": {
					"sourceStrategy": {
						"forcePull": true,
						"from": {
							"kind": "ImageStreamTag",
							"name": "java:${JAVA_IMAGE_STREAM_TAG}",
							"namespace": "${IMAGE_STREAM_NAMESPACE}"
						}
					},
					"type": "Source"
				},
				"triggers": [
					{
						"github": {
							"secret": "${GITHUB_WEBHOOK_SECRET}"
						},
						"type": "GitHub"
					},
					{
						"generic": {
							"secret": "${GENERIC_WEBHOOK_SECRET}"
						},
						"type": "Generic"
					},
					{
						"imageChange": {},
						"type": "ImageChange"
					},
					{
						"type": "ConfigChange"
					}
				]
			}
		},
		{
			"apiVersion": "apps.openshift.io/v1",
			"kind": "DeploymentConfig",
			"metadata": {
				"labels": {
					"application": "${APPLICATION_NAME}"
				},
				"name": "${APPLICATION_NAME}"
			},
			"spec": {
				"replicas": 1,
				"selector": {
					"deploymentConfig": "${APPLICATION_NAME}"
				},
				"strategy": {
					"type": "Recreate"
				},
				"template": {
					"metadata": {
						"labels": {
							"application": "${APPLICATION_NAME}",
							"deploymentConfig": "${APPLICATION_NAME}"
						},
						"name": "${APPLICATION_NAME}"
					},
					"spec": {
						"containers": [
							{
								"env": [],
								"image": "${APPLICATION_NAME}",
								"imagePullPolicy": "Always",
								"name": "${APPLICATION_NAME}",
								"ports": [
									{
										"containerPort": 8778,
										"name": "jolokia",
										"protocol": "TCP"
									},
									{
										"containerPort": 8080,
										"name": "http",
										"protocol": "TCP"
									},
									{
										"containerPort": 8443,
										"name": "https",
										"protocol": "TCP"
									}
								]
							}
						],
						"terminationGracePeriodSeconds": 75
					}
				},
				"triggers": [
					{
						"imageChangeParams": {
							"automatic": true,
							"containerNames": [
								"${APPLICATION_NAME}"
							],
							"from": {
								"kind": "ImageStreamTag",
								"name": "${APPLICATION_NAME}:latest"
							}
						},
						"type": "ImageChange"
					},
					{
						"type": "ConfigChange"
					}
				]
			}
		}
	],
	"parameters": [
		{
			"name": "APPLICATION_NAME",
			"displayName": "Application Name",
			"description": "The name for the application.",
			"value": "openjdk-app",
			"required": true
		},
		{
			"name": "JAVA_IMAGE_STREAM_TAG",
			"displayName": "Java Version",
			"description": "The version of Java to use, e.g. 8, 11, latest. (Corresponds to the 'java' ImageStream tag.)",
			"value": "latest",
			"required": true
		},
		{
			"name": "SOURCE_REPOSITORY_URL",
			"displayName": "Git Repository URL",
			"description": "Git source URI for application",
			"value": "https://github.com/jboss-openshift/openshift-quickstarts",
			"required": true
		},
		{
			"name": "SOURCE_REPOSITORY_REF",
			"displayName": "Git Reference",
			"description": "Git branch/tag reference",
			"value": "master"
		},
		{
			"name": "CONTEXT_DIR",
			"displayName": "Context Directory",
			"description": "Path within Git project to build; empty for root project directory.",
			"value": "undertow-servlet"
		},
		{
			"name": "HOSTNAME_HTTP",
			"displayName": "Custom http Route Hostname",
			"description": "Custom hostname for http service route.  Leave blank for default hostname, e.g.: \u003capplication-name\u003e-\u003cproject\u003e.\u003cdefault-domain-suffix\u003e"
		},
		{
			"name": "GITHUB_WEBHOOK_SECRET",
			"displayName": "Github Webhook Secret",
			"description": "GitHub trigger secret",
			"generate": "expression",
			"from": "[a-zA-Z0-9]{8}",
			"required": true
		},
		{
			"name": "GENERIC_WEBHOOK_SECRET",
			"displayName": "Generic Webhook Secret",
			"description": "Generic build trigger secret",
			"generate": "expression",
			"from": "[a-zA-Z0-9]{8}",
			"required": true
		},
		{
			"name": "IMAGE_STREAM_NAMESPACE",
			"displayName": "ImageStream Namespace",
			"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.",
			"value": "openshift",
			"required": true
		}
	]
}