{
  "apiVersion": "v1",
  "kind": "Template",
  "metadata": {
    "annotations": {
      "description": "Spring-Boot, Camel and JBoss BRMS QuickStart. This example demonstrates how you can use Apache Camel and JBoss BRMS with Spring Boot on OpenShift. DRL files contain simple rules which are used to create knowledge session via Spring configuration file. Camel routes, defined via Spring as well, are then used to e.g. pass (insert) the Body of the message as a POJO to Drools engine for execution.",
      "tags": "quickstart,java,springboot,fis",
      "iconClass": "icon-jboss",
      "version": "2.0"
    },
    "name": "s2i-spring-boot-camel-drools"
  },
  "labels": {
    "template": "s2i-spring-boot-camel-drools"
  },
  "parameters": [
    {
      "name": "APP_NAME",
      "displayName": "Application Name",
      "required": true,
      "value": "s2i-spring-boot-camel-drools",
      "description": "The name assigned to the application."
    },
    {
      "name": "GIT_REPO",
      "displayName": "Git Repository URL",
      "required": true,
      "value": "https://github.com/fabric8-quickstarts/spring-boot-camel-drools.git",
      "description": "The URL of the repository with your application source code."
    },
    {
      "name": "GIT_REF",
      "displayName": "Git Reference",
      "value": "spring-boot-camel-drools-1.0.0.redhat-000054",
      "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch."
    },
    {
      "name": "KIESERVER_SERVICE",
      "displayName": "Decision Server Name",
      "required": true,
      "value": "kie-app",
      "description": "Set this to the name of the Decision Server. You may need to create an instance before."
    },
    {
      "name": "KIESERVER_USERNAME",
      "displayName": "Decision Server Username",
      "required": true,
      "value": "kieserver",
      "description": "The username used to authenticate with the Decision Server."
    },
    {
      "name": "KIESERVER_PASSWORD",
      "displayName": "Decision Server Password",
      "required": true,
      "description": "The password used to authenticate with the Decision Server."
    },
    {
      "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-000054",
      "description": "The application version."
    },
    {
      "name": "MAVEN_ARGS",
      "displayName": "Maven Arguments",
      "value": "package -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": "BUILD_SECRET",
      "displayName": "Git Build Secret",
      "generate": "expression",
      "description": "The secret needed to trigger a build.",
      "from": "[a-zA-Z0-9]{40}"
    },
    {
      "name": "CPU_REQUEST",
      "displayName": "CPU request",
      "value": "0.2",
      "required": true,
      "description": "The amount of CPU to requests."
    },
    {
      "name": "CPU_LIMIT",
      "displayName": "CPU limit",
      "value": "1.0",
      "required": true,
      "description": "The amount of CPU the container is limited to use."
    }
  ],
  "objects": [
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "${APP_NAME}",
        "creationTimestamp": null,
        "labels": {
          "component": "${APP_NAME}",
          "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}",
          "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-java-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}",
          "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}",
          "deploymentconfig": "${APP_NAME}",
          "group": "quickstarts",
          "project": "${APP_NAME}",
          "provider": "s2i",
          "version": "${APP_VERSION}"
        },
        "template": {
          "metadata": {
            "creationTimestamp": null,
            "labels": {
              "component": "${APP_NAME}",
              "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" : "/health",
                    "port" : 8081
                  },
                  "initialDelaySeconds" : 10
                },
                "livenessProbe" : {
                  "httpGet" : {
                    "path" : "/health",
                    "port" : 8081
                  },
                  "initialDelaySeconds" : 180
                },
                "ports": [
                  {
                    "containerPort": 8778,
                    "name": "jolokia"
                  }
                ],
                "env" : [ {
                  "name" : "KUBERNETES_NAMESPACE",
                  "valueFrom" : {
                    "fieldRef" : {
                      "fieldPath" : "metadata.namespace"
                    }
                  }
                }, {
                  "name": "KIESERVER_SERVICE",
                  "value": "${KIESERVER_SERVICE}"
                }, {
                  "name": "KIESERVER_USERNAME",
                  "value": "${KIESERVER_USERNAME}"
                }, {
                  "name": "KIESERVER_PASSWORD",
                  "value": "${KIESERVER_PASSWORD}"
                } ],
                "resources": {
                  "requests": {
                    "cpu": "${CPU_REQUEST}"
                  },
                  "limits": {
                    "cpu": "${CPU_LIMIT}"
                  }
                }
              }
            ]
          }
        }
      },
      "status": {}
    }
  ]
}
