{ "apiVersion": "v1", "kind": "Template", "metadata": { "annotations": { "description": "REST example using CXF in Karaf container. This quickstart demonstrates how to create a RESTful (JAX-RS) web service using CXF and expose it through the OSGi HTTP Service", "tags": "quickstart,java,karaf,fis", "iconClass": "icon-jboss", "version": "2.0" }, "name": "s2i-karaf2-cxf-rest" }, "labels": { "template": "s2i-karaf2-cxf-rest" }, "parameters": [ { "name": "APP_NAME", "displayName": "Application Name", "required": true, "value": "s2i-karaf2-cxf-rest", "description": "The name assigned to the application." }, { "name": "GIT_REPO", "displayName": "Git Repository URL", "value": "https://github.com/fabric8-quickstarts/karaf2-cxf-rest.git", "required": true, "description": "The URL of the repository with your application source code." }, { "name": "GIT_REF", "displayName": "Git Reference", "value": "karaf2-cxf-rest-1.0.0.redhat-000019", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "SERVICE_NAME", "displayName": "Service Name", "value": "s2i-karaf2-cxf-rest", "description": "Exposed Service name." }, { "name": "BUILDER_VERSION", "displayName": "Builder version", "value": "2.0", "description": "The version of the FIS S2I builder image to use." }, { "name": "APP_VERSION", "displayName": "Application Version", "value": "1.0.0.redhat-000019", "description": "The application version." }, { "name": "MAVEN_ARGS", "displayName": "Maven Arguments", "value": "install -DskipTests -Dfabric8.skip -e -B", "description": "Arguments passed to mvn in the build." }, { "name": "MAVEN_ARGS_APPEND", "displayName": "Extra Maven Arguments", "description": "Extra arguments passed to mvn, e.g. for multi-module builds." }, { "name": "ARTIFACT_DIR", "displayName": "Maven build directory", "description": "Directory of the artifact to be built, e.g. for multi-module builds." }, { "name": "IMAGE_STREAM_NAMESPACE", "displayName": "Image Stream Namespace", "value": "openshift", "required": true, "description": "Namespace in which the Fuse ImageStreams 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." }, { "name": "CPU_REQUEST", "displayName": "CPU request", "value": "0.2", "required": true, "description": "The amount of CPU to requests." }, { "name": "MEMORY_REQUEST", "displayName": "Memory request", "value": "1.5G", "required": true, "description": "The amount of memory required for the container to run." }, { "name": "CPU_LIMIT", "displayName": "CPU limit", "value": "1.0", "required": true, "description": "The amount of CPU the container is limited to use." }, { "name": "MEMORY_LIMIT", "displayName": "Memory limit", "value": "2G", "required": true, "description": "The amount of memory the container is limited to use." } ], "objects": [ { "apiVersion": "v1", "kind": "Route", "metadata": { "labels": { "container": "java", "component": "${APP_NAME}", "provider": "s2i", "project": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, "name": "${SERVICE_NAME}-route" }, "spec": { "to": { "kind": "Service", "name": "${SERVICE_NAME}" } } }, { "apiVersion": "v1", "kind": "Service", "metadata": { "annotations": { }, "labels": { "container": "karaf", "component": "${APP_NAME}", "provider": "s2i", "project": "${APP_NAME}", "version": "${APP_VERSION}", "group": "quickstarts" }, "name": "${SERVICE_NAME}" }, "spec": { "clusterIP": "None", "deprecatedPublicIPs": [], "ports": [ { "port": 9412, "protocol": "TCP", "targetPort": 8181 } ], "selector": { "container": "karaf", "project": "${APP_NAME}", "component": "${APP_NAME}", "provider": "s2i", "group": "quickstarts" } } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "${APP_NAME}", "creationTimestamp": null, "labels": { "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", "project": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": {}, "status": { "dockerImageRepository": "" } }, { "kind": "BuildConfig", "apiVersion": "v1", "metadata": { "name": "${APP_NAME}", "creationTimestamp": null, "labels": { "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", "project": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { "triggers": [ { "type": "GitHub", "github": { "secret": "${BUILD_SECRET}" } }, { "type": "Generic", "generic": { "secret": "${BUILD_SECRET}" } }, { "type": "ConfigChange" }, { "type": "ImageChange", "imageChange": {} } ], "source": { "type": "Git", "git": { "uri": "${GIT_REPO}", "ref": "${GIT_REF}" } }, "strategy": { "type": "Source", "sourceStrategy": { "from": { "kind": "ImageStreamTag", "namespace": "${IMAGE_STREAM_NAMESPACE}", "name": "fis-karaf-openshift:${BUILDER_VERSION}" }, "forcePull": true, "incremental": true, "env": [ { "name": "BUILD_LOGLEVEL", "value": "5" }, { "name": "ARTIFACT_DIR", "value": "${ARTIFACT_DIR}" }, { "name": "MAVEN_ARGS", "value": "${MAVEN_ARGS}" }, { "name": "MAVEN_ARGS_APPEND", "value": "${MAVEN_ARGS_APPEND}" } ] } }, "output": { "to": { "kind": "ImageStreamTag", "name": "${APP_NAME}:latest" } }, "resources": {} }, "status": { "lastVersion": 0 } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${APP_NAME}", "creationTimestamp": null, "labels": { "component": "${APP_NAME}", "container": "karaf", "group": "quickstarts", "project": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { "strategy": { "resources": {} }, "triggers": [ { "type": "ConfigChange" }, { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "${APP_NAME}" ], "from": { "kind": "ImageStreamTag", "name": "${APP_NAME}:latest" } } } ], "replicas": 1, "selector": { "component": "${APP_NAME}", "container": "karaf", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", "project": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "component": "${APP_NAME}", "container": "karaf", "deploymentconfig": "${APP_NAME}", "group": "quickstarts", "project": "${APP_NAME}", "provider": "s2i", "version": "${APP_VERSION}" } }, "spec": { "containers": [ { "name": "${APP_NAME}", "image": "library/${APP_NAME}:latest", "readinessProbe" : { "httpGet" : { "path" : "/readiness-check", "port" : 8181 }, "initialDelaySeconds" : 10 }, "livenessProbe" : { "httpGet" : { "path" : "/health-check", "port" : 8181 }, "initialDelaySeconds" : 180 }, "ports": [ { "containerPort": 8181, "name": "http" }, { "containerPort": 8778, "name": "jolokia" } ], "env" : [ { "name" : "KUBERNETES_NAMESPACE", "valueFrom" : { "fieldRef" : { "fieldPath" : "metadata.namespace" } } } ], "resources": { "requests": { "cpu": "${CPU_REQUEST}", "memory": "${MEMORY_REQUEST}" }, "limits": { "cpu": "${CPU_LIMIT}", "memory": "${MEMORY_LIMIT}" } } } ] } } }, "status": {} } ] }