// Code generated by go-bindata.
// sources:
// test/extended/testdata/aggregator/kube-system-auth-reader.yaml
// test/extended/testdata/aggregator/sample-apiserver-apiservice.yaml
// test/extended/testdata/aggregator/sample-apiserver-authdelegator.yaml
// test/extended/testdata/aggregator/sample-apiserver-authreader.yaml
// test/extended/testdata/aggregator/sample-apiserver-rc.yaml
// test/extended/testdata/aggregator/sample-apiserver-sa.yaml
// test/extended/testdata/aggregator/sample-apiserver-service.yaml
// test/extended/testdata/builds/application-template-custombuild.json
// test/extended/testdata/builds/build-postcommit/docker.yaml
// test/extended/testdata/builds/build-postcommit/imagestreams.yaml
// test/extended/testdata/builds/build-postcommit/sti.yaml
// test/extended/testdata/builds/build-pruning/default-group-build-config.yaml
// test/extended/testdata/builds/build-pruning/default-legacy-build-config.yaml
// test/extended/testdata/builds/build-pruning/errored-build-config.yaml
// test/extended/testdata/builds/build-pruning/failed-build-config.yaml
// test/extended/testdata/builds/build-pruning/failed-pipeline.yaml
// test/extended/testdata/builds/build-pruning/imagestream.yaml
// test/extended/testdata/builds/build-pruning/successful-build-config.yaml
// test/extended/testdata/builds/build-pruning/successful-pipeline.yaml
// test/extended/testdata/builds/build-quota/.s2i/bin/assemble
// test/extended/testdata/builds/build-quota/Dockerfile
// test/extended/testdata/builds/build-secrets/Dockerfile
// test/extended/testdata/builds/build-secrets/s2i-binary-dir/.s2i/bin/assemble
// test/extended/testdata/builds/build-secrets/s2i-binary-dir/.s2i/bin/run
// test/extended/testdata/builds/build-secrets/s2i-binary-dir/Gemfile
// test/extended/testdata/builds/build-secrets/s2i-binary-dir/config.ru
// test/extended/testdata/builds/build-secrets/test-configmap-2.json
// test/extended/testdata/builds/build-secrets/test-configmap.json
// test/extended/testdata/builds/build-secrets/test-docker-build.json
// test/extended/testdata/builds/build-secrets/test-is.json
// test/extended/testdata/builds/build-secrets/test-s2i-build.json
// test/extended/testdata/builds/build-secrets/test-secret-2.json
// test/extended/testdata/builds/build-secrets/test-secret.json
// test/extended/testdata/builds/build-timing/Dockerfile
// test/extended/testdata/builds/build-timing/s2i-binary-dir/.s2i/bin/assemble
// test/extended/testdata/builds/build-timing/s2i-binary-dir/.s2i/bin/run
// test/extended/testdata/builds/build-timing/s2i-binary-dir/Gemfile
// test/extended/testdata/builds/build-timing/s2i-binary-dir/config.ru
// test/extended/testdata/builds/build-timing/test-docker-build.json
// test/extended/testdata/builds/build-timing/test-is.json
// test/extended/testdata/builds/build-timing/test-s2i-build.json
// test/extended/testdata/builds/cluster-config/registry-blacklist.yaml
// test/extended/testdata/builds/cluster-config/registry-whitelist.yaml
// test/extended/testdata/builds/cluster-config.yaml
// test/extended/testdata/builds/gradle-pipeline.yaml
// test/extended/testdata/builds/incremental-auth-build.json
// test/extended/testdata/builds/s2i-environment-build-app/.s2i/environment
// test/extended/testdata/builds/s2i-environment-build-app/Gemfile
// test/extended/testdata/builds/s2i-environment-build-app/config.ru
// test/extended/testdata/builds/statusfail-assemble/.s2i/bin/assemble
// test/extended/testdata/builds/statusfail-badcontextdirs2i.yaml
// test/extended/testdata/builds/statusfail-failedassemble.yaml
// test/extended/testdata/builds/statusfail-fetchbuilderimage.yaml
// test/extended/testdata/builds/statusfail-fetchsourcedocker.yaml
// test/extended/testdata/builds/statusfail-fetchsources2i.yaml
// test/extended/testdata/builds/statusfail-genericreason.yaml
// test/extended/testdata/builds/statusfail-oomkilled.yaml
// test/extended/testdata/builds/statusfail-postcommithook.yaml
// test/extended/testdata/builds/statusfail-pushtoregistry.yaml
// test/extended/testdata/builds/test-auth-build.yaml
// test/extended/testdata/builds/test-bc-with-pr-ref.yaml
// test/extended/testdata/builds/test-build-app/Dockerfile
// test/extended/testdata/builds/test-build-app/Gemfile
// test/extended/testdata/builds/test-build-app/config.ru
// test/extended/testdata/builds/test-build-podsvc.json
// test/extended/testdata/builds/test-build-proxy.yaml
// test/extended/testdata/builds/test-build-revision.json
// test/extended/testdata/builds/test-build.yaml
// test/extended/testdata/builds/test-buildconfigsecretinjector.yaml
// test/extended/testdata/builds/test-cds-dockerbuild.json
// test/extended/testdata/builds/test-cds-sourcebuild.json
// test/extended/testdata/builds/test-context-build.json
// test/extended/testdata/builds/test-docker-app/Dockerfile
// test/extended/testdata/builds/test-docker-build-pullsecret.json
// test/extended/testdata/builds/test-docker-build.json
// test/extended/testdata/builds/test-docker-no-outputname.json
// test/extended/testdata/builds/test-env-build.json
// test/extended/testdata/builds/test-imagechangetriggers.yaml
// test/extended/testdata/builds/test-imageresolution-custom-build.yaml
// test/extended/testdata/builds/test-imageresolution-docker-build.yaml
// test/extended/testdata/builds/test-imageresolution-s2i-build.yaml
// test/extended/testdata/builds/test-imagesource-buildconfig.yaml
// test/extended/testdata/builds/test-nosrc-build.json
// test/extended/testdata/builds/test-s2i-build-quota.json
// test/extended/testdata/builds/test-s2i-build.json
// test/extended/testdata/builds/test-s2i-no-outputname.json
// test/extended/testdata/builds/test-symlink-build.yaml
// test/extended/testdata/builds/valuefrom/failed-docker-build-value-from-config.yaml
// test/extended/testdata/builds/valuefrom/failed-sti-build-value-from-config.yaml
// test/extended/testdata/builds/valuefrom/successful-docker-build-value-from-config.yaml
// test/extended/testdata/builds/valuefrom/successful-sti-build-value-from-config.yaml
// test/extended/testdata/builds/valuefrom/test-configmap.yaml
// test/extended/testdata/builds/valuefrom/test-is.json
// test/extended/testdata/builds/valuefrom/test-secret.yaml
// test/extended/testdata/cluster/master-vert.yaml
// test/extended/testdata/config-map-jenkins-slave-pods.yaml
// test/extended/testdata/custom-secret-builder/Dockerfile
// test/extended/testdata/custom-secret-builder/build.sh
// test/extended/testdata/deployments/custom-deployment.yaml
// test/extended/testdata/deployments/deployment-example.yaml
// test/extended/testdata/deployments/deployment-history-limit.yaml
// test/extended/testdata/deployments/deployment-ignores-deployer.yaml
// test/extended/testdata/deployments/deployment-image-resolution-is.yaml
// test/extended/testdata/deployments/deployment-image-resolution.yaml
// test/extended/testdata/deployments/deployment-min-ready-seconds.yaml
// test/extended/testdata/deployments/deployment-simple.yaml
// test/extended/testdata/deployments/deployment-trigger.yaml
// test/extended/testdata/deployments/deployment-with-ref-env.yaml
// test/extended/testdata/deployments/failing-pre-hook.yaml
// test/extended/testdata/deployments/generation-test.yaml
// test/extended/testdata/deployments/multi-ict-deployment.yaml
// test/extended/testdata/deployments/paused-deployment.yaml
// test/extended/testdata/deployments/readiness-test.yaml
// test/extended/testdata/deployments/tag-images-deployment.yaml
// test/extended/testdata/deployments/test-deployment-broken.yaml
// test/extended/testdata/deployments/test-deployment-test.yaml
// test/extended/testdata/forcepull-test.json
// test/extended/testdata/gssapi/config/kubeconfig
// test/extended/testdata/gssapi/config/oauth_config.json
// test/extended/testdata/gssapi/fedora/base/Dockerfile
// test/extended/testdata/gssapi/fedora/kerberos/Dockerfile
// test/extended/testdata/gssapi/fedora/kerberos_configured/Dockerfile
// test/extended/testdata/gssapi/proxy/Dockerfile
// test/extended/testdata/gssapi/proxy/configure.sh
// test/extended/testdata/gssapi/proxy/gssapiproxy-buildconfig.yaml
// test/extended/testdata/gssapi/proxy/gssapiproxy-deploymentconfig.yaml
// test/extended/testdata/gssapi/proxy/gssapiproxy-imagestream.yaml
// test/extended/testdata/gssapi/proxy/gssapiproxy-service.yaml
// test/extended/testdata/gssapi/proxy/healthz
// test/extended/testdata/gssapi/proxy/kadm5.acl
// test/extended/testdata/gssapi/proxy/kdc.conf
// test/extended/testdata/gssapi/proxy/krb5.conf
// test/extended/testdata/gssapi/proxy/proxy.conf
// test/extended/testdata/gssapi/scripts/gssapi-tests.sh
// test/extended/testdata/gssapi/scripts/test-wrapper.sh
// test/extended/testdata/gssapi/ubuntu/base/Dockerfile
// test/extended/testdata/gssapi/ubuntu/kerberos/Dockerfile
// test/extended/testdata/gssapi/ubuntu/kerberos_configured/Dockerfile
// test/extended/testdata/hello-builder/Dockerfile
// test/extended/testdata/hello-builder/scripts/assemble
// test/extended/testdata/hello-builder/scripts/run
// test/extended/testdata/idling-echo-server-rc.yaml
// test/extended/testdata/idling-echo-server.yaml
// test/extended/testdata/image/deployment-with-annotation-trigger.yaml
// test/extended/testdata/image-pull-secrets/dc-with-new-pull-secret.yaml
// test/extended/testdata/image-pull-secrets/dc-with-old-pull-secret.yaml
// test/extended/testdata/image-pull-secrets/pod-with-new-pull-secret.yaml
// test/extended/testdata/image-pull-secrets/pod-with-no-pull-secret.yaml
// test/extended/testdata/image-pull-secrets/pod-with-old-pull-secret.yaml
// test/extended/testdata/image_ecosystem/perl-hotdeploy/index.pl
// test/extended/testdata/image_ecosystem/perl-hotdeploy/lib/My/Test.pm
// test/extended/testdata/image_ecosystem/perl-hotdeploy/perl.json
// test/extended/testdata/imagestream-jenkins-slave-pods.yaml
// test/extended/testdata/imagestreamtag-jenkins-slave-pods.yaml
// test/extended/testdata/ingress.yaml
// test/extended/testdata/jenkins-plugin/build-job-clone.xml
// test/extended/testdata/jenkins-plugin/build-job-slave.xml
// test/extended/testdata/jenkins-plugin/build-job.xml
// test/extended/testdata/jenkins-plugin/build-with-env-job.xml
// test/extended/testdata/jenkins-plugin/build-with-exec-steps.xml
// test/extended/testdata/jenkins-plugin/create-job.xml
// test/extended/testdata/jenkins-plugin/delete-job-keys.xml
// test/extended/testdata/jenkins-plugin/delete-job-labels.xml
// test/extended/testdata/jenkins-plugin/delete-job.xml
// test/extended/testdata/jenkins-plugin/imagestream-scm-dsl-job.xml
// test/extended/testdata/jenkins-plugin/imagestream-scm-job.xml
// test/extended/testdata/jenkins-plugin/multitag-job.xml
// test/extended/testdata/jenkins-plugin/multitag-template.json
// test/extended/testdata/jenkins-plugin/shared-resources-template.json
// test/extended/testdata/jenkins-slave-template.yaml
// test/extended/testdata/jobs/v1.yaml
// test/extended/testdata/ldap/ldapserver-buildconfig.json
// test/extended/testdata/ldap/ldapserver-deploymentconfig.json
// test/extended/testdata/ldap/ldapserver-imagestream-testenv.json
// test/extended/testdata/ldap/ldapserver-imagestream.json
// test/extended/testdata/ldap/ldapserver-service.json
// test/extended/testdata/long_names/Dockerfile
// test/extended/testdata/long_names/fixture.json
// test/extended/testdata/multi-namespace-pipeline.yaml
// test/extended/testdata/multi-namespace-template.yaml
// test/extended/testdata/openshift-secret-to-jenkins-credential.yaml
// test/extended/testdata/reencrypt-serving-cert.yaml
// test/extended/testdata/releases/payload-1/etcd-operator/image-references
// test/extended/testdata/releases/payload-1/etcd-operator/manifest.yaml
// test/extended/testdata/releases/payload-1/image-registry/10_image-registry_crd.yaml
// test/extended/testdata/releases/payload-1/image-registry/image-references
// test/extended/testdata/releases/payload-1/image-registry/manifest.yaml
// test/extended/testdata/roles/empty-role.yaml
// test/extended/testdata/roles/policy-clusterroles.yaml
// test/extended/testdata/roles/policy-roles.yaml
// test/extended/testdata/router-common.yaml
// test/extended/testdata/router-config-manager.yaml
// test/extended/testdata/router-http-echo-server.yaml
// test/extended/testdata/router-metrics.yaml
// test/extended/testdata/router-override-domains.yaml
// test/extended/testdata/router-override.yaml
// test/extended/testdata/router-scoped.yaml
// test/extended/testdata/run_policy/parallel-bc.yaml
// test/extended/testdata/run_policy/serial-bc.yaml
// test/extended/testdata/run_policy/serial-latest-only-bc.yaml
// test/extended/testdata/s2i-dropcaps/root-access-build.yaml
// test/extended/testdata/s2i-dropcaps/rootable-ruby/Dockerfile
// test/extended/testdata/s2i-dropcaps/rootable-ruby/adduser
// test/extended/testdata/s2i-dropcaps/rootable-ruby/assemble
// test/extended/testdata/sample-image-stream.json
// test/extended/testdata/samplepipeline-withenvs.yaml
// test/extended/testdata/service-serving-cert/nginx-serving-cert.conf
// test/extended/testdata/signer-buildconfig.yaml
// test/extended/testdata/templates/templateinstance_badobject.yaml
// test/extended/testdata/templates/templateinstance_objectkinds.yaml
// test/extended/testdata/templates/templateinstance_readiness.yaml
// test/extended/testdata/templates/templateservicebroker_bind.yaml
// test/extended/testdata/test-cli-debug.yaml
// test/extended/testdata/test-env-pod.json
// test/extended/testdata/test-gitserver.yaml
// test/extended/testdata/test-secret.json
// test/extended/testdata/weighted-router.yaml
// test/integration/testdata/project-request-template-with-quota.yaml
// test/integration/testdata/test-buildcli-beta2.json
// test/integration/testdata/test-buildcli.json
// test/integration/testdata/test-deployment-config.yaml
// test/integration/testdata/test-egress-network-policy.json
// test/integration/testdata/test-image-stream-mapping.json
// test/integration/testdata/test-image-stream.json
// test/integration/testdata/test-image.json
// test/integration/testdata/test-replication-controller.yaml
// test/integration/testdata/test-route.json
// test/integration/testdata/test-service-with-finalizer.json
// test/integration/testdata/test-service.json
// examples/db-templates/mariadb-ephemeral-template.json
// examples/db-templates/mariadb-persistent-template.json
// examples/db-templates/mongodb-ephemeral-template.json
// examples/db-templates/mongodb-persistent-template.json
// examples/db-templates/mysql-ephemeral-template.json
// examples/db-templates/mysql-persistent-template.json
// examples/db-templates/postgresql-ephemeral-template.json
// examples/db-templates/postgresql-persistent-template.json
// examples/db-templates/redis-ephemeral-template.json
// examples/db-templates/redis-persistent-template.json
// examples/image-streams/image-streams-centos7.json
// examples/image-streams/image-streams-rhel7.json
// examples/sample-app/application-template-dockerbuild.json
// examples/sample-app/application-template-pullspecbuild.json
// examples/sample-app/application-template-stibuild.json
// examples/sample-app/cleanup.sh
// examples/sample-app/github-webhook-example.json
// examples/quickstarts/cakephp-mysql-persistent.json
// examples/quickstarts/cakephp-mysql.json
// examples/quickstarts/dancer-mysql-persistent.json
// examples/quickstarts/dancer-mysql.json
// examples/quickstarts/django-postgresql-persistent.json
// examples/quickstarts/django-postgresql.json
// examples/quickstarts/dotnet-pgsql-persistent.json
// examples/quickstarts/dotnet.json
// examples/quickstarts/httpd.json
// examples/quickstarts/nginx.json
// examples/quickstarts/nodejs-mongodb-persistent.json
// examples/quickstarts/nodejs-mongodb.json
// examples/quickstarts/rails-postgresql-persistent.json
// examples/quickstarts/rails-postgresql.json
// examples/prometheus/prometheus.yaml
// examples/hello-openshift/Dockerfile
// examples/hello-openshift/hello-pod.json
// examples/hello-openshift/hello-project.json
// examples/jenkins/application-template.json
// examples/jenkins/jenkins-ephemeral-template.json
// examples/jenkins/jenkins-persistent-template.json
// examples/jenkins/pipeline/bluegreen-pipeline.yaml
// examples/jenkins/pipeline/maven-pipeline.yaml
// examples/jenkins/pipeline/nodejs-sample-pipeline.yaml
// examples/jenkins/pipeline/openshift-client-plugin-pipeline.yaml
// examples/jenkins/pipeline/samplepipeline.yaml
// examples/quickstarts/cakephp-mysql.json
// install/etcd/etcd.yaml
// DO NOT EDIT!

package testdata

import (
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"strings"
	"time"
)
type asset struct {
	bytes []byte
	info  os.FileInfo
}

type bindataFileInfo struct {
	name    string
	size    int64
	mode    os.FileMode
	modTime time.Time
}

func (fi bindataFileInfo) Name() string {
	return fi.name
}
func (fi bindataFileInfo) Size() int64 {
	return fi.size
}
func (fi bindataFileInfo) Mode() os.FileMode {
	return fi.mode
}
func (fi bindataFileInfo) ModTime() time.Time {
	return fi.modTime
}
func (fi bindataFileInfo) IsDir() bool {
	return false
}
func (fi bindataFileInfo) Sys() interface{} {
	return nil
}

var _testExtendedTestdataAggregatorKubeSystemAuthReaderYaml = []byte(`apiVersion: authorization.openshift.io/v1
kind: Role
metadata:
  name: extension-apiserver-authentication-reader
  namespace: kube-system
rules:
- verbs:
  - get
  apiGroups:
  - ""
  resources:
  - configmaps
  resourceNames:
  - extension-apiserver-authentication
`)

func testExtendedTestdataAggregatorKubeSystemAuthReaderYamlBytes() ([]byte, error) {
	return _testExtendedTestdataAggregatorKubeSystemAuthReaderYaml, nil
}

func testExtendedTestdataAggregatorKubeSystemAuthReaderYaml() (*asset, error) {
	bytes, err := testExtendedTestdataAggregatorKubeSystemAuthReaderYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/aggregator/kube-system-auth-reader.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataAggregatorSampleApiserverApiserviceYaml = []byte(`apiVersion: apiregistration.k8s.io/v1alpha1
kind: APIService
metadata:
  name: v1alpha1.wardle.k8s.io
spec:
  insecureSkipTLSVerify: true
  group: wardle.k8s.io
  priority: 200
  service:
    name: api
    namespace: wardle
  version: v1alpha1
`)

func testExtendedTestdataAggregatorSampleApiserverApiserviceYamlBytes() ([]byte, error) {
	return _testExtendedTestdataAggregatorSampleApiserverApiserviceYaml, nil
}

func testExtendedTestdataAggregatorSampleApiserverApiserviceYaml() (*asset, error) {
	bytes, err := testExtendedTestdataAggregatorSampleApiserverApiserviceYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/aggregator/sample-apiserver-apiservice.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataAggregatorSampleApiserverAuthdelegatorYaml = []byte(`apiVersion: authorization.openshift.io/v1
kind: ClusterRoleBinding
metadata:
  name: wardle:system:auth-delegator
roleRef:
  name: system:auth-delegator
subjects:
- kind: ServiceAccount
  name: apiserver
  namespace: wardle
`)

func testExtendedTestdataAggregatorSampleApiserverAuthdelegatorYamlBytes() ([]byte, error) {
	return _testExtendedTestdataAggregatorSampleApiserverAuthdelegatorYaml, nil
}

func testExtendedTestdataAggregatorSampleApiserverAuthdelegatorYaml() (*asset, error) {
	bytes, err := testExtendedTestdataAggregatorSampleApiserverAuthdelegatorYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/aggregator/sample-apiserver-authdelegator.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataAggregatorSampleApiserverAuthreaderYaml = []byte(`apiVersion: authorization.openshift.io/v1
kind: RoleBinding
metadata:
  name: wardle-auth-reader
  namespace: kube-system
roleRef:
  name: extension-apiserver-authentication-reader
  namespace: kube-system
subjects:
- kind: ServiceAccount
  name: apiserver
  namespace: wardle
`)

func testExtendedTestdataAggregatorSampleApiserverAuthreaderYamlBytes() ([]byte, error) {
	return _testExtendedTestdataAggregatorSampleApiserverAuthreaderYaml, nil
}

func testExtendedTestdataAggregatorSampleApiserverAuthreaderYaml() (*asset, error) {
	bytes, err := testExtendedTestdataAggregatorSampleApiserverAuthreaderYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/aggregator/sample-apiserver-authreader.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataAggregatorSampleApiserverRcYaml = []byte(`apiVersion: v1
kind: ReplicationController
metadata:
  name: wardle-server
  namespace: wardle
  labels:
    apiserver: "true"
spec:
  replicas: 1
  selector:
    apiserver: "true"
  template:
    metadata:
      labels:
        apiserver: "true"
    spec:
      serviceAccountName: apiserver
      containers:
      - name: wardle-server
        image: kube-sample-apiserver:latest
        imagePullPolicy: Never
        args:
        - "--etcd-servers=http://localhost:2379"
        - "--audit-log-path=-"
      - name: etcd
        image: quay.io/coreos/etcd:v3.0.17
        securityContext:
          runAsUser: 0
    securityContext:
      runAsUser: 0`)

func testExtendedTestdataAggregatorSampleApiserverRcYamlBytes() ([]byte, error) {
	return _testExtendedTestdataAggregatorSampleApiserverRcYaml, nil
}

func testExtendedTestdataAggregatorSampleApiserverRcYaml() (*asset, error) {
	bytes, err := testExtendedTestdataAggregatorSampleApiserverRcYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/aggregator/sample-apiserver-rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataAggregatorSampleApiserverSaYaml = []byte(`kind: ServiceAccount
apiVersion: v1
metadata:
  name: apiserver
  namespace: wardle
`)

func testExtendedTestdataAggregatorSampleApiserverSaYamlBytes() ([]byte, error) {
	return _testExtendedTestdataAggregatorSampleApiserverSaYaml, nil
}

func testExtendedTestdataAggregatorSampleApiserverSaYaml() (*asset, error) {
	bytes, err := testExtendedTestdataAggregatorSampleApiserverSaYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/aggregator/sample-apiserver-sa.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataAggregatorSampleApiserverServiceYaml = []byte(`apiVersion: v1
kind: Service
metadata:
  name: api
  namespace: wardle
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    apiserver: "true"
`)

func testExtendedTestdataAggregatorSampleApiserverServiceYamlBytes() ([]byte, error) {
	return _testExtendedTestdataAggregatorSampleApiserverServiceYaml, nil
}

func testExtendedTestdataAggregatorSampleApiserverServiceYaml() (*asset, error) {
	bytes, err := testExtendedTestdataAggregatorSampleApiserverServiceYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/aggregator/sample-apiserver-service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsApplicationTemplateCustombuildJson = []byte(`{
  "kind": "Template",
  "apiVersion": "v1",
  "metadata": {
    "name": "ruby-helloworld-sample",
    "annotations": {
      "description": "This example shows how to create a simple ruby application in openshift origin v3",
      "iconClass": "icon-ruby",
      "tags": "instant-app,ruby,mysql"
    }
  },
  "objects": [
    {
      "kind": "Secret",
      "apiVersion": "v1",
      "metadata": {
        "name": "dbsecret"
      },
      "stringData" : {
        "mysql-user" : "${MYSQL_USER}",
        "mysql-password" : "${MYSQL_PASSWORD}"
      }
    },
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "ports": [
          {
            "name": "web",
            "protocol": "TCP",
            "port": 5432,
            "targetPort": 8080,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "frontend"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {}
      }
    },
    {
      "kind": "Route",
      "apiVersion": "v1",
      "metadata": {
        "name": "route-edge",
        "annotations": {
          "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}"
        }
      },
      "spec": {
        "host": "www.example.com",
        "to": {
          "kind": "Service",
          "name": "frontend"
        },
        "tls": {
          "termination": "edge"
        }
      },
      "status": {}
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-ruby-sample"
      },
      "spec": {},
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-custom-docker-builder"
      },
      "spec": {
        "dockerImageRepository": "openshift/origin-custom-docker-builder"
      },
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-sample-build",
        "labels": {
          "name": "ruby-sample-build"
        },
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "triggers": [
          {
            "type": "GitHub",
            "github": {
              "secret": "secret101"
            }
          },
          {
            "type": "Generic",
            "generic": {
              "secret": "secret101",
              "allowEnv": true
            }
          },
          {
            "type": "ImageChange",
            "imageChange": {}
          },
          {
            "type": "ConfigChange"
          }
        ],
        "source": {
          "type": "Git",
          "git": {
            "uri": "https://github.com/openshift/ruby-hello-world.git"
          }
        },
        "strategy": {
          "type": "Custom",
          "customStrategy": {
            "from": {
              "kind": "ImageStreamTag",
              "name": "origin-custom-docker-builder:latest"
            },
            "env": [
              {
                "name": "OPENSHIFT_CUSTOM_BUILD_BASE_IMAGE",
                "value": "openshift/origin-custom-docker-builder"
              }
            ],
            "exposeDockerSocket": true
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "origin-ruby-sample:latest"
          }
        },
        "postCommit": {
          "script": "bundle exec rake test"
        },
        "resources": {}
      },
      "status": {
        "lastVersion": 0
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend",
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "strategy": {
          "type": "Rolling",
          "rollingParams": {
            "updatePeriodSeconds": 1,
            "intervalSeconds": 1,
            "timeoutSeconds": 120,
            "pre": {
              "failurePolicy": "Abort",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR1",
                    "value": "custom_value1"
                  }
                ],
                "containerName": "ruby-helloworld"
              }
            },
            "post": {
              "failurePolicy": "Ignore",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR2",
                    "value": "custom_value2"
                  }
                ],
                "containerName": "ruby-helloworld"
              }
            }
          },
          "resources": {}
        },
        "triggers": [
          {
            "type": "ImageChange",
            "imageChangeParams": {
              "automatic": true,
              "containerNames": [
                "ruby-helloworld"
              ],
              "from": {
                "kind": "ImageStreamTag",
                "name": "origin-ruby-sample:latest"
              }
            }
          },
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 2,
        "selector": {
          "name": "frontend"
        },
        "template": {
          "metadata": {
            "labels": {
              "name": "frontend"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "ruby-helloworld",
                "image": "origin-ruby-sample",
                "ports": [
                  {
                    "containerPort": 8080,
                    "protocol": "TCP"
                  }
                ],
                "env": [
                  {
                    "name": "MYSQL_USER",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-user"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_PASSWORD",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-password"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_DATABASE",
                    "value": "${MYSQL_DATABASE}"
                  }
                ],
                "resources": {},
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "IfNotPresent",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      },
      "status": {}
    },
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "database"
      },
      "spec": {
        "ports": [
          {
            "name": "db",
            "protocol": "TCP",
            "port": 5434,
            "targetPort": 3306,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "database"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {}
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "database",
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "strategy": {
          "type": "Recreate",
          "recreateParams": {
            "pre": {
              "failurePolicy": "Abort",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR1",
                    "value": "custom_value1"
                  }
                ],
                "containerName": "ruby-helloworld-database",
                "volumes": ["ruby-helloworld-data"]
              }
            },
            "mid": {
              "failurePolicy": "Abort",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR2",
                    "value": "custom_value2"
                  }
                ],
                "containerName": "ruby-helloworld-database",
                "volumes": ["ruby-helloworld-data"]
              }
            },
            "post": {
              "failurePolicy": "Ignore",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR2",
                    "value": "custom_value2"
                  }
                ],
                "containerName": "ruby-helloworld-database",
                "volumes": ["ruby-helloworld-data"]
              }
            }
          },
          "resources": {}
        },
        "triggers": [
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 1,
        "selector": {
          "name": "database"
        },
        "template": {
          "metadata": {
            "labels": {
              "name": "database"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "ruby-helloworld-database",
                "image": "centos/mysql-57-centos7:latest",
                "ports": [
                  {
                    "containerPort": 3306,
                    "protocol": "TCP"
                  }
                ],
                "env": [
                  {
                    "name": "MYSQL_USER",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-user"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_PASSWORD",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-password"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_DATABASE",
                    "value": "${MYSQL_DATABASE}"
                  }
                ],
                "resources": {},
                "volumeMounts": [
                  {
                    "name": "ruby-helloworld-data",
                    "mountPath": "/var/lib/mysql/data"
                  }
                ],
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "Always",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "volumes": [
              {
                "name": "ruby-helloworld-data",
                "emptyDir": {
                  "medium": ""
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      },
      "status": {}
    }
  ],
  "parameters": [
    {
      "name": "MYSQL_USER",
      "description": "database username",
      "generate": "expression",
      "from": "user[A-Z0-9]{3}",
      "required": true
    },
    {
      "name": "MYSQL_PASSWORD",
      "description": "database password",
      "generate": "expression",
      "from": "[a-zA-Z0-9]{8}",
      "required": true
    },
    {
      "name": "MYSQL_DATABASE",
      "description": "database name",
      "value": "root",
      "required": true
    }
  ],
  "labels": {
    "template": "application-template-custombuild"
  }
}
`)

func testExtendedTestdataBuildsApplicationTemplateCustombuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsApplicationTemplateCustombuildJson, nil
}

func testExtendedTestdataBuildsApplicationTemplateCustombuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsApplicationTemplateCustombuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/application-template-custombuild.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildPostcommitDockerYaml = []byte(`apiVersion: v1
kind: List
metadata: {}
items:
- apiVersion: v1
  kind: BuildConfig
  metadata:
    name: mydockertest
    labels:
      name: test
  spec:
    triggers: []
    runPolicy: Serial
    source:
      dockerfile: |
        FROM busybox:latest
    strategy:
      type: Docker
      dockerStrategy:
        env:
          - name: BUILD_LOGLEVEL
            value: "5"
    resources: {}
    postCommit:
      command: ["touch"]
      args: ["/tmp/postCommit"]
    nodeSelector: null
  status:
    lastVersion: 0
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    name: mydockertest
  spec:
    replicas: 1
    selector:
      app: mydockertest
      deploymentconfig: mydockertest
    strategy:
      type: Rolling
    template:
      metadata:
        labels:
          app: mydockertest
          deploymentconfig: mydockertest
      spec:
        containers:
        - image:
          imagePullPolicy: Always
          readinessProbe:
            httpGet:
              port: 8080
          name: mydockertest
          ports:
          - containerPort: 8080
            protocol: TCP
          - containerPort: 8888
            protocol: TCP
          terminationMessagePath: /dev/termination-log
        dnsPolicy: ClusterFirst
        restartPolicy: Always
        securityContext: {}
    triggers:
    - imageChangeParams:
        automatic: true
        containerNames:
        - mydockertest
        from:
          kind: ImageStreamTag
          name: mydockertest:latest
      type: ImageChange
    - type: ConfigChange
`)

func testExtendedTestdataBuildsBuildPostcommitDockerYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildPostcommitDockerYaml, nil
}

func testExtendedTestdataBuildsBuildPostcommitDockerYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildPostcommitDockerYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-postcommit/docker.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildPostcommitImagestreamsYaml = []byte(`apiVersion: v1
kind: List
metadata: {}
items:
- kind: ImageStream
  apiVersion: v1
  metadata:
    name: mydockertest
- kind: ImageStream
  apiVersion: v1
  metadata:
    name: mys2itest
`)

func testExtendedTestdataBuildsBuildPostcommitImagestreamsYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildPostcommitImagestreamsYaml, nil
}

func testExtendedTestdataBuildsBuildPostcommitImagestreamsYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildPostcommitImagestreamsYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-postcommit/imagestreams.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildPostcommitStiYaml = []byte(`apiVersion: v1
kind: List
metadata: {}
items:
- apiVersion: v1
  kind: BuildConfig
  metadata:
    name: mys2itest
    labels:
      name: test
  spec:
    triggers: []
    runPolicy: Serial
    source:
      type: Git
      git:
        uri: 'https://github.com/sclorg/nodejs-ex'
    strategy:
      type: Source
      sourceStrategy:
        from:
          kind: DockerImage
          name: docker.io/openshift/test-build-simples2i:latest
    resources: {}
    postCommit: {}
    nodeSelector: null
  status:
    lastVersion: 0
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    name: mys2itest
  spec:
    replicas: 1
    selector:
      app: mys2itest
      deploymentconfig: mys2itest
    strategy:
      type: Rolling
    template:
      metadata:
        labels:
          app: mys2itest
          deploymentconfig: mys2itest
      spec:
        containers:
        - image:
          imagePullPolicy: Always
          name: mys2itest
          terminationMessagePath: /dev/termination-log
        dnsPolicy: ClusterFirst
        restartPolicy: Always
        securityContext: {}
    triggers:
    - imageChangeParams:
        automatic: true
        containerNames:
        - mys2itest
        from:
          kind: ImageStreamTag
          name: mys2itest:latest
      type: ImageChange
    - type: ConfigChange
`)

func testExtendedTestdataBuildsBuildPostcommitStiYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildPostcommitStiYaml, nil
}

func testExtendedTestdataBuildsBuildPostcommitStiYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildPostcommitStiYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-postcommit/sti.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildPruningDefaultGroupBuildConfigYaml = []byte(`apiVersion: build.openshift.io/v1
kind: BuildConfig
metadata:
  name: myphp
spec:
  source:
    type: Git
    git:
      uri: 'https://github.com/sclorg/cakephp-ex.git'
  strategy:
    type: Source
    sourceStrategy:
      from:
        kind: ImageStreamTag
        namespace: openshift
        name: 'php:7.0'
`)

func testExtendedTestdataBuildsBuildPruningDefaultGroupBuildConfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildPruningDefaultGroupBuildConfigYaml, nil
}

func testExtendedTestdataBuildsBuildPruningDefaultGroupBuildConfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildPruningDefaultGroupBuildConfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-pruning/default-group-build-config.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildPruningDefaultLegacyBuildConfigYaml = []byte(`{
  "apiVersion": "v1",
  "kind": "BuildConfig",
  "metadata": {
    "name": "myphp"
  },
  "spec": {
    "source": {
      "type": "Git",
      "git": {
        "uri": "https://github.com/sclorg/cakephp-ex.git"
      }
    },
    "strategy": {
      "type": "Source",
      "sourceStrategy": {
        "from": {
          "kind": "ImageStreamTag",
          "namespace": "openshift",
          "name": "php:7.0"
        }
      }
    }
  }
}`)

func testExtendedTestdataBuildsBuildPruningDefaultLegacyBuildConfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildPruningDefaultLegacyBuildConfigYaml, nil
}

func testExtendedTestdataBuildsBuildPruningDefaultLegacyBuildConfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildPruningDefaultLegacyBuildConfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-pruning/default-legacy-build-config.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildPruningErroredBuildConfigYaml = []byte(`apiVersion: v1
kind: BuildConfig
metadata:
  name: myphp
spec:
  failedBuildsHistoryLimit: 2
  source:
    type: Git
    git:
      uri: 'https://github.com/sclorg/cakephp-ex.git'
      ref: master
  strategy:
    type: Source
    sourceStrategy:
      env:
        - name: FIELDREF_ENV
          valueFrom:
            fieldRef:
              fieldPath: metadata.nofield
      from:
        kind: ImageStreamTag
        namespace: openshift
        name: 'php:7.0'
`)

func testExtendedTestdataBuildsBuildPruningErroredBuildConfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildPruningErroredBuildConfigYaml, nil
}

func testExtendedTestdataBuildsBuildPruningErroredBuildConfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildPruningErroredBuildConfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-pruning/errored-build-config.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildPruningFailedBuildConfigYaml = []byte(`apiVersion: v1
kind: BuildConfig
metadata:
  name: myphp
  labels:
    app: myphp
  annotations:
    openshift.io/generated-by: OpenShiftWebConsole
spec:
  failedBuildsHistoryLimit: 2
  source:
    type: Git
    git:
      uri: 'https://github.com/openshift/non-working-example.git'
  strategy:
    type: Source
    sourceStrategy:
      from:
        kind: ImageStreamTag
        namespace: openshift
        name: 'php:7.0'
`)

func testExtendedTestdataBuildsBuildPruningFailedBuildConfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildPruningFailedBuildConfigYaml, nil
}

func testExtendedTestdataBuildsBuildPruningFailedBuildConfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildPruningFailedBuildConfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-pruning/failed-build-config.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildPruningFailedPipelineYaml = []byte(`kind: "BuildConfig"
apiVersion: "v1"
metadata:
  name: "failed-pipeline"
spec:
  failedBuildsHistoryLimit: 2
  strategy:
    jenkinsPipelineStrategy:
      jenkinsfile: |-
              node() {
                sh 'exit 1'
              }
      type: JenkinsPipeline
`)

func testExtendedTestdataBuildsBuildPruningFailedPipelineYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildPruningFailedPipelineYaml, nil
}

func testExtendedTestdataBuildsBuildPruningFailedPipelineYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildPruningFailedPipelineYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-pruning/failed-pipeline.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildPruningImagestreamYaml = []byte(`apiVersion: v1
kind: ImageStream
metadata:
  name: myphp
`)

func testExtendedTestdataBuildsBuildPruningImagestreamYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildPruningImagestreamYaml, nil
}

func testExtendedTestdataBuildsBuildPruningImagestreamYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildPruningImagestreamYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-pruning/imagestream.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildPruningSuccessfulBuildConfigYaml = []byte(`apiVersion: v1
kind: BuildConfig
metadata:
  name: myphp
  labels:
    app: myphp
  annotations:
    openshift.io/generated-by: OpenShiftWebConsole
spec:
  successfulBuildsHistoryLimit: 2
  source:
    dockerfile: |
      FROM busybox
      RUN touch /php-file
  strategy:
    dockerStrategy: {}`)

func testExtendedTestdataBuildsBuildPruningSuccessfulBuildConfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildPruningSuccessfulBuildConfigYaml, nil
}

func testExtendedTestdataBuildsBuildPruningSuccessfulBuildConfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildPruningSuccessfulBuildConfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-pruning/successful-build-config.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildPruningSuccessfulPipelineYaml = []byte(`kind: "BuildConfig"
apiVersion: "v1"
metadata:
  name: "successful-pipeline"
spec:
  successfulBuildsHistoryLimit: 2
  strategy:
    jenkinsPipelineStrategy:
      jenkinsfile: |-
        node() {
          sh 'exit 0' 
        }
      type: JenkinsPipeline
`)

func testExtendedTestdataBuildsBuildPruningSuccessfulPipelineYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildPruningSuccessfulPipelineYaml, nil
}

func testExtendedTestdataBuildsBuildPruningSuccessfulPipelineYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildPruningSuccessfulPipelineYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-pruning/successful-pipeline.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildQuotaS2iBinAssemble = []byte(`#!/bin/sh

# Seeing issues w/ buildah log output being intermingled with the container
# output, so adding a sleep in an attempt to let the buildah log output
# stop before the container output starts
sleep 10
echo -n MEMORY= && cat /sys/fs/cgroup/memory/memory.limit_in_bytes
echo -n MEMORYSWAP= && cat /sys/fs/cgroup/memory/memory.memsw.limit_in_bytes

if [ -e /sys/fs/cgroup/cpuacct,cpu ]; then
	quota=$(</sys/fs/cgroup/cpuacct,cpu/cpu.cfs_quota_us)
	echo -n QUOTA= && cat /sys/fs/cgroup/cpuacct,cpu/cpu.cfs_quota_us
	echo -n SHARES= && cat /sys/fs/cgroup/cpuacct,cpu/cpu.shares
	echo -n PERIOD= && cat /sys/fs/cgroup/cpuacct,cpu/cpu.cfs_period_us
else
	quota=$(</sys/fs/cgroup/cpu,cpuacct/cpu.cfs_quota_us)
	echo -n QUOTA= && cat /sys/fs/cgroup/cpu,cpuacct/cpu.cfs_quota_us
	echo -n SHARES= && cat /sys/fs/cgroup/cpu,cpuacct/cpu.shares
	echo -n PERIOD= && cat /sys/fs/cgroup/cpu,cpuacct/cpu.cfs_period_us
fi

if [ "${quota}" == "-1" ]; then
	cat /proc/self/cgroup
	cat /proc/self/mountinfo
	findmnt
fi
`)

func testExtendedTestdataBuildsBuildQuotaS2iBinAssembleBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildQuotaS2iBinAssemble, nil
}

func testExtendedTestdataBuildsBuildQuotaS2iBinAssemble() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildQuotaS2iBinAssembleBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-quota/.s2i/bin/assemble", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildQuotaDockerfile = []byte(`FROM centos:7
USER root

ADD .s2i/bin/assemble .
RUN ./assemble

# exit 1 causes the docker build to fail which causes docker to show the output # of all commands like 'assemble' above.
RUN exit 1

`)

func testExtendedTestdataBuildsBuildQuotaDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildQuotaDockerfile, nil
}

func testExtendedTestdataBuildsBuildQuotaDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildQuotaDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-quota/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsDockerfile = []byte(`FROM docker.io/busybox

USER root
ADD ./secret-dir /secrets
COPY ./secret2 /
ADD ./config-dir /configs
COPY ./this /

# Create a shell script that will output secrets and configMaps when the image is run
RUN echo '#!/bin/sh' > /secret_report.sh
RUN echo '(test -f /secrets/secret1 && echo -n "secret1=" && cat /secrets/secret1)' >> /secret_report.sh
RUN echo '(test -f /secret2 && echo -n "relative-secret2=" && cat /secret2)' >> /secret_report.sh
RUN echo '(test -f /configs/foo && echo -n "foo=" && cat /configs/foo)' >> /secret_report.sh
RUN echo '(test -f /this && echo -n "relative-this=" && cat /this)' >> /secret_report.sh
RUN chmod 755 /secret_report.sh

CMD ["/bin/sh", "-c", "/secret_report.sh"]
`)

func testExtendedTestdataBuildsBuildSecretsDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsDockerfile, nil
}

func testExtendedTestdataBuildsBuildSecretsDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinAssemble = []byte(`#!/bin/bash

# Copy secrets into a location they can be output during image run

mkdir -p "${HOME}/testsecret"
if [[ -f /tmp/secret1 ]]; then
    # Copy three secrets defined in testsecret fixture to directory
    cp /tmp/secret? "${HOME}/testsecret"
else
    echo "Unable to locate testsecret fixture files"
    exit 1
fi

mkdir -p "${HOME}/testsecret2"
if [[ -f secret1  ]]; then
    # Copy three secrets defined in testsecret2 fixture to directory
    cp secret? "${HOME}/testsecret2"
else
    echo "Unable to locate testsecret2 fixture files"
    exit 2
fi 

mkdir -p "${HOME}/testconfig"
if [[ -f /tmp/configmap/foo ]]; then
    # Copy three configMap entries defined in configmap1 fixture to directory
    cp /tmp/configmap/* "${HOME}/testconfig"
else
    echo "Unable to locate test-configmap fixture files"
    exit 3
fi

mkdir -p "${HOME}/testconfig2"
if [[ -f configmap2/foo  ]]; then
    # Copy three configMap entries defined in configmap2 fixture to directory
    cp configmap2/* "${HOME}/testconfig2"
else
    echo "Unable to locate test-configmap-2 fixture files"
    exit 4
fi
`)

func testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinAssembleBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinAssemble, nil
}

func testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinAssemble() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinAssembleBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/s2i-binary-dir/.s2i/bin/assemble", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinRun = []byte(`#!/bin/bash

# Ensure none of the build config inject secrets still exist in the file system

secrets=(secret1 secret2 secret3)
configMaps=(foo this red)

function checkSecret() {
    dir=$1
    file=$2
    if [[ -e "${dir}/${file}" ]]; then
        echo "Found secret file which should have been deleted: ${dir}/${file}"
        exit 1
    fi
}

function checkConfigMap() {
    dir=$1
    file=$2
    if [[ -a "${dir}/${file}" ]]; then
        if [[ ! -s "${dir}/${file}" ]]; then
            echo "Found empty configMap file which should not have been truncated: ${dir}/${file}"
            exit 1
        fi
    else
        echo "ConfigMap file ${file} is missing from ${dir}."
        exit 1
    fi
}

for s in ${secrets[@]}; do
    checkSecret "/tmp" $s
    checkSecret "." $s
done

for c in ${configMaps[@]}; do
    checkConfigMap "/tmp/configmap" $c
    checkConfigMap "configmap2" $c
done

# Print out the secrets copied into the image during assemble
cd "${HOME}"
for s in testsecret/* testsecret2/* testconfig/* testconfig2/*; do
    echo -n "${s}=" && cat "${s}"
done`)

func testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinRunBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinRun, nil
}

func testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinRun() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinRunBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/s2i-binary-dir/.s2i/bin/run", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsS2iBinaryDirGemfile = []byte(`source "https://rubygems.org"

gem "rack"
`)

func testExtendedTestdataBuildsBuildSecretsS2iBinaryDirGemfileBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsS2iBinaryDirGemfile, nil
}

func testExtendedTestdataBuildsBuildSecretsS2iBinaryDirGemfile() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsS2iBinaryDirGemfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/s2i-binary-dir/Gemfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsS2iBinaryDirConfigRu = []byte(`run Proc.new {|env| [200, {"Content-Type" => "text/html"}, [ENV['TEST_ENV']]]}
`)

func testExtendedTestdataBuildsBuildSecretsS2iBinaryDirConfigRuBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsS2iBinaryDirConfigRu, nil
}

func testExtendedTestdataBuildsBuildSecretsS2iBinaryDirConfigRu() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsS2iBinaryDirConfigRuBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/s2i-binary-dir/config.ru", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsTestConfigmap2Json = []byte(`{
    "kind": "ConfigMap",
    "apiVersion": "v1",
    "metadata": {
        "name": "test-configmap-2",
        "creationTimestamp": null
    },
    "data": {
        "foo": "bar\n",
        "this": "that\n",
        "red": "hat\n"
    }
}
`)

func testExtendedTestdataBuildsBuildSecretsTestConfigmap2JsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsTestConfigmap2Json, nil
}

func testExtendedTestdataBuildsBuildSecretsTestConfigmap2Json() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsTestConfigmap2JsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/test-configmap-2.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsTestConfigmapJson = []byte(`{
    "kind": "ConfigMap",
    "apiVersion": "v1",
    "metadata": {
        "name": "test-configmap"
    },
    "data": {
        "foo": "bar\n",
        "this": "that\n",
        "red": "hat\n"
    }
}
`)

func testExtendedTestdataBuildsBuildSecretsTestConfigmapJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsTestConfigmapJson, nil
}

func testExtendedTestdataBuildsBuildSecretsTestConfigmapJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsTestConfigmapJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/test-configmap.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsTestDockerBuildJson = []byte(`{
  "kind": "BuildConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "test",
    "labels": {
      "name": "test"
    }
  },
  "spec": {
    "triggers": [],
    "source": {
      "type": "Binary",
      "binary": {},
      "secrets": [
        {
          "secret": {
            "name": "testsecret"
          },
          "destinationDir": "secret-dir"
        },
        {
          "secret": {
            "name": "testsecret2"
          }
        }
      ],
      "configMaps": [
        {
          "configMap": {
            "name": "test-configmap"
          },
          "destinationDir": "config-dir"
        },
        {
          "configMap": {
            "name": "test-configmap-2"
          }
        }
      ]
    },
    "strategy": {
      "type": "Docker",
      "dockerStrategy": {
        "from": {
          "kind": "DockerImage",
          "name": "docker.io/busybox:latest"
        },
        "env": [
          {
            "name": "BUILD_LOGLEVEL",
            "value": "5"
          }
        ]
      }
    },
    "output": {
      "to": {
        "kind": "ImageStreamTag",
        "name": "test:latest"
      }
    }
  }
}`)

func testExtendedTestdataBuildsBuildSecretsTestDockerBuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsTestDockerBuildJson, nil
}

func testExtendedTestdataBuildsBuildSecretsTestDockerBuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsTestDockerBuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/test-docker-build.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsTestIsJson = []byte(`{
  "kind": "ImageStream",
  "apiVersion": "v1",
  "metadata": {
    "name": "test"
  }
}
`)

func testExtendedTestdataBuildsBuildSecretsTestIsJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsTestIsJson, nil
}

func testExtendedTestdataBuildsBuildSecretsTestIsJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsTestIsJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/test-is.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsTestS2iBuildJson = []byte(`{
  "kind": "BuildConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "test",
    "labels": {
      "name": "test"
    }
  },
  "spec": {
    "triggers": [],
    "source": {
      "type": "Binary",
      "binary": {},
      "secrets": [
        {
          "secret": {
            "name": "testsecret"
          },
          "destinationDir": "/tmp"
        },
        {
          "secret": {
            "name": "testsecret2"
          }
        }
      ],
      "configMaps": [
        {
          "configMap": {
            "name": "test-configmap"
          },
          "destinationDir": "/tmp/configmap"
        },
        {
          "configMap": {
            "name": "test-configmap-2"
          },
          "destinationDir": "configmap2"
        }
      ]
    },
    "strategy": {
      "type": "Source",
      "sourceStrategy": {
        "from": {
          "kind": "DockerImage",
          "name": "docker.io/centos/ruby-25-centos7"
        },
        "env": [
          {
            "name": "BUILD_LOGLEVEL",
            "value": "5"
          }
        ]
      }
    },
    "output": {
      "to": {
        "kind": "ImageStreamTag",
        "name": "test:latest"
      }
    }
  }
}`)

func testExtendedTestdataBuildsBuildSecretsTestS2iBuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsTestS2iBuildJson, nil
}

func testExtendedTestdataBuildsBuildSecretsTestS2iBuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsTestS2iBuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/test-s2i-build.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsTestSecret2Json = []byte(`{
    "kind": "Secret",
    "apiVersion": "v1",
    "metadata": {
        "name": "testsecret2",
        "creationTimestamp": null
    },
    "data": {
        "secret1": "c2VjcmV0MQo=",
        "secret2": "c2VjcmV0Mgo=",
        "secret3": "c2VjcmV0Mwo="
    },
    "type": "Opaque"
}
`)

func testExtendedTestdataBuildsBuildSecretsTestSecret2JsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsTestSecret2Json, nil
}

func testExtendedTestdataBuildsBuildSecretsTestSecret2Json() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsTestSecret2JsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/test-secret-2.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildSecretsTestSecretJson = []byte(`{
    "kind": "Secret",
    "apiVersion": "v1",
    "metadata": {
        "name": "testsecret",
        "creationTimestamp": null
    },
    "data": {
        "secret1": "c2VjcmV0MQo=",
        "secret2": "c2VjcmV0Mgo=",
        "secret3": "c2VjcmV0Mwo="
    },
    "type": "Opaque"
}
`)

func testExtendedTestdataBuildsBuildSecretsTestSecretJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildSecretsTestSecretJson, nil
}

func testExtendedTestdataBuildsBuildSecretsTestSecretJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildSecretsTestSecretJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-secrets/test-secret.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildTimingDockerfile = []byte(`FROM centos/ruby-25-centos7

USER root
`)

func testExtendedTestdataBuildsBuildTimingDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildTimingDockerfile, nil
}

func testExtendedTestdataBuildsBuildTimingDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildTimingDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-timing/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinAssemble = []byte(`#!/bin/sh

`)

func testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinAssembleBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinAssemble, nil
}

func testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinAssemble() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinAssembleBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-timing/s2i-binary-dir/.s2i/bin/assemble", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinRun = []byte(`#!/bin/sh

`)

func testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinRunBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinRun, nil
}

func testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinRun() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinRunBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-timing/s2i-binary-dir/.s2i/bin/run", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildTimingS2iBinaryDirGemfile = []byte(`source "https://rubygems.org"

gem "rack"
`)

func testExtendedTestdataBuildsBuildTimingS2iBinaryDirGemfileBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildTimingS2iBinaryDirGemfile, nil
}

func testExtendedTestdataBuildsBuildTimingS2iBinaryDirGemfile() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildTimingS2iBinaryDirGemfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-timing/s2i-binary-dir/Gemfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildTimingS2iBinaryDirConfigRu = []byte(`run Proc.new {|env| [200, {"Content-Type" => "text/html"}, [ENV['TEST_ENV']]]}
`)

func testExtendedTestdataBuildsBuildTimingS2iBinaryDirConfigRuBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildTimingS2iBinaryDirConfigRu, nil
}

func testExtendedTestdataBuildsBuildTimingS2iBinaryDirConfigRu() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildTimingS2iBinaryDirConfigRuBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-timing/s2i-binary-dir/config.ru", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildTimingTestDockerBuildJson = []byte(`{
  "kind": "BuildConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "test",
    "labels": {
      "name": "test"
    }
  },
  "spec": {
    "triggers": [],
    "source": {
      "type": "Binary",
      "binary": {}
    },
    "strategy": {
      "type": "Docker",
      "dockerStrategy": {
        "forcePull": true,
        "from": {
          "kind": "DockerImage",
          "name": "docker.io/busybox:latest"
        },
        "env": [
          {
            "name": "BUILD_LOGLEVEL",
            "value": "5"
          }
        ]
      }
    },
    "output": {
      "to": {
        "kind": "ImageStreamTag",
        "name": "test:latest"
      }
    }
  }
}
`)

func testExtendedTestdataBuildsBuildTimingTestDockerBuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildTimingTestDockerBuildJson, nil
}

func testExtendedTestdataBuildsBuildTimingTestDockerBuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildTimingTestDockerBuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-timing/test-docker-build.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildTimingTestIsJson = []byte(`{
  "kind": "ImageStream",
  "apiVersion": "v1",
  "metadata": {
    "name": "test"
  }
}
`)

func testExtendedTestdataBuildsBuildTimingTestIsJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildTimingTestIsJson, nil
}

func testExtendedTestdataBuildsBuildTimingTestIsJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildTimingTestIsJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-timing/test-is.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsBuildTimingTestS2iBuildJson = []byte(`{
  "kind": "BuildConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "test",
    "labels": {
      "name": "test"
    }
  },
  "spec": {
    "triggers": [],
    "source": {
      "type": "Binary",
      "binary": {}
    },
    "strategy": {
      "type": "Source",
      "sourceStrategy": {
        "from": {
          "kind": "DockerImage",
          "name": "docker.io/openshift/test-build-simples2i:latest"
        },
        "env": [
          {
            "name": "BUILD_LOGLEVEL",
            "value": "5"
          }
        ]
      }
    },
    "output": {
      "to": {
        "kind": "ImageStreamTag",
        "name": "test:latest"
      }
    }
  }
}
`)

func testExtendedTestdataBuildsBuildTimingTestS2iBuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsBuildTimingTestS2iBuildJson, nil
}

func testExtendedTestdataBuildsBuildTimingTestS2iBuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsBuildTimingTestS2iBuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/build-timing/test-s2i-build.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsClusterConfigRegistryBlacklistYaml = []byte(`kind: Image
apiVersion: config.openshift.io/v1
metadata:
  name: cluster
spec:
  registrySources:
      blockedRegistries:
      - docker.io
      - quay.io
`)

func testExtendedTestdataBuildsClusterConfigRegistryBlacklistYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsClusterConfigRegistryBlacklistYaml, nil
}

func testExtendedTestdataBuildsClusterConfigRegistryBlacklistYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsClusterConfigRegistryBlacklistYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/cluster-config/registry-blacklist.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsClusterConfigRegistryWhitelistYaml = []byte(`kind: Image
apiVersion: config.openshift.io/v1
metadata:
  name: cluster
spec:
  registrySources:
      allowedRegistries:
      - quay.io
`)

func testExtendedTestdataBuildsClusterConfigRegistryWhitelistYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsClusterConfigRegistryWhitelistYaml, nil
}

func testExtendedTestdataBuildsClusterConfigRegistryWhitelistYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsClusterConfigRegistryWhitelistYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/cluster-config/registry-whitelist.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsClusterConfigYaml = []byte(`kind: Image
apiVersion: config.openshift.io/v1
metadata:
  name: cluster
spec: {}
`)

func testExtendedTestdataBuildsClusterConfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsClusterConfigYaml, nil
}

func testExtendedTestdataBuildsClusterConfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsClusterConfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/cluster-config.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsGradlePipelineYaml = []byte(`kind: BuildConfig
apiVersion: v1
metadata:
  name: gradle
spec:
  strategy:
    type: JenkinsPipeline
    jenkinsPipelineStrategy:
      jenkinsfile: |-
        node("maven") {
          git url: "https://github.com/openshift/gs-spring-boot-spock.git"
          sh "./gradlew build"
        }
  triggers:
  - type: ConfigChange
`)

func testExtendedTestdataBuildsGradlePipelineYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsGradlePipelineYaml, nil
}

func testExtendedTestdataBuildsGradlePipelineYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsGradlePipelineYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/gradle-pipeline.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsIncrementalAuthBuildJson = []byte(`{
  "kind": "Template",
  "apiVersion": "v1",
  "metadata": {
    "name": "push-pull-builder",
    "creationTimestamp": null,
    "annotations": {
      "description": "This defines a build which pulls from and pushes to the internal registry",
      "iconClass": "icon-ruby",
      "tags": "instant-app,ruby,mysql"
    }
  },
  "objects": [
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "incremental-image",
        "creationTimestamp": null
      },
      "spec": {}
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "incremental-build",
        "creationTimestamp": null,
        "labels": {
          "name": "incremental-build"
        }
      },
      "spec": {
        "source": {
          "type": "Git",
          "git": {
            "uri": "https://github.com/openshift/incremental-app.git"
          }
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "env": [
              {
                "name": "BUILD_LOGLEVEL",
                "value": "5"
              }
            ],
            "from": {
              "kind": "DockerImage",
              "name": "centos/ruby-25-centos7:latest"
            },
            "incremental": true
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "incremental-image:latest"
          }
        }
      }
    }
  ],
  "parameters": [],
  "labels": {
    "template": "application-template-stibuild"
  }
}`)

func testExtendedTestdataBuildsIncrementalAuthBuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsIncrementalAuthBuildJson, nil
}

func testExtendedTestdataBuildsIncrementalAuthBuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsIncrementalAuthBuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/incremental-auth-build.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsS2iEnvironmentBuildAppS2iEnvironment = []byte(`TEST_ENV=success
`)

func testExtendedTestdataBuildsS2iEnvironmentBuildAppS2iEnvironmentBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsS2iEnvironmentBuildAppS2iEnvironment, nil
}

func testExtendedTestdataBuildsS2iEnvironmentBuildAppS2iEnvironment() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsS2iEnvironmentBuildAppS2iEnvironmentBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/s2i-environment-build-app/.s2i/environment", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsS2iEnvironmentBuildAppGemfile = []byte(`source "https://rubygems.org"

gem "rack"
`)

func testExtendedTestdataBuildsS2iEnvironmentBuildAppGemfileBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsS2iEnvironmentBuildAppGemfile, nil
}

func testExtendedTestdataBuildsS2iEnvironmentBuildAppGemfile() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsS2iEnvironmentBuildAppGemfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/s2i-environment-build-app/Gemfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsS2iEnvironmentBuildAppConfigRu = []byte(`run Proc.new {|env| [200, {"Content-Type" => "text/html"}, [ENV['TEST_ENV']]]}
`)

func testExtendedTestdataBuildsS2iEnvironmentBuildAppConfigRuBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsS2iEnvironmentBuildAppConfigRu, nil
}

func testExtendedTestdataBuildsS2iEnvironmentBuildAppConfigRu() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsS2iEnvironmentBuildAppConfigRuBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/s2i-environment-build-app/config.ru", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsStatusfailAssembleS2iBinAssemble = []byte(`#!/usr/bin/env bash

exit 123123
`)

func testExtendedTestdataBuildsStatusfailAssembleS2iBinAssembleBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsStatusfailAssembleS2iBinAssemble, nil
}

func testExtendedTestdataBuildsStatusfailAssembleS2iBinAssemble() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsStatusfailAssembleS2iBinAssembleBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/statusfail-assemble/.s2i/bin/assemble", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsStatusfailBadcontextdirs2iYaml = []byte(`kind: BuildConfig
apiVersion: v1
metadata:
  name: statusfail-badcontextdirsourcetoimage
spec:
  source:
    git:
      uri: "https://github.com/openshift/ruby-hello-world"
    contextDir: "foobar"
  strategy:
    type: Source
    sourceStrategy:
      from:
        kind: DockerImage
        name: centos/ruby-23-centos7:latest
`)

func testExtendedTestdataBuildsStatusfailBadcontextdirs2iYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsStatusfailBadcontextdirs2iYaml, nil
}

func testExtendedTestdataBuildsStatusfailBadcontextdirs2iYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsStatusfailBadcontextdirs2iYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/statusfail-badcontextdirs2i.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsStatusfailFailedassembleYaml = []byte(`kind: BuildConfig
apiVersion: v1
metadata:
  name: statusfail-assemblescript
spec:
  source:
      type: binary
  strategy:
    type: Source
    sourceStrategy:
      from:
        kind: DockerImage
        name: docker.io/openshift/test-build-simples2i:latest
`)

func testExtendedTestdataBuildsStatusfailFailedassembleYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsStatusfailFailedassembleYaml, nil
}

func testExtendedTestdataBuildsStatusfailFailedassembleYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsStatusfailFailedassembleYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/statusfail-failedassemble.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsStatusfailFetchbuilderimageYaml = []byte(`kind: BuildConfig
apiVersion: v1
metadata:
  name: statusfail-builderimage
spec:
  source:
    git:
      uri: "https://github.com/openshift/ruby-hello-world.git"
  strategy:
    type: Docker
    dockerStrategy:
      from:
        kind: DockerImage
        name: fail/me:latest
`)

func testExtendedTestdataBuildsStatusfailFetchbuilderimageYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsStatusfailFetchbuilderimageYaml, nil
}

func testExtendedTestdataBuildsStatusfailFetchbuilderimageYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsStatusfailFetchbuilderimageYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/statusfail-fetchbuilderimage.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsStatusfailFetchsourcedockerYaml = []byte(`kind: BuildConfig
apiVersion: v1
metadata:
  name: statusfail-fetchsourcedocker
spec:
  source:
    git:
      uri: "https://failure/docker/status"
  strategy:
    type: Docker
    dockerStrategy:
      from:
        kind: DockerImage
        name: centos/ruby-23-centos7:latest
`)

func testExtendedTestdataBuildsStatusfailFetchsourcedockerYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsStatusfailFetchsourcedockerYaml, nil
}

func testExtendedTestdataBuildsStatusfailFetchsourcedockerYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsStatusfailFetchsourcedockerYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/statusfail-fetchsourcedocker.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsStatusfailFetchsources2iYaml = []byte(`kind: BuildConfig
apiVersion: v1
metadata:
  name: statusfail-fetchsourcesourcetoimage
spec:
  source:
    git:
      uri: "https://failure/sourcetoimage/status"
  strategy:
    type: Source
    sourceStrategy:
      from:
        kind: DockerImage
        name: centos/ruby-23-centos7:latest
`)

func testExtendedTestdataBuildsStatusfailFetchsources2iYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsStatusfailFetchsources2iYaml, nil
}

func testExtendedTestdataBuildsStatusfailFetchsources2iYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsStatusfailFetchsources2iYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/statusfail-fetchsources2i.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsStatusfailGenericreasonYaml = []byte(`kind: BuildConfig
apiVersion: v1
metadata:
  name: statusfail-genericfailure
spec:
  source:
    git:
      uri: "https://github.com/sclorg/ruby-ex"
  strategy:
    type: Source
    sourceStrategy:
      from:
        kind: DockerImage
        name: centos/ruby-23-centos7:latest
      scripts: "http://example.org/scripts"
      env:
        - name: http_proxy
          value: "http://%"
`)

func testExtendedTestdataBuildsStatusfailGenericreasonYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsStatusfailGenericreasonYaml, nil
}

func testExtendedTestdataBuildsStatusfailGenericreasonYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsStatusfailGenericreasonYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/statusfail-genericreason.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsStatusfailOomkilledYaml = []byte(`kind: BuildConfig
apiVersion: v1
metadata:
  name: statusfail-oomkilled
spec:
  resources:
    limits:
      memory: 50Mi
  source:
    git:
      uri: "https://github.com/openshift/ruby-hello-world"
  strategy:
    type: Source
    sourceStrategy:
      from:
        kind: DockerImage
        name: centos/ruby-23-centos7:latest
      forcePull: true
`)

func testExtendedTestdataBuildsStatusfailOomkilledYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsStatusfailOomkilledYaml, nil
}

func testExtendedTestdataBuildsStatusfailOomkilledYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsStatusfailOomkilledYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/statusfail-oomkilled.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsStatusfailPostcommithookYaml = []byte(`kind: BuildConfig
apiVersion: v1
metadata:
  name: statusfail-postcommithook
spec:
  source:
    git:
      uri: "https://github.com/openshift/ruby-hello-world.git"
  postCommit:
    args:
      - failme
  strategy:
    sourceStrategy:
      from:
        kind: DockerImage
        name: docker.io/openshift/test-build-simples2i:latest
    type: Source
`)

func testExtendedTestdataBuildsStatusfailPostcommithookYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsStatusfailPostcommithookYaml, nil
}

func testExtendedTestdataBuildsStatusfailPostcommithookYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsStatusfailPostcommithookYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/statusfail-postcommithook.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsStatusfailPushtoregistryYaml = []byte(`kind: BuildConfig
apiVersion: v1
metadata:
  name: statusfail-pushtoregistry
spec:
  source:
    git:
      uri: "https://github.com/openshift/ruby-hello-world.git"
  output:
    to:
      kind: DockerImage
      name: bogus.registry/image:latest
  strategy:
    sourceStrategy:
      from:
        kind: DockerImage
        name: docker.io/openshift/test-build-simples2i:latest
    type: Source
`)

func testExtendedTestdataBuildsStatusfailPushtoregistryYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsStatusfailPushtoregistryYaml, nil
}

func testExtendedTestdataBuildsStatusfailPushtoregistryYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsStatusfailPushtoregistryYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/statusfail-pushtoregistry.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestAuthBuildYaml = []byte(`apiVersion: v1
kind: Template
labels:
  template: gitserver
metadata:
  name: gitserver
parameters:
- name: SOURCE_URL
  required: true
- name: SOURCE_SECRET
  required: true
objects:
- apiVersion: v1
  kind: ImageStream
  metadata:
    name: output
- apiVersion: v1
  kind: BuildConfig
  metadata:
    name: gitauthtest
  spec:
    source:
      git:
        uri: ${SOURCE_URL}
      type: Git
      sourceSecret:
        name: ${SOURCE_SECRET}
    strategy:
      sourceStrategy:
        env:
        - name: BUILD_LOGLEVEL
          value: "5"
        from:
          kind: DockerImage
          name: docker.io/openshift/test-build-simples2i:latest
      type: Source
    # this test specifically does a push, to help exercise the code that sets
    # environment variables on build pods (i.e., by having a source secret and
    # a push secret, multiple environment variables need to be set correctly for
    # the build to succeed).
    output:
      to:
        kind: ImageStreamTag
        name: output:latest
`)

func testExtendedTestdataBuildsTestAuthBuildYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestAuthBuildYaml, nil
}

func testExtendedTestdataBuildsTestAuthBuildYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestAuthBuildYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-auth-build.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestBcWithPrRefYaml = []byte(`kind: List
apiVersion: v1
items:
- kind: ImageStream
  apiVersion: v1
  metadata:
    name: bc-with-pr-ref
- kind: ImageStream
  apiVersion: v1
  metadata:
    name: bc-with-pr-ref-docker
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: bc-with-pr-ref
  spec:
    source:
      type: Git
      git:
        uri: https://github.com/sclorg/django-ex.git
        ref: refs/pull/121/head
    strategy:
      type: Source
      sourceStrategy:
        from:
          kind: ImageStreamTag
          name: python:latest
          namespace: openshift
    output:
      to:
        kind: ImageStreamTag
        name: bc-with-pr-ref:latest
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: bc-with-pr-ref-docker
  spec:
    source:
      type: Git
      git:
        uri: https://github.com/sclorg/django-ex.git
        ref: refs/pull/121/head
      dockerfile: FROM centos/python-36-centos7
    strategy:
      type: Docker
      dockerStrategy:
        from:
          kind: DockerImage
          name: centos/python-36-centos7
    output:
      to:
        kind: ImageStreamTag
        name: bc-with-pr-ref-docker:latest
`)

func testExtendedTestdataBuildsTestBcWithPrRefYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestBcWithPrRefYaml, nil
}

func testExtendedTestdataBuildsTestBcWithPrRefYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestBcWithPrRefYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-bc-with-pr-ref.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestBuildAppDockerfile = []byte(`FROM centos/ruby-25-centos7
USER default
EXPOSE 8080
ENV RACK_ENV production
ENV RAILS_ENV production
COPY . /opt/app-root/src/
RUN scl enable rh-ruby25 "bundle install"
CMD ["scl", "enable", "rh-ruby25", "./run.sh"]

USER default
`)

func testExtendedTestdataBuildsTestBuildAppDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestBuildAppDockerfile, nil
}

func testExtendedTestdataBuildsTestBuildAppDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestBuildAppDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-build-app/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestBuildAppGemfile = []byte(`source "https://rubygems.org"

gem "rack"
`)

func testExtendedTestdataBuildsTestBuildAppGemfileBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestBuildAppGemfile, nil
}

func testExtendedTestdataBuildsTestBuildAppGemfile() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestBuildAppGemfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-build-app/Gemfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestBuildAppConfigRu = []byte(`run Proc.new {|env| [200, {"Content-Type" => "text/html"}, [ENV['TEST_ENV']]]}
`)

func testExtendedTestdataBuildsTestBuildAppConfigRuBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestBuildAppConfigRu, nil
}

func testExtendedTestdataBuildsTestBuildAppConfigRu() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestBuildAppConfigRuBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-build-app/config.ru", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestBuildPodsvcJson = []byte(`{
  "kind": "Template",
  "apiVersion": "v1",
  "parameters": [
    {
      "name": "IMAGE_NAME",
      "required": true
    }
  ],
  "objects": [
    {
      "kind":"Pod",
      "apiVersion":"v1",
      "metadata":{
        "name":"build-test-pod",
        "labels":{
          "name":"build-test-pod"
        }
      },
      "spec":{
        "containers":[
          {
            "name":"test",
            "image":"${IMAGE_NAME}",
            "readinessProbe": {
              "httpGet": {
                "port": 8080
              }
            }
          }
        ],
        "dnsPolicy":"ClusterFirst"
      }
    },
    {
      "kind": "Service",
      "apiVersion":"v1",
      "metadata": {
        "name":"build-test-svc"
      },
      "spec": {
        "ports": [
          {
            "name": "8080-tcp",
            "protocol": "TCP",
            "port": 8080,
            "targetPort": 8080
          }
        ],
        "selector": {
          "name": "build-test-pod"
        }
      }
    }
  ]
}
`)

func testExtendedTestdataBuildsTestBuildPodsvcJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestBuildPodsvcJson, nil
}

func testExtendedTestdataBuildsTestBuildPodsvcJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestBuildPodsvcJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-build-podsvc.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestBuildProxyYaml = []byte(`kind: List
apiVersion: v1
metadata: {}
items:
- kind: ImageStream
  apiVersion: v1
  metadata:
    name: origin-ruby-sample
    creationTimestamp: 
  spec: {}
  status:
    dockerImageRepository: ''
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: sample-build
    creationTimestamp: 
  spec:
    triggers:
    - type: imageChange
      imageChange: {}
    source:
      type: Git
      git:
        uri: https://github.com/openshift/ruby-hello-world.git
        httpProxy: 127.0.0.1:3128
        httpsProxy: 127.0.0.1:3128
    strategy:
      type: Source
      sourceStrategy:
        env:
        - name: HTTPS_PROXY
          value: 127.0.0.1:3128
        - name: HTTP_PROXY
          value: 127.0.0.1:3128
        from:
          kind: DockerImage
          name: docker.io/openshift/test-build-simples2i:latest
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: sample-s2i-build-noproxy
    creationTimestamp: 
  spec:
    triggers:
    - type: imageChange
      imageChange: {}
    source:
      type: Git
      git:
        uri: https://github.com/openshift/ruby-hello-world.git
        httpProxy: http://gituser:password@proxy1.com
        httpsProxy: https://gituser:password@proxy2.com
        noProxy: github.com
    strategy:
      type: Source
      sourceStrategy:
        from:
          kind: DockerImage
          name: docker.io/openshift/test-build-simples2i:latest
        env:
        - name: SOME_HTTP_PROXY
          value: https://envuser:password@proxy3.com
        - name: SOME_HTTPS_PROXY
          value: https://envuser:password@proxy4.com
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: sample-docker-build-noproxy
    creationTimestamp: 
  spec:
    triggers:
    - type: imageChange
      imageChange: {}
    source:
      type: Git
      git:
        uri: https://github.com/openshift/ruby-hello-world.git
        httpProxy: http://gituser:password@proxy1.com
        httpsProxy: https://gituser:password@proxy2.com
        noProxy: github.com
    strategy:
      type: Docker
      dockerStrategy:
        from:
          # TODO: use ruby 2.5 image
          kind: DockerImage
          name: docker.io/centos/ruby-22-centos7
        env:
        - name: SOME_HTTP_PROXY
          value: https://envuser:password@proxy3.com
        - name: SOME_HTTPS_PROXY
          value: https://envuser:password@proxy4.com
`)

func testExtendedTestdataBuildsTestBuildProxyYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestBuildProxyYaml, nil
}

func testExtendedTestdataBuildsTestBuildProxyYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestBuildProxyYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-build-proxy.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestBuildRevisionJson = []byte(`{
  "kind": "List",
  "apiVersion": "v1",
  "metadata": {},
  "items": [
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "sample-build",
        "creationTimestamp": null
      },
      "spec": {
        "source": {
          "type": "Git",
          "git": {
            "uri": "git://github.com/openshift/ruby-hello-world.git"
          }
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/test-build-simples2i:latest"
            }
          }
        },
        "resources": {}
      },
      "status": {
        "lastVersion": 0
      }
    }
  ]
}
`)

func testExtendedTestdataBuildsTestBuildRevisionJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestBuildRevisionJson, nil
}

func testExtendedTestdataBuildsTestBuildRevisionJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestBuildRevisionJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-build-revision.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestBuildYaml = []byte(`kind: List
apiVersion: v1
metadata: {}
items:
- kind: ImageStream
  apiVersion: v1
  metadata:
    name: origin-ruby-sample
    creationTimestamp: 
  spec: {}
  status:
    dockerImageRepository: ''
- kind: Secret
  apiVersion: v1
  metadata:
    name: webhooksecret
    creationTimestamp: 
  data:
    WebHookSecretKey: c2VjcmV0dmFsdWUx
  type: Opaque
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: sample-build
    creationTimestamp: 
  spec:
    triggers:
    - type: ImageChange
      imageChange: {}
    - type: Generic
      generic:
        secret: "mysecret"
        secretReference: 
          name: "webhooksecret"
    source:
      type: Git
      git:
        uri: git://github.com/openshift/ruby-hello-world.git
    strategy:
      type: Source
      sourceStrategy:
        env:
        - name: FOO
          value: test
        - name: BAR
          value: test
        - name: BUILD_LOGLEVEL
          value: '5'
        from:
          kind: DockerImage
          name: centos/ruby-25-centos7
    resources: {}
  status:
    lastVersion: 0
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: sample-verbose-build
    creationTimestamp: 
  spec:
    triggers:
    - type: imageChange
      imageChange: {}
    source:
      type: Git
      git:
        uri: git://github.com/openshift/ruby-hello-world.git
    strategy:
      type: Source
      sourceStrategy:
        env:
        - name: FOO
          value: test
        - name: BAR
          value: test
        - name: BUILD_LOGLEVEL
          value: '5'
        from:
          kind: DockerImage
          name: centos/ruby-25-centos7
    resources: {}
  status:
    lastVersion: 0
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: sample-build-binary
    creationTimestamp: 
  spec:
    triggers:
    - type: imageChange
      imageChange: {}
    source:
      type: Binary
      binary: {}
    strategy:
      type: Docker
      dockerStrategy:
        env:
        - name: FOO
          value: test
        - name: BAR
          value: test
        - name: BUILD_LOGLEVEL
          value: '5'
        from:
          kind: DockerImage
          name: centos/ruby-25-centos7
    resources: {}
  status:
    lastVersion: 0
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: sample-build-github-archive
    creationTimestamp: 
  spec:
    triggers:
    - type: imageChange
      imageChange: {}
    source:
      type: Binary
      binary: {}
      contextDir: ruby-hello-world-master
    strategy:
      type: Docker
      dockerStrategy:
        env:
        - name: FOO
          value: test
        - name: BAR
          value: test
        - name: BUILD_LOGLEVEL
          value: '5'
        from:
          kind: DockerImage
          name: centos/ruby-25-centos7
    resources: {}
  status:
    lastVersion: 0
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: sample-build-binary-invalidnodeselector
    creationTimestamp: 
  spec:
    triggers:
    - type: imageChange
      imageChange: {}
    source:
      type: Binary
      binary: {}
    strategy:
      type: Docker
      dockerStrategy:
        env:
        - name: FOO
          value: test
        - name: BAR
          value: test
        - name: BUILD_LOGLEVEL
          value: '5'
        from:
          kind: DockerImage
          name: centos/ruby-25-centos7
    resources: {}
    nodeSelector:
      nodelabelkey: nodelabelvalue
  status:
    lastVersion: 0
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: sample-build-docker-args
    creationTimestamp: 
  spec:
    triggers:
    - type: ImageChange
      imageChange: {}
    source:
      type: Dockerfile
      dockerfile: |-
        FROM centos/ruby-25-centos7
        ARG foo
        RUN echo $foo
    strategy:
      type: Docker
      dockerStrategy:
        from:
          kind: DockerImage
          name: docker.io/busybox:latest
    resources: {}
    postCommit: {}
    nodeSelector: 
  status:
    lastVersion: 0
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: sample-build-docker-args-preset
    creationTimestamp: 
  spec:
    triggers:
    - type: ImageChange
      imageChange: {}
    source:
      type: Dockerfile
      dockerfile: |-
        FROM centos/ruby-25-centos7
        ARG foo
        RUN echo $foo
    strategy:
      type: Docker
      dockerStrategy:
        from:
          kind: DockerImage
          name: docker.io/busybox:latest
        buildArgs:
        - name: foo
          value: default
    resources: {}
    postCommit: {}
    nodeSelector: 
  status:
    lastVersion: 0
`)

func testExtendedTestdataBuildsTestBuildYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestBuildYaml, nil
}

func testExtendedTestdataBuildsTestBuildYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestBuildYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-build.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestBuildconfigsecretinjectorYaml = []byte(`kind: List
apiVersion: v1
items:
- kind: Secret
  apiVersion: v1
  type: kubernetes.io/basic-auth
  metadata:
    name: secret1
    annotations:
      build.openshift.io/source-secret-match-uri-1: '*://*.example.com/*'
  data:
    username: AA==
- kind: Secret
  apiVersion: v1
  type: kubernetes.io/ssh-auth
  metadata:
    name: secret2
    annotations:
      build.openshift.io/source-secret-match-uri-1: '*://*.example.com/*'
  data:
    ssh-privatekey: AA==
- kind: Secret
  apiVersion: v1
  type: kubernetes.io/basic-auth
  metadata:
    name: secret3
    annotations:
      build.openshift.io/source-secret-match-uri-1: 'https://*.com/*'
  data:
    username: AA==
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: test1
  spec:
    source:
      type: Git
      git:
        uri: https://server1.example.com/path
    strategy:
      type: Source
      sourceStrategy:
        from:
          kind: ImageStream
          name: test
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: test2
  spec:
    source:
      type: Git
      git:
        uri: ssh://server1.example.com/path
    strategy:
      type: Source
      sourceStrategy:
        from:
          kind: ImageStream
          name: test
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: test3
  spec:
    source:
      type: Git
      git:
        uri: https://test.com/path
    strategy:
      type: Source
      sourceStrategy:
        from:
          kind: ImageStream
          name: test
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: test4
  spec:
    source:
      type: Git
      git:
        uri: http://test.com/path
    strategy:
      type: Source
      sourceStrategy:
        from:
          kind: ImageStream
          name: test
`)

func testExtendedTestdataBuildsTestBuildconfigsecretinjectorYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestBuildconfigsecretinjectorYaml, nil
}

func testExtendedTestdataBuildsTestBuildconfigsecretinjectorYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestBuildconfigsecretinjectorYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-buildconfigsecretinjector.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestCdsDockerbuildJson = []byte(`{
  "kind":"BuildConfig",
  "apiVersion":"v1",
  "metadata":{
    "name":"docker-build"
  },
  "spec":{
    "completionDeadlineSeconds": 5,
    "triggers":[],
    "source":{
      "type":"Dockerfile",
      "dockerfile":"FROM docker.io/busybox:latest\nRUN sleep 10m"
    },
    "strategy":{
      "type":"Docker",
      "dockerStrategy":{
        "from":{
          "kind":"DockerImage",
          "name":"docker.io/busybox:latest"
        }
      }
    }
  }
}
`)

func testExtendedTestdataBuildsTestCdsDockerbuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestCdsDockerbuildJson, nil
}

func testExtendedTestdataBuildsTestCdsDockerbuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestCdsDockerbuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-cds-dockerbuild.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestCdsSourcebuildJson = []byte(`{
  "kind": "List",
  "apiVersion": "v1",
  "metadata": {},
  "items": [
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-ruby-sample"
      },
      "spec": {},
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "source-build"
      },
      "spec": {
        "completionDeadlineSeconds": 5,
        "triggers": [],
        "source":{
          "type":"Dockerfile",
          "dockerfile":"FROM centos:7\nRUN sleep 10m"
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/busybox:latest"
            }
          }
        }
      }
    }
  ]
}
`)

func testExtendedTestdataBuildsTestCdsSourcebuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestCdsSourcebuildJson, nil
}

func testExtendedTestdataBuildsTestCdsSourcebuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestCdsSourcebuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-cds-sourcebuild.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestContextBuildJson = []byte(`{
  "kind": "List",
  "apiVersion": "v1",
  "metadata": {},
  "items": [
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "dockercontext"
      },
      "spec": {
        "triggers": [],
        "source": {
          "type": "binary",
          "binary": {},
          "contextDir": "2.3"
        },
        "strategy": {
          "type": "Docker",
          "dockerStrategy": {
            "env": [
              {
                "name": "BUILD_LOGLEVEL",
                "value": "5"
              }
            ]
          }
        }
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "s2icontext"
      },
      "spec": {
        "triggers": [],
        "source": {
          "type": "Git",
          "git": {
            "uri":"https://github.com/sclorg/s2i-ruby-container"
          },
          "contextDir": "2.3/test/puma-test-app"
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "env": [
              {
                "name": "BUILD_LOGLEVEL",
                "value": "5"
              }
            ],
            "from": {
              "kind": "DockerImage",
              "name": "centos/ruby-23-centos7"
            }
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "test:latest"
          }
        }
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "test"
      }
    },    
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "triggers": [
          {
            "type": "ImageChange",
            "imageChangeParams": {
              "automatic": true,
              "containerNames": [
                "frontend"
              ],
              "from": {
                "kind": "ImageStreamTag",
                "name": "test:latest"
              }
            }
          }
        ],
        "replicas": 1,
        "selector": {
          "name":"frontend"
        },
        "template": {
          "metadata": {
            "labels": {
              "name": "frontend"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "frontend",
                "image": "",
                "ports": [
                  {
                    "containerPort": 8080,
                    "protocol": "TCP"
                  }
                ]
              }
            ]
          }
        }
      }
    },
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "ports": [
          {
            "name": "web",
            "protocol": "TCP",
            "port": 5432,
            "targetPort": 8080,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "frontend"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {}
      }
    }
  ]
}
`)

func testExtendedTestdataBuildsTestContextBuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestContextBuildJson, nil
}

func testExtendedTestdataBuildsTestContextBuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestContextBuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-context-build.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestDockerAppDockerfile = []byte(`FROM image-registry.openshift-image-registry.svc:5000/openshift/nodejs
RUN touch /tmp/foo`)

func testExtendedTestdataBuildsTestDockerAppDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestDockerAppDockerfile, nil
}

func testExtendedTestdataBuildsTestDockerAppDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestDockerAppDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-docker-app/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestDockerBuildPullsecretJson = []byte(`{
  "kind": "List",
  "apiVersion": "v1",
  "metadata": {},
  "items": [{
    "kind": "ImageStream",
    "apiVersion": "v1",
    "metadata": {
      "name": "image1",
      "creationTimestamp": null
    },
    "spec": {},
    "status": {
      "dockerImageRepository": ""
    }
  }, {
    "kind": "BuildConfig",
    "apiVersion": "v1",
    "metadata": {
      "name": "docker-build",
      "creationTimestamp": null,
      "labels": {
        "name": "docker-build"
      }
    },
    "spec": {
      "source": {
        "dockerfile": "FROM docker.io/busybox:latest"
      },
      "strategy": {
        "type": "Docker",
        "dockerStrategy": {
          "from": {
            "kind": "DockerImage",
            "name": "docker.io/busybox:latest"
          }
        }
      },
      "output": {
        "to": {
          "kind": "ImageStreamTag",
          "name": "image1:latest"
        }
      }
    }
  }, {
    "kind": "BuildConfig",
    "apiVersion": "v1",
    "metadata": {
      "name": "docker-build-pull",
      "creationTimestamp": null,
      "labels": {
        "name": "docker-build-pull"
      }
    },
    "spec": {
      "source": {
        "dockerfile": "FROM docker.io/busybox:latest"
      },
      "strategy": {
        "type": "Docker",
        "dockerStrategy": {
          "from": {
            "kind": "ImageStreamTag",
            "name": "image1:latest"
          },
          "forcePull": true
        }
      }
    }
  }]
}
`)

func testExtendedTestdataBuildsTestDockerBuildPullsecretJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestDockerBuildPullsecretJson, nil
}

func testExtendedTestdataBuildsTestDockerBuildPullsecretJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestDockerBuildPullsecretJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-docker-build-pullsecret.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestDockerBuildJson = []byte(`{
  "kind":"BuildConfig",
  "apiVersion":"v1",
  "metadata":{
    "name":"test",
    "labels":{
      "name":"test"
    }
  },
  "spec":{
    "triggers":[],
    "source":{
      "git": {
        "uri":"https://github.com/sclorg/nodejs-ex"        
      },
      "dockerfile": "FROM docker.io/busybox:latest"
    },
    "strategy":{
      "type":"Docker",
      "dockerStrategy":{
        "from":{
          "kind":"DockerImage",
          "name":"docker.io/busybox:latest"
        }
      }
    },
    "output":{
      "to":{
        "kind":"ImageStreamTag",
        "name":"test:latest"
      },
      "imageLabels": [
        {
          "name": "user-specified-label",
          "value": "arbitrary-value"
        },
        {
          "name": "io.k8s.display-name",
          "value": "overridden"
        },
        {
          "name": "io.openshift.builder-version",
          "value": "overridden2"
        }
      ]
    }
  }
}
`)

func testExtendedTestdataBuildsTestDockerBuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestDockerBuildJson, nil
}

func testExtendedTestdataBuildsTestDockerBuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestDockerBuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-docker-build.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestDockerNoOutputnameJson = []byte(`{
  "kind": "BuildConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "test-docker",
    "labels": {
      "name": "test-docker"
    }
  },
  "spec": {
    "triggers": [],
    "source": {
      "type": "Git",
      "dockerfile": "FROM docker.io/busybox:latest"
    },
    "strategy": {
      "type": "Docker",
      "dockerStrategy": {
        "env": [
          {
            "name": "BUILD_LOGLEVEL",
            "value": "5"
          }
        ],
        "from": {
          "kind": "DockerImage",
          "name": "docker.io/busybox:latest"
        }
      }
    }
  }
}`)

func testExtendedTestdataBuildsTestDockerNoOutputnameJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestDockerNoOutputnameJson, nil
}

func testExtendedTestdataBuildsTestDockerNoOutputnameJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestDockerNoOutputnameJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-docker-no-outputname.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestEnvBuildJson = []byte(`{
  "kind":"BuildConfig",
  "apiVersion":"v1",
  "metadata":{
    "name":"test",
    "labels":{
      "name":"test"
    }
  },
  "spec":{
    "triggers":[],
    "source":{
      "type":"Binary"
    },
    "strategy":{
      "type":"Source",
      "sourceStrategy":{
        "from":{
          "kind":"DockerImage",
          "name":"centos/ruby-25-centos7"
        }
      }
    },
    "output":{
      "to":{
        "kind":"ImageStreamTag",
        "name":"test:latest"
      }
    }
  }
}
`)

func testExtendedTestdataBuildsTestEnvBuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestEnvBuildJson, nil
}

func testExtendedTestdataBuildsTestEnvBuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestEnvBuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-env-build.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestImagechangetriggersYaml = []byte(`kind: List
apiVersion: v1
items:
- kind: ImageStream
  apiVersion: v1
  metadata:
    name: nodejs-ex
  spec:
    tags:
    - name: latest
      from:
        kind: DockerImage
        name: centos/nodejs-6-centos7:latest

- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: bc-source
  spec:
    source:
      type: Git
      git:
        uri: https://github.com/sclorg/nodejs-ex.git
    strategy:
      type: Source
      sourceStrategy:
        from:
          kind: ImageStreamTag
          name: nodejs-ex:latest
    triggers:
    - type: ImageChange
      imageChange:
        from:
          kind: ImageStreamTag
          name: nodejs-ex:latest

- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: bc-docker
  spec:
    source:
      type: Dockerfile
      dockerfile: FROM nodejs
    strategy:
      type: Docker
      dockerStrategy:
        from:
          kind: ImageStreamTag
          name: nodejs-ex:latest
    triggers:
    - type: ImageChange
      imageChange:
        from:
          kind: ImageStreamTag
          name: nodejs-ex:latest

- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: bc-custom
  spec:
    strategy:
      type: Custom
      customStrategy:
        from:
          kind: ImageStreamTag
          name: nodejs-ex:latest
    triggers:
    - type: ImageChange
      imageChange:
        from:
          kind: ImageStreamTag
          name: nodejs-ex:latest

- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: bc-jenkins
  spec:
    strategy:
      type: Jenkins
      jenkinsPipelineStrategy:
        jenkinsfile: node {}
    triggers:
    - type: ImageChange
      imageChange:
        from:
          kind: ImageStreamTag
          name: nodejs-ex:latest
`)

func testExtendedTestdataBuildsTestImagechangetriggersYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestImagechangetriggersYaml, nil
}

func testExtendedTestdataBuildsTestImagechangetriggersYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestImagechangetriggersYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-imagechangetriggers.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestImageresolutionCustomBuildYaml = []byte(`apiVersion: v1
kind: List
metadata: {}
items:
- apiVersion: v1
  kind: Build
  metadata:
    labels:
      build: imagecustombuild
    name: imagecustombuild
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: imagesourceapp:latest
    source:
      git:
        uri: https://github.com/openshift/ruby-hello-world.git
      images:
      - from:
          kind: ImageStreamTag
          name: inputimage:latest
        paths:
        - destinationDir: injected/dir
          sourcePath: /opt/rh/rh-ruby25/root/usr/bin/ruby
    strategy:
      customStrategy:
        from:
          kind: ImageStreamTag
          name: inputimage:latest
`)

func testExtendedTestdataBuildsTestImageresolutionCustomBuildYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestImageresolutionCustomBuildYaml, nil
}

func testExtendedTestdataBuildsTestImageresolutionCustomBuildYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestImageresolutionCustomBuildYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-imageresolution-custom-build.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestImageresolutionDockerBuildYaml = []byte(`apiVersion: v1
kind: List
metadata: {}
items:
- apiVersion: v1
  kind: Build
  metadata:
    labels:
      build: imagedockerbuild
    name: imagedockerbuild
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: imagedockerapp:latest
    source:
      git:
        uri: https://github.com/openshift/ruby-hello-world.git
      images:
      - from:
          kind: ImageStreamTag
          name: inputimage:latest
        paths:
        - destinationDir: injected/dir
          sourcePath: /opt/rh/rh-ruby25/root/usr/bin/ruby
    strategy:
      dockerStrategy:
        from:
          kind: ImageStreamTag
          name: inputimage:latest
`)

func testExtendedTestdataBuildsTestImageresolutionDockerBuildYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestImageresolutionDockerBuildYaml, nil
}

func testExtendedTestdataBuildsTestImageresolutionDockerBuildYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestImageresolutionDockerBuildYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-imageresolution-docker-build.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestImageresolutionS2iBuildYaml = []byte(`apiVersion: v1
kind: List
metadata: {}
items:
- apiVersion: v1
  kind: Build
  metadata:
    labels:
      build: imagesourcebuild
    name: imagesourcebuild
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: imagesourceapp:latest
    source:
      git:
        uri: https://github.com/openshift/ruby-hello-world.git
      images:
      - from:
          kind: ImageStreamTag
          name: inputimage:latest
        paths:
        - destinationDir: injected/dir
          sourcePath: /opt/rh/rh-ruby25/root/usr/bin/ruby
    strategy:
      sourceStrategy:
        from:
          kind: ImageStreamTag
          name: inputimage:latest
`)

func testExtendedTestdataBuildsTestImageresolutionS2iBuildYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestImageresolutionS2iBuildYaml, nil
}

func testExtendedTestdataBuildsTestImageresolutionS2iBuildYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestImageresolutionS2iBuildYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-imageresolution-s2i-build.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestImagesourceBuildconfigYaml = []byte(`apiVersion: v1
kind: List
metadata: {}
items:
- apiVersion: v1
  kind: BuildConfig
  metadata:
    labels:
      build: inputimage
    name: inputimage
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: inputimage:latest
    source:
      dockerfile: |-
        # Bug 1694859: ensure symlinks are followed
        FROM ruby
        RUN mkdir -p /opt/app-root/test-links && \
            ln -s ../../rh/rh-ruby25/root/usr/bin /opt/app-root/test-links/bin
    strategy:
      dockerStrategy:
        from: 
          kind: ImageStreamTag
          name: ruby:2.5
          namespace: openshift
- apiVersion: v1
  kind: BuildConfig
  metadata:
    labels:
      build: imagesourcebuild
    name: imagesourcebuildconfig
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: imagesourceapp:latest
    source:
      git:
        uri: https://github.com/openshift/ruby-hello-world.git
      images:
      - from:
          kind: ImageStreamTag
          name: inputimage:latest
        paths:
        # Bug 1698152: ensure image source copy behavior is correct
        - destinationDir: injected/opt/app-root/test-links
          sourcePath: /opt/app-root/test-links/.
        - destinationDir: injected/opt/rh/rh-ruby-25/root/usr/bin
          sourcePath: /opt/rh/rh-ruby25/root/usr/bin/ruby
    strategy:
      sourceStrategy:
        from:
          kind: ImageStreamTag
          name: ruby:latest
          namespace: openshift
- apiVersion: v1
  kind: BuildConfig
  metadata:
    labels:
      build: imagedockerbuild
    name: imagedockerbuildconfig
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: imagedockerapp:latest
    source:
      git:
        uri: https://github.com/openshift/ruby-hello-world.git
      images:
      - from:
          kind: ImageStreamTag
          name: inputimage:latest
        paths:
        # Bug 1698152: ensure image source copy behavior is correct
        - destinationDir: injected/opt/app-root/test-links
          sourcePath: /opt/app-root/test-links/.
        - destinationDir: injected/opt/rh/rh-ruby-25/root/usr/bin
          sourcePath: /opt/rh/rh-ruby25/root/usr/bin/ruby
    strategy:
      dockerStrategy: {}

- apiVersion: v1
  kind: ImageStream
  metadata:
    name: inputimage
  spec: {}
- apiVersion: v1
  kind: ImageStream
  metadata:
    name: imagesourceapp
  spec: {}
- apiVersion: v1
  kind: ImageStream
  metadata:
    name: imagedockerapp
  spec: {}

- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    name: imagesourceapp
  spec:
    replicas: 1
    selector:
      app: imagesourceapp
      deploymentconfig: imagesourceapp
    strategy:
      type: Rolling
    template:
      metadata:
        labels:
          app: imagesourceapp
          deploymentconfig: imagesourceapp
      spec:
        containers:
        - image:
          imagePullPolicy: Always
          readinessProbe:
            httpGet:
              port: 8080
          name: imagesourceapp
          ports:
          - containerPort: 8080
            protocol: TCP
          - containerPort: 8888
            protocol: TCP
          terminationMessagePath: /dev/termination-log
        dnsPolicy: ClusterFirst
        restartPolicy: Always
        securityContext: {}
    triggers:
    - imageChangeParams:
        automatic: true
        containerNames:
        - imagesourceapp
        from:
          kind: ImageStreamTag
          name: imagesourceapp:latest
      type: ImageChange
    - type: ConfigChange

- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    name: imagedockerapp
  spec:
    replicas: 1
    selector:
      app: imagedockerapp
      deploymentconfig: imagedockerapp
    strategy:
      type: Rolling
    template:
      metadata:
        labels:
          app: imagedockerapp
          deploymentconfig: imagedockerapp
      spec:
        containers:
        - image:
          imagePullPolicy: Always
          readinessProbe:
            httpGet:
              port: 8080
          name: imagedockerapp
          ports:
          - containerPort: 8080
            protocol: TCP
          - containerPort: 8888
            protocol: TCP
          terminationMessagePath: /dev/termination-log
        dnsPolicy: ClusterFirst
        restartPolicy: Always
        securityContext: {}
    triggers:
    - imageChangeParams:
        automatic: true
        containerNames:
        - imagedockerapp
        from:
          kind: ImageStreamTag
          name: imagedockerapp:latest
      type: ImageChange
    - type: ConfigChange
`)

func testExtendedTestdataBuildsTestImagesourceBuildconfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestImagesourceBuildconfigYaml, nil
}

func testExtendedTestdataBuildsTestImagesourceBuildconfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestImagesourceBuildconfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-imagesource-buildconfig.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestNosrcBuildJson = []byte(`{
  "kind": "List",
  "apiVersion": "v1",
  "metadata": {},
  "items": [
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "nosrc-stream",
        "creationTimestamp": null
      },
      "spec": {},
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "nosrc-build",
        "creationTimestamp": null
      },
      "spec": {
        "triggers": [
        ],
        "source": {
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/test-build-simples2i:latest"
            }
          }
        }
      }
    }
  ]
}
`)

func testExtendedTestdataBuildsTestNosrcBuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestNosrcBuildJson, nil
}

func testExtendedTestdataBuildsTestNosrcBuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestNosrcBuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-nosrc-build.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestS2iBuildQuotaJson = []byte(`{
  "kind": "BuildConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "s2i-build-quota",
    "creationTimestamp": null,
    "labels": {
      "name": "s2i-build-quota"
    }
  },
  "spec": {
    "resources": {
      "limits": {
        "cpu": "60m",
        "memory": "200Mi"
      }
    },
    "source": {
      "binary": {
        "asFile": ""
      }          
    },
    "strategy": {
      "type": "Source",
      "sourceStrategy": {
        "from": {
          "kind":"DockerImage",
          "name":"docker.io/openshift/test-build-simples2i:latest"
        },
        "env": [
          {
            "name": "BUILD_LOGLEVEL",
            "value": "6"
          }
        ]
      }
    }
  }
}
`)

func testExtendedTestdataBuildsTestS2iBuildQuotaJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestS2iBuildQuotaJson, nil
}

func testExtendedTestdataBuildsTestS2iBuildQuotaJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestS2iBuildQuotaJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-s2i-build-quota.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestS2iBuildJson = []byte(`{
  "kind": "BuildConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "test",
    "labels": {
      "name": "test"
    }
  },
  "spec": {
    "triggers": [],
    "source": {
      "type": "Git",
      "git": {
        "uri":"https://github.com/sclorg/nodejs-ex"        
      }
    },
    "strategy": {
      "type": "Source",
      "sourceStrategy": {
        "env": [
          {
            "name": "BUILD_LOGLEVEL",
            "value": "5"
          }
        ],
        "from": {
          "kind": "DockerImage",
          "name": "docker.io/openshift/test-build-simples2i:latest"
        }
      }
    },
    "output": {
      "to": {
        "kind": "ImageStreamTag",
        "name": "test:latest"
      },
      "imageLabels": [
        {
          "name": "user-specified-label",
          "value": "arbitrary-value"
        },
        {
          "name": "io.k8s.display-name",
          "value": "overridden"
        },
        {
          "name": "io.openshift.builder-version",
          "value": "overridden2"
        }
      ]
    }
  }
}
`)

func testExtendedTestdataBuildsTestS2iBuildJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestS2iBuildJson, nil
}

func testExtendedTestdataBuildsTestS2iBuildJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestS2iBuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-s2i-build.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestS2iNoOutputnameJson = []byte(`{
  "kind": "BuildConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "test-sti",
    "labels": {
      "name": "test-sti"
    }
  },
  "spec": {
    "triggers": [],
    "source": {
      "type": "Git",
      "git": {
        "uri": "https://github.com/openshift/ruby-hello-world"
      }
    },
    "strategy": {
      "type": "Source",
      "sourceStrategy": {
        "env": [
          {
            "name": "BUILD_LOGLEVEL",
            "value": "5"
          }
        ],
        "from": {
          "kind": "DockerImage",
          "name": "docker.io/openshift/test-build-simples2i:latest"
        }
      }
    }
  }
}`)

func testExtendedTestdataBuildsTestS2iNoOutputnameJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestS2iNoOutputnameJson, nil
}

func testExtendedTestdataBuildsTestS2iNoOutputnameJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestS2iNoOutputnameJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-s2i-no-outputname.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsTestSymlinkBuildYaml = []byte(`kind: List
apiVersion: v1
items:
- kind: ImageStream
  apiVersion: v1
  metadata:
    name: symlink-is
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: symlink-bc
  spec:
    source:
      type: binary
      binary: {}
    strategy:
      type: Source
      sourceStrategy:
        from:
          kind: ImageStreamTag
          name: nodejs:latest
          namespace: openshift
    output:
      to:
        kind: ImageStreamTag
        name: symlink-is:latest
`)

func testExtendedTestdataBuildsTestSymlinkBuildYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsTestSymlinkBuildYaml, nil
}

func testExtendedTestdataBuildsTestSymlinkBuildYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsTestSymlinkBuildYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/test-symlink-build.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsValuefromFailedDockerBuildValueFromConfigYaml = []byte(`
apiVersion: v1
kind: BuildConfig
metadata:
  name: mydockertest
  labels:
    name: test
spec:
  triggers: []
  runPolicy: Serial
  source:
    dockerfile:
      'FROM busybox@sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6'
  strategy:
    type: Docker
    dockerStrategy:
      env:
        - name: BUILD_LOGLEVEL
          value: "5"
        - name: FIELDREF_ENV
          valueFrom:
            fieldRef:
                fieldPath: metadata.nofield
        - name: CONFIGMAPKEYREF_ENV
          valueFrom:
            configMapKeyRef:
              name: myconfigmap
              key: nokey
        - name: SECRETKEYREF_ENV
          valueFrom:
            secretKeyRef:
              name: mysecret
              key: nousername

  output:
    to:
      kind: ImageStreamTag
      name: 'test:latest'
    imageLabels:
      - name: user-specified-label
        value: arbitrary-value
  resources: {}
  postCommit: {}
  nodeSelector: null
status:
  lastVersion: 0
`)

func testExtendedTestdataBuildsValuefromFailedDockerBuildValueFromConfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsValuefromFailedDockerBuildValueFromConfigYaml, nil
}

func testExtendedTestdataBuildsValuefromFailedDockerBuildValueFromConfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsValuefromFailedDockerBuildValueFromConfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/valuefrom/failed-docker-build-value-from-config.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsValuefromFailedStiBuildValueFromConfigYaml = []byte(`apiVersion: v1
kind: BuildConfig
metadata:
  name: mys2itest
  labels:
    name: test
spec:
  triggers: []
  runPolicy: Serial
  source:
    type: Git
    git:
      uri: 'https://github.com/sclorg/nodejs-ex'
  strategy:
    type: Source
    sourceStrategy:
      from:
        kind: DockerImage
        name: docker.io/openshift/test-build-simples2i:latest
      env:
        - name: BUILD_LOGLEVEL
          value: "5"
        - name: FIELDREF_ENV
          valueFrom:
            fieldRef:
              fieldPath: metadata.nofield
        - name: CONFIGMAPKEYREF_ENV
          valueFrom:
            configMapKeyRef:
              name: myconfigmap
              key: nokey
        - name: SECRETKEYREF_ENV
          valueFrom:
            secretKeyRef:
              name: mysecret
              key: nousername
  output:
    to:
      kind: ImageStreamTag
      name: 'test:latest'
    imageLabels:
      - name: user-specified-label
        value: arbitrary-value
  resources: {}
  postCommit: {}
  nodeSelector: null
status:
  lastVersion: 0
`)

func testExtendedTestdataBuildsValuefromFailedStiBuildValueFromConfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsValuefromFailedStiBuildValueFromConfigYaml, nil
}

func testExtendedTestdataBuildsValuefromFailedStiBuildValueFromConfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsValuefromFailedStiBuildValueFromConfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/valuefrom/failed-sti-build-value-from-config.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsValuefromSuccessfulDockerBuildValueFromConfigYaml = []byte(`
apiVersion: v1
kind: BuildConfig
metadata:
  name: mydockertest
  labels:
    name: test
spec:
  triggers: []
  runPolicy: Serial
  source:
    dockerfile:
      'FROM busybox@sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6'
  strategy:
    type: Docker
    dockerStrategy:
      env:
        - name: BUILD_LOGLEVEL
          value: "5"
        - name: FIELDREF_ENV
          valueFrom:
            fieldRef:
                fieldPath: metadata.name
        - name: CONFIGMAPKEYREF_ENV
          valueFrom:
            configMapKeyRef:
              name: myconfigmap
              key: mykey
        - name: SECRETKEYREF_ENV
          valueFrom:
            secretKeyRef:
              name: mysecret
              key: username
        - name: FIELDREF_CLONE_ENV
          value: $(FIELDREF_ENV)
        - name: FIELDREF_CLONE_CLONE_ENV
          value: $(FIELDREF_CLONE_ENV)
        - name: UNAVAILABLE_ENV
          value: $(SOME_OTHER_ENV)
        - name: ESCAPED_ENV
          value: $$(MY_ESCAPED_VALUE)

  output:
    to:
      kind: ImageStreamTag
      name: 'test:latest'
    imageLabels:
      - name: user-specified-label
        value: arbitrary-value
  resources: {}
  postCommit: {}
  nodeSelector: null
status:
  lastVersion: 0
`)

func testExtendedTestdataBuildsValuefromSuccessfulDockerBuildValueFromConfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsValuefromSuccessfulDockerBuildValueFromConfigYaml, nil
}

func testExtendedTestdataBuildsValuefromSuccessfulDockerBuildValueFromConfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsValuefromSuccessfulDockerBuildValueFromConfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/valuefrom/successful-docker-build-value-from-config.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsValuefromSuccessfulStiBuildValueFromConfigYaml = []byte(`apiVersion: v1
kind: BuildConfig
metadata:
  name: mys2itest
  labels:
    name: test
spec:
  triggers: []
  runPolicy: Serial
  source:
    type: Git
    git:
      uri: 'https://github.com/sclorg/nodejs-ex'
  strategy:
    type: Source
    sourceStrategy:
      from:
        kind: DockerImage
        name: docker.io/openshift/test-build-simples2i:latest
      env:
        - name: BUILD_LOGLEVEL
          value: "5"
        - name: FIELDREF_ENV
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: CONFIGMAPKEYREF_ENV
          valueFrom:
            configMapKeyRef:
              name: myconfigmap
              key: mykey
        - name: SECRETKEYREF_ENV
          valueFrom:
            secretKeyRef:
              name: mysecret
              key: username
        - name: FIELDREF_CLONE_ENV 
          value: $(FIELDREF_ENV)
        - name: FIELDREF_CLONE_CLONE_ENV
          value: $(FIELDREF_CLONE_ENV)
        - name: UNAVAILABLE_ENV
          value: $(SOME_OTHER_ENV)
        - name: ESCAPED_ENV
          value: $$(MY_ESCAPED_VALUE)
  output:
    to:
      kind: ImageStreamTag
      name: 'test:latest'
    imageLabels:
      - name: user-specified-label
        value: arbitrary-value
  resources: {}
  postCommit: {}
  nodeSelector: null
status:
  lastVersion: 0
`)

func testExtendedTestdataBuildsValuefromSuccessfulStiBuildValueFromConfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsValuefromSuccessfulStiBuildValueFromConfigYaml, nil
}

func testExtendedTestdataBuildsValuefromSuccessfulStiBuildValueFromConfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsValuefromSuccessfulStiBuildValueFromConfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/valuefrom/successful-sti-build-value-from-config.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsValuefromTestConfigmapYaml = []byte(`apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfigmap
data:
  mykey: myvalue
`)

func testExtendedTestdataBuildsValuefromTestConfigmapYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsValuefromTestConfigmapYaml, nil
}

func testExtendedTestdataBuildsValuefromTestConfigmapYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsValuefromTestConfigmapYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/valuefrom/test-configmap.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsValuefromTestIsJson = []byte(`{
  "kind": "ImageStream",
  "apiVersion": "v1",
  "metadata": {
    "name": "test"
  }
}
`)

func testExtendedTestdataBuildsValuefromTestIsJsonBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsValuefromTestIsJson, nil
}

func testExtendedTestdataBuildsValuefromTestIsJson() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsValuefromTestIsJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/valuefrom/test-is.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataBuildsValuefromTestSecretYaml = []byte(`apiVersion: v1
kind: Secret
metadata:
  name: mysecret
data:
  password: cGFzc3dvcmQ=
  username: ZGV2ZWxvcGVy
type: kubernetes.io/basic-auth
`)

func testExtendedTestdataBuildsValuefromTestSecretYamlBytes() ([]byte, error) {
	return _testExtendedTestdataBuildsValuefromTestSecretYaml, nil
}

func testExtendedTestdataBuildsValuefromTestSecretYaml() (*asset, error) {
	bytes, err := testExtendedTestdataBuildsValuefromTestSecretYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/builds/valuefrom/test-secret.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataClusterMasterVertYaml = []byte(`provider: local
ClusterLoader:
  cleanup: true
  projects:
    - num: 1
      basename: clusterloader-cakephp-mysql
      ifexists: delete
      tuning: default
      templates:
        - num: 1
          file: ./examples/quickstarts/cakephp-mysql.json
  
    - num: 1
      basename: clusterloader-dancer-mysql
      ifexists: delete
      tuning: default
      templates:
        - num: 1
          file: ./examples/quickstarts/dancer-mysql.json
  
    - num: 1
      basename: clusterloader-django-postgresql
      ifexists: delete
      tuning: default
      templates:
        - num: 1
          file: ./examples/quickstarts/django-postgresql.json
  
    - num: 1
      basename: clusterloader-nodejs-mongodb
      ifexists: delete
      tuning: default
      templates:
        - num: 1
          file: ./examples/quickstarts/nodejs-mongodb.json
  
    - num: 1
      basename: clusterloader-rails-postgresql
      ifexists: delete
      tuning: default
      templates:
        - num: 1
          file: ./examples/quickstarts/rails-postgresql.json
  
  tuningsets:
    - name: default
      pods:
        stepping:
          stepsize: 5
          pause: 0 min
        rate_limit:
          delay: 0 ms
`)

func testExtendedTestdataClusterMasterVertYamlBytes() ([]byte, error) {
	return _testExtendedTestdataClusterMasterVertYaml, nil
}

func testExtendedTestdataClusterMasterVertYaml() (*asset, error) {
	bytes, err := testExtendedTestdataClusterMasterVertYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/cluster/master-vert.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataConfigMapJenkinsSlavePodsYaml = []byte(`apiVersion: v1
items:
- apiVersion: v1
  data:
    jenkins-slave: |-
      <org.csanchez.jenkins.plugins.kubernetes.PodTemplate>
        <inheritFrom></inheritFrom>
        <name>jenkins-slave</name>
        <instanceCap>2147483647</instanceCap>
        <idleMinutes>0</idleMinutes>
        <label>jenkins-slave</label>
        <serviceAccount>jenkins</serviceAccount>
        <nodeSelector></nodeSelector>
        <volumes/>
        <containers>
          <org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>
            <name>jnlp</name>
            <image>openshift/jenkins-slave-maven-centos7</image>
            <privileged>false</privileged>
            <alwaysPullImage>false</alwaysPullImage>
            <workingDir>/tmp</workingDir>
            <command></command>
            <args>${computer.jnlpmac} ${computer.name}</args>
            <ttyEnabled>false</ttyEnabled>
            <resourceRequestCpu></resourceRequestCpu>
            <resourceRequestMemory></resourceRequestMemory>
            <resourceLimitCpu></resourceLimitCpu>
            <resourceLimitMemory></resourceLimitMemory>
            <envVars/>
          </org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>
        </containers>
        <envVars/>
        <annotations/>
        <imagePullSecrets/>
        <nodeProperties/>
      </org.csanchez.jenkins.plugins.kubernetes.PodTemplate>
  kind: ConfigMap
  metadata:
    labels:
      role: jenkins-slave
    name: jenkins-slave
kind: List
metadata: {}
resourceVersion: ""
selfLink: ""`)

func testExtendedTestdataConfigMapJenkinsSlavePodsYamlBytes() ([]byte, error) {
	return _testExtendedTestdataConfigMapJenkinsSlavePodsYaml, nil
}

func testExtendedTestdataConfigMapJenkinsSlavePodsYaml() (*asset, error) {
	bytes, err := testExtendedTestdataConfigMapJenkinsSlavePodsYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/config-map-jenkins-slave-pods.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataCustomSecretBuilderDockerfile = []byte(`FROM openshift/origin-custom-docker-builder
# Override the default build script
ADD build.sh /tmp/build.sh
`)

func testExtendedTestdataCustomSecretBuilderDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataCustomSecretBuilderDockerfile, nil
}

func testExtendedTestdataCustomSecretBuilderDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataCustomSecretBuilderDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/custom-secret-builder/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataCustomSecretBuilderBuildSh = []byte(`#!/bin/bash

set -e
set -o pipefail

if [ ! -e "${DOCKER_SOCKET}" ]; then
  echo "Docker socket missing at ${DOCKER_SOCKET}"
  exit 1
fi

SECRET_PATH=${PUSH_DOCKERCFG_PATH:-}

if [ -z "${SECRET_PATH}" ]; then
  echo "The dockercfg not found in /var/run/secrets/openshift.io/push"
  exit 1
fi

if [ -n "${OUTPUT_IMAGE}" ]; then
  TAG="${OUTPUT_REGISTRY}/${OUTPUT_IMAGE}"
fi

mkdir -p /tmp/build && cd /tmp/build
cp -v $SECRET_PATH /tmp/build/dockercfg
chmod 0666 /tmp/build/dockercfg

# This ruby app just output content of file referenced by the environment
# variable. For example FOO=/tmp/test and then GET /FOO returns content of
# /tmp/test
cat > config.ru <<- EOF
def readfile(name); File.read(ENV[name]) rescue "not found #{ENV[name]}"; end
run Proc.new { |env|
  path = env['PATH_INFO'].gsub(/^\//,'')
  [200, {"Content-Type" => "text/raw"}, [readfile(path)]]
}
EOF

cat > Dockerfile <<- EOF
FROM centos/ruby-25-centos7
ENV SECRET_FILE /opt/openshift/src/dockercfg
COPY dockercfg ./
COPY config.ru ./
CMD /usr/local/sti/run
EOF

docker build --rm -t "${TAG}" .
docker push "${TAG}"
`)

func testExtendedTestdataCustomSecretBuilderBuildShBytes() ([]byte, error) {
	return _testExtendedTestdataCustomSecretBuilderBuildSh, nil
}

func testExtendedTestdataCustomSecretBuilderBuildSh() (*asset, error) {
	bytes, err := testExtendedTestdataCustomSecretBuilderBuildShBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/custom-secret-builder/build.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsCustomDeploymentYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: custom-deployment
spec:
  replicas: 2
  selector:
    name: custom-deployment
  strategy:
    type: Rolling
    rollingParams:
      pre:
        failurePolicy: Abort
        execNewPod:
          containerName: myapp
          command:
          - /bin/echo
          - test pre hook executed
    customParams:
      command:
      - /bin/sh
      - -c
      - |
        set -e
        sleep 15  # give tests time to set up
        openshift-deploy --until=50%
        echo Halfway
        openshift-deploy
        echo Finished
  template:
    metadata:
      labels:
        name: custom-deployment
    spec:
      terminationGracePeriodSeconds: 0
      containers:
      - image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        imagePullPolicy: IfNotPresent
        name: myapp
        command:
        - /bin/sleep
        - "infinity"
  triggers:
  - type: ConfigChange
`)

func testExtendedTestdataDeploymentsCustomDeploymentYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsCustomDeploymentYaml, nil
}

func testExtendedTestdataDeploymentsCustomDeploymentYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsCustomDeploymentYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/custom-deployment.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsDeploymentExampleYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  labels:
    app: example
  name: example
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
      - imagePullPolicy: IfNotPresent
        name: ruby
        command:
        - /bin/sleep
        - "100"
        ports:
        - containerPort: 8080
          protocol: TCP
      - imagePullPolicy: IfNotPresent
        name: mongodb
        command:
        - /bin/sleep
        - "100"
        ports:
        - containerPort: 5000
          protocol: TCP
  test: false
  triggers:
  - type: ConfigChange
  - imageChangeParams:
      automatic: true
      containerNames:
      - ruby
      from:
        kind: ImageStreamTag
        name: ruby:latest
        namespace: openshift
    type: ImageChange
  - imageChangeParams:
      automatic: true
      containerNames:
      - mongodb
      from:
        kind: ImageStreamTag
        name: mongodb:latest
        namespace: openshift
    type: ImageChange
`)

func testExtendedTestdataDeploymentsDeploymentExampleYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsDeploymentExampleYaml, nil
}

func testExtendedTestdataDeploymentsDeploymentExampleYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsDeploymentExampleYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/deployment-example.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsDeploymentHistoryLimitYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: history-limit
spec:
  replicas: 1
  strategy:
    type: Rolling
  template:
    metadata:
      labels:
        name: history-limit
    spec:
      containers:
      - image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        imagePullPolicy: IfNotPresent
        name: myapp
        command:
        - /bin/sleep
        - "infinity"
  triggers:
  - type: ConfigChange
  revisionHistoryLimit: 3
`)

func testExtendedTestdataDeploymentsDeploymentHistoryLimitYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsDeploymentHistoryLimitYaml, nil
}

func testExtendedTestdataDeploymentsDeploymentHistoryLimitYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsDeploymentHistoryLimitYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/deployment-history-limit.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsDeploymentIgnoresDeployerYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  annotations:
    deploy.openshift.io/deployer-pod.ignore: "true"
  name: database
spec:
  replicas: 1
  selector:
    name: database
  template:
    metadata:
      labels:
        name: database
    spec:
      terminationGracePeriodSeconds: 0
      containers:
      - image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        imagePullPolicy: IfNotPresent
        name: myapp
        command:
        - /bin/sleep
        - "infinity"
`)

func testExtendedTestdataDeploymentsDeploymentIgnoresDeployerYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsDeploymentIgnoresDeployerYaml, nil
}

func testExtendedTestdataDeploymentsDeploymentIgnoresDeployerYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsDeploymentIgnoresDeployerYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/deployment-ignores-deployer.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsDeploymentImageResolutionIsYaml = []byte(`apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
  name: deployment-image-resolution
spec:
  tags:
  - name: pullthrough
    from:
      kind: DockerImage
      name: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
    referencePolicy:
      type: Local
  - name: direct
    from:
      kind: DockerImage
      name: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
    referencePolicy:
     type: Source
`)

func testExtendedTestdataDeploymentsDeploymentImageResolutionIsYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsDeploymentImageResolutionIsYaml, nil
}

func testExtendedTestdataDeploymentsDeploymentImageResolutionIsYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsDeploymentImageResolutionIsYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/deployment-image-resolution-is.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsDeploymentImageResolutionYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: deployment-image-resolution
spec:
  strategy:
    type: Rolling
    rollingParams:
  template:
    metadata:
      labels:
        name: deployment-image-resolution
    spec:
      containers:
      - name: first
        image: ""
        imagePullPolicy: IfNotPresent
        command:
          - /bin/sleep
          - infinity
      - name: second
        image: " "
        imagePullPolicy: IfNotPresent
        command:
          - /bin/sleep
          - infinity
  triggers:
  - type: ConfigChange
  - imageChangeParams:
      automatic: true
      containerNames:
      - first
      from:
        kind: ImageStreamTag
        name: deployment-image-resolution:pullthrough
    type: ImageChange
  - imageChangeParams:
      automatic: true
      containerNames:
      - second
      from:
        kind: ImageStreamTag
        name: deployment-image-resolution:direct
    type: ImageChange

`)

func testExtendedTestdataDeploymentsDeploymentImageResolutionYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsDeploymentImageResolutionYaml, nil
}

func testExtendedTestdataDeploymentsDeploymentImageResolutionYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsDeploymentImageResolutionYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/deployment-image-resolution.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsDeploymentMinReadySecondsYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: minreadytest
spec:
  replicas: 2
  minReadySeconds: 60
  selector:
    name: minreadytest
  template:
    metadata:
      labels:
        name: minreadytest
    spec:
      terminationGracePeriodSeconds: 0
      containers:
      - image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        imagePullPolicy: IfNotPresent
        name: myapp
        command:
        - /bin/sleep
        - "infinity"
`)

func testExtendedTestdataDeploymentsDeploymentMinReadySecondsYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsDeploymentMinReadySecondsYaml, nil
}

func testExtendedTestdataDeploymentsDeploymentMinReadySecondsYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsDeploymentMinReadySecondsYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/deployment-min-ready-seconds.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsDeploymentSimpleYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: deployment-simple
spec:
  replicas: 1
  selector:
    name: deployment-simple
  strategy:
    type: Rolling
    rollingParams:
  template:
    metadata:
      labels:
        name: deployment-simple
    spec:
      containers:
      - image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        imagePullPolicy: IfNotPresent
        command:
          - /bin/sleep
          - infinity
        name: myapp
        readinessProbe:
          exec:
            command:
            - "true"
  triggers:
  - type: ConfigChange
`)

func testExtendedTestdataDeploymentsDeploymentSimpleYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsDeploymentSimpleYaml, nil
}

func testExtendedTestdataDeploymentsDeploymentSimpleYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsDeploymentSimpleYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/deployment-simple.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsDeploymentTriggerYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  labels:
    app: example
  name: example
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
      - imagePullPolicy: Always
        name: test
        command:
        - /bin/sleep
        - "infinity"
  test: false
  triggers:
  - imageChangeParams:
      automatic: true
      containerNames:
      - test
      from:
        kind: ImageStreamTag
        name: test:v1
    type: ImageChange
`)

func testExtendedTestdataDeploymentsDeploymentTriggerYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsDeploymentTriggerYaml, nil
}

func testExtendedTestdataDeploymentsDeploymentTriggerYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsDeploymentTriggerYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/deployment-trigger.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsDeploymentWithRefEnvYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: deployment-simple
spec:
  triggers: []
  replicas: 1
  selector:
    name: deployment-simple
  strategy:
    type: Rolling
    rollingParams:
      pre:
        failurePolicy: Abort
        execNewPod:
          containerName: myapp
          env:
            - name: HELLO
              valueFrom:
                configMapKeyRef:
                  name: test
                  key: foo
          command: ["/bin/bash", "-c", "echo hello ${HELLO} && exit 1"]
  template:
    metadata:
      labels:
        name: deployment-simple
    spec:
      containers:
      - image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        command: [ "/bin/bash", "-c", "sleep infinity" ]
        imagePullPolicy: IfNotPresent
        name: myapp
`)

func testExtendedTestdataDeploymentsDeploymentWithRefEnvYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsDeploymentWithRefEnvYaml, nil
}

func testExtendedTestdataDeploymentsDeploymentWithRefEnvYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsDeploymentWithRefEnvYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/deployment-with-ref-env.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsFailingPreHookYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: hook
spec:
  replicas: 1
  selector:
    name: hook
  strategy:
    type: Rolling
    rollingParams:
      pre:
        failurePolicy: Retry
        execNewPod:
          containerName: myapp
          command:
          - /bin/bash
          - -c
          - '/bin/echo pre hook logs ; exit 1'
  template:
    metadata:
      labels:
        name: hook
    spec:
      containers:
      - image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        command:
          - /bin/sleep
          - infinity
        name: myapp
  triggers:
  - type: ConfigChange
`)

func testExtendedTestdataDeploymentsFailingPreHookYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsFailingPreHookYaml, nil
}

func testExtendedTestdataDeploymentsFailingPreHookYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsFailingPreHookYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/failing-pre-hook.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsGenerationTestYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: generation-test
spec:
  replicas: 1
  selector:
    name: generation-test
  strategy:
    type: Rolling
    rollingParams:
      pre:
        failurePolicy: Abort
        execNewPod:
          containerName: myapp
          command:
          - /bin/echo
          - test pre hook executed
  template:
    metadata:
      labels:
        name: generation-test
    spec:
      containers:
      - image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        imagePullPolicy: IfNotPresent
        name: myapp
        command:
        - /bin/sleep
        - "infinity"
  triggers:
  - type: ConfigChange
`)

func testExtendedTestdataDeploymentsGenerationTestYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsGenerationTestYaml, nil
}

func testExtendedTestdataDeploymentsGenerationTestYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsGenerationTestYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/generation-test.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsMultiIctDeploymentYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  labels:
    app: example
  name: example
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
      - imagePullPolicy: IfNotPresent
        name: ruby
        command:
        - /bin/sleep
        - "100"
        ports:
        - containerPort: 8080
          protocol: TCP
      - imagePullPolicy: IfNotPresent
        name: ruby2
        command:
        - /bin/sleep
        - "100"
        ports:
        - containerPort: 8081
          protocol: TCP
  test: false
  triggers:
  - type: ConfigChange
  - imageChangeParams:
      automatic: true
      containerNames:
      - ruby
      - ruby2
      from:
        kind: ImageStreamTag
        name: ruby:latest
        namespace: openshift
    type: ImageChange
`)

func testExtendedTestdataDeploymentsMultiIctDeploymentYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsMultiIctDeploymentYaml, nil
}

func testExtendedTestdataDeploymentsMultiIctDeploymentYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsMultiIctDeploymentYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/multi-ict-deployment.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsPausedDeploymentYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: paused
spec:
  paused: true
  replicas: 1
  template:
    metadata:
      labels:
        name: paused
    spec:
      containers:
      - image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        imagePullPolicy: IfNotPresent
        name: myapp
        command:
        - /bin/sleep
        - "infinity"
`)

func testExtendedTestdataDeploymentsPausedDeploymentYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsPausedDeploymentYaml, nil
}

func testExtendedTestdataDeploymentsPausedDeploymentYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsPausedDeploymentYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/paused-deployment.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsReadinessTestYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: readiness
spec:
  replicas: 1
  strategy:
    rollingParams:
      timeoutSeconds: 30
    type: Rolling
  template:
    metadata:
      labels:
        name: readiness-test
    spec:
      containers:
      - command:
        - /bin/sleep
        - "infinity"
        image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        imagePullPolicy: IfNotPresent
        name: never-ready
        readinessProbe:
          exec:
            command:
            - /bin/false
          failureThreshold: 1
`)

func testExtendedTestdataDeploymentsReadinessTestYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsReadinessTestYaml, nil
}

func testExtendedTestdataDeploymentsReadinessTestYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsReadinessTestYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/readiness-test.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsTagImagesDeploymentYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: tag-images
spec:
  replicas: 1
  test: true
  selector:
    name: tag-images
  strategy:
    type: Recreate
    recreateParams:
      timeoutSeconds: 600
      post:
        failurePolicy: Abort
        tagImages:
        - containerName: sample-name
          to:
            kind: ImageStreamTag
            name: sample-stream:deployed
  template:
    metadata:
      labels:
        name: tag-images
    spec:
      containers:
      - image: openshift/origin-pod
        imagePullPolicy: IfNotPresent
        name: sample-name
        ports:
        - containerPort: 8080
          protocol: TCP
        resources:
          limits:
            cpu: 100m
            memory: 3Gi
`)

func testExtendedTestdataDeploymentsTagImagesDeploymentYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsTagImagesDeploymentYaml, nil
}

func testExtendedTestdataDeploymentsTagImagesDeploymentYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsTagImagesDeploymentYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/tag-images-deployment.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsTestDeploymentBrokenYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: brokendeployment
spec:
  replicas: 1
  selector:
    name: brokendeployment
  strategy:
    type: Rolling
    rollingParams:
      pre:
        failurePolicy: Abort
        execNewPod:
          containerName: myapp
          command:
          - /bin/false
  template:
    metadata:
      labels:
        name: brokendeployment
    spec:
      containers:
      - image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        imagePullPolicy: IfNotPresent
        name: myapp
        command:
        - /bin/sleep
        - "infinity"
  triggers:
  - type: ConfigChange
`)

func testExtendedTestdataDeploymentsTestDeploymentBrokenYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsTestDeploymentBrokenYaml, nil
}

func testExtendedTestdataDeploymentsTestDeploymentBrokenYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsTestDeploymentBrokenYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/test-deployment-broken.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataDeploymentsTestDeploymentTestYaml = []byte(`apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: deployment-test
spec:
  replicas: 2
  selector:
    name: deployment-test
  strategy:
    type: Rolling
    rollingParams:
      pre:
        failurePolicy: Abort
        execNewPod:
          containerName: myapp
          command:
          - /bin/bash
          - -c
          - |
            sleep 15  # give tests time to setup
            echo 'test pre hook executed'
  template:
    metadata:
      labels:
        name: deployment-test
    spec:
      terminationGracePeriodSeconds: 0
      containers:
      - image: "registry.access.redhat.com/ubi8/ubi-minimal:latest"
        imagePullPolicy: IfNotPresent
        name: myapp
        command:
        - /bin/sleep
        - "infinity"
  test: true
  triggers:
  - type: ConfigChange
`)

func testExtendedTestdataDeploymentsTestDeploymentTestYamlBytes() ([]byte, error) {
	return _testExtendedTestdataDeploymentsTestDeploymentTestYaml, nil
}

func testExtendedTestdataDeploymentsTestDeploymentTestYaml() (*asset, error) {
	bytes, err := testExtendedTestdataDeploymentsTestDeploymentTestYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/deployments/test-deployment-test.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataForcepullTestJson = []byte(`{
	"kind": "List",
	"apiVersion": "v1",
	"metadata": {},
	"items": [
		{
			"kind": "BuildConfig",
			"apiVersion": "v1",
			"metadata": {
				"name": "ruby-sample-build-tc",
				"creationTimestamp": null,
				"labels": {
					"name": "ruby-sample-build-tc"
				}
			},
			"spec": {
				"triggers": [],
				"source": {
					"type": "Git",
					"git": {
						"uri": "https://github.com/openshift/ruby-hello-world.git"
					}
				},
				"strategy": {
					"type": "Custom",
					"customStrategy": {
						"from": {
						        "kind": "ImageStreamTag",
						        "namespace": "openshift",
							"name": "ruby:latest"
						},
						"env": [
							{
								"name": "OPENSHIFT_CUSTOM_BUILD_BASE_IMAGE",
								"value": "ruby:latest"
							},
							{
								"name": "BUILD_LOGLEVEL",
								"value": "5"
							}
						],
						"exposeDockerSocket": true,
						"forcePull": true
					}
				}
			}
		},
		{
			"kind": "BuildConfig",
			"apiVersion": "v1",
			"metadata": {
				"name": "ruby-sample-build-td",
				"creationTimestamp": null,
				"labels": {
					"name": "ruby-sample-build-td"
				}
			},
			"spec": {
				"triggers": [],
				"source": {
					"type": "Git",
					"git": {
						"uri": "https://github.com/openshift/ruby-hello-world.git"
					}
				},
				"strategy": {
					"type": "Docker",
					"dockerStrategy": {
						"from": {
							"kind": "ImageStreamTag",
						        "namespace": "openshift",
							"name": "ruby:latest"
						},
						"env": [
							{
								"name": "BUILD_LOGLEVEL",
								"value": "5"
							}
						],
						"forcePull": true
					}
				}
			}
		},
		{
			"kind": "BuildConfig",
			"apiVersion": "v1",
			"metadata": {
				"name": "ruby-sample-build-ts",
				"creationTimestamp": null,
				"labels": {
					"name": "ruby-sample-build-ts"
				}
			},
			"spec": {
				"triggers": [],
				"source": {
					"type": "Git",
					"git": {
						"uri": "https://github.com/openshift/ruby-hello-world.git"
					}
				},
				"strategy": {
					"type": "Source",
					"sourceStrategy": {
						"from": {
							"kind": "ImageStreamTag",
						        "namespace": "openshift",
							"name": "ruby:latest"
						},
						"env": [
							{
								"name": "BUILD_LOGLEVEL",
								"value": "5"
							}
						],
						"forcePull": true
					}
				}
			}
		}
	]
}
`)

func testExtendedTestdataForcepullTestJsonBytes() ([]byte, error) {
	return _testExtendedTestdataForcepullTestJson, nil
}

func testExtendedTestdataForcepullTestJson() (*asset, error) {
	bytes, err := testExtendedTestdataForcepullTestJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/forcepull-test.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiConfigKubeconfig = []byte(`apiVersion: v1
clusters:
- cluster:
    certificate-authority: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    server: https://openshift.default.svc.cluster.local:443
  name: GSSAPITEST
contexts:
- context:
    cluster: GSSAPITEST
    namespace: gssapiproxy
  name: gssapi
current-context: gssapi
kind: Config
preferences: {}
users: []
`)

func testExtendedTestdataGssapiConfigKubeconfigBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiConfigKubeconfig, nil
}

func testExtendedTestdataGssapiConfigKubeconfig() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiConfigKubeconfigBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/config/kubeconfig", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiConfigOauth_configJson = []byte(`{
  "oauthConfig": {
    "identityProviders": [{
      "name": "header",
      "challenge": true,
      "mappingMethod": "add",
      "provider": {
        "apiVersion": "v1",
        "kind": "RequestHeaderIdentityProvider",
        "challengeURL": "http://HOST_NAME/mod_auth/oauth/authorize?${query}",
        "headers": ["Remote-User"]
      }
    }]
  }
}
`)

func testExtendedTestdataGssapiConfigOauth_configJsonBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiConfigOauth_configJson, nil
}

func testExtendedTestdataGssapiConfigOauth_configJson() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiConfigOauth_configJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/config/oauth_config.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiFedoraBaseDockerfile = []byte(`# Clone from the Fedora 23 image
FROM fedora:23

ARG REALM
ARG HOST

ENV REALM ${REALM}
ENV HOST ${HOST}

ENV CLIENT CLIENT_HAS_LIBS

ENV OS_ROOT /run/os
ENV KUBECONFIG ${OS_ROOT}/kubeconfig
ENV PATH ${OS_ROOT}/bin:${PATH}

WORKDIR ${OS_ROOT}
ADD gssapi-tests.sh gssapi-tests.sh
ADD test-wrapper.sh test-wrapper.sh
ADD kubeconfig kubeconfig
ADD hack hack
ADD oc bin/oc

# KEYRING does not work inside of a container since it is part of the kernel
RUN sed -i.bak1 's#KEYRING:persistent:#DIR:/tmp/krb5cc_#' /etc/krb5.conf && \
    dnf install -y findutils bc && \
    chmod +x gssapi-tests.sh test-wrapper.sh

ENTRYPOINT /run/os/test-wrapper.sh
`)

func testExtendedTestdataGssapiFedoraBaseDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiFedoraBaseDockerfile, nil
}

func testExtendedTestdataGssapiFedoraBaseDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiFedoraBaseDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/fedora/base/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiFedoraKerberosDockerfile = []byte(`FROM gssapiproxy/fedora-gssapi-base

ENV CLIENT CLIENT_HAS_LIBS

RUN dnf install -y krb5-workstation
`)

func testExtendedTestdataGssapiFedoraKerberosDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiFedoraKerberosDockerfile, nil
}

func testExtendedTestdataGssapiFedoraKerberosDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiFedoraKerberosDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/fedora/kerberos/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiFedoraKerberos_configuredDockerfile = []byte(`FROM gssapiproxy/fedora-gssapi-kerberos

ENV CLIENT CLIENT_HAS_LIBS_IS_CONFIGURED

RUN sed -i.bak1 -e "s/\[realms\]/\[realms\]\n${REALM} = {\n kdc = ${HOST}\n admin_server = ${HOST}\n default_domain = ${HOST}\n}/" /etc/krb5.conf && \
    sed -i.bak2 -e "s/\[domain_realm\]/\[domain_realm\]\n.${HOST} = ${REALM}\n${HOST} = ${REALM}/" /etc/krb5.conf && \
    sed -i.bak3 -e "s!# default_realm = ! default_realm = ${REALM}\n#!" /etc/krb5.conf
`)

func testExtendedTestdataGssapiFedoraKerberos_configuredDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiFedoraKerberos_configuredDockerfile, nil
}

func testExtendedTestdataGssapiFedoraKerberos_configuredDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiFedoraKerberos_configuredDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/fedora/kerberos_configured/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiProxyDockerfile = []byte(`# Clone from the Fedora 23 image
FROM fedora:23

# Install GSSAPI
RUN dnf install -y \
  apr-util-openssl \
  authconfig \
  httpd \
  krb5-libs \
  krb5-server \
  krb5-workstation \
  mod_auth_gssapi \
  mod_ssl \
  && dnf clean all

# Add conf files for Kerberos
ADD krb5.conf /etc/krb5.conf
ADD kdc.conf  /var/kerberos/krb5kdc/kdc.conf
ADD kadm5.acl /var/kerberos/krb5kdc/kadm5.acl

# Add conf file for Apache
ADD proxy.conf /etc/httpd/conf.d/proxy.conf

# Add health check file
ADD healthz /var/www/html/healthz

# 80  = http
# 443 = https
# 88  = kerberos
EXPOSE 80 443 88 88/udp

ADD configure.sh /usr/sbin/configure.sh
ENTRYPOINT /usr/sbin/configure.sh
`)

func testExtendedTestdataGssapiProxyDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiProxyDockerfile, nil
}

func testExtendedTestdataGssapiProxyDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiProxyDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/proxy/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiProxyConfigureSh = []byte(`#!/usr/bin/env bash

set -o errexit
set -o nounset
set -o pipefail

cd /

# Get environment
export USER="$(whoami)"

# Edit kerberos config files, replacing EXAMPLE.COM with ${REALM}, and example.com with ${HOST}
for file in /etc/krb5.conf /var/kerberos/krb5kdc/kdc.conf /var/kerberos/krb5kdc/kadm5.acl; do
  sed -i.bak1 -e "s/EXAMPLE\.COM/${REALM}/g" $file
  sed -i.bak2 -e "s/example\.com/${HOST}/g" $file
done

# Temporary hack to get around hairpin issue
sed -i.bak3 -e "s/kdc = ${HOST}/kdc = localhost/g" /etc/krb5.conf

# Create ticket database
kdb5_util create -s -r "${REALM}" -P password

# Add local user as admin
kadmin.local -q "addprinc -pw password ${USER}/admin@${REALM}"

# Start ticket server
krb5kdc

# Add user principal for current user, for test users user1-user5, the host principal (for ssh), the HTTP principal (for Apache), and create keytab
for u in "${USER}" user1 user2 user3 user4 user5; do
  kadmin.local -q "addprinc -pw password ${u}@${REALM}"
done

# Setup keytab for sshd
kadmin.local -q "addprinc -randkey host/${HOST}@${REALM}"
kadmin.local -q "ktadd -k /etc/krb5.keytab host/${HOST}@${REALM}"

# Setup keytab for apache
kadmin.local -q "addprinc -randkey HTTP/${HOST}@${REALM}"
kadmin.local -q "ktadd -k /etc/httpd.keytab HTTP/${HOST}@${REALM}"
chown apache /etc/httpd.keytab

# configure Apache proxy and auth
sed -i.bak1 -e "s#proxy\.example\.com#${HOST}#g" /etc/httpd/conf.d/proxy.conf
sed -i.bak2 -e "s#https://backend\.example\.com#${BACKEND}#g" /etc/httpd/conf.d/proxy.conf

# Start apache
httpd -k start

# Keep the service running
while true ; do sleep 60 ; done
`)

func testExtendedTestdataGssapiProxyConfigureShBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiProxyConfigureSh, nil
}

func testExtendedTestdataGssapiProxyConfigureSh() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiProxyConfigureShBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/proxy/configure.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiProxyGssapiproxyBuildconfigYaml = []byte(`kind: "BuildConfig"
apiVersion: "v1"
metadata:
  name: "gssapiproxy"
  labels:
    name: "gssapiproxy"
spec:
  triggers: []
  source:
    type: "Binary"
    binary: {}
  strategy:
    type: "Docker"
    env:
      -
        name: "BUILD_LOGLEVEL"
        value: "5"
    dockerStrategy:
      from:
        kind: "DockerImage"
        name: "fedora:23"
  output:
    to:
      kind: "ImageStreamTag"
      name: "gssapiproxy:latest"
`)

func testExtendedTestdataGssapiProxyGssapiproxyBuildconfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiProxyGssapiproxyBuildconfigYaml, nil
}

func testExtendedTestdataGssapiProxyGssapiproxyBuildconfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiProxyGssapiproxyBuildconfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/proxy/gssapiproxy-buildconfig.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiProxyGssapiproxyDeploymentconfigYaml = []byte(`kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
  name: "gssapiproxy-server"
  creationTimestamp: null
spec:
  strategy:
    type: "Recreate"
    resources: {}
  triggers:
    -
      type: "ImageChange"
      imageChangeParams:
        automatic: true
        containerNames:
          - "gssapiproxy-server"
        from:
          kind: "ImageStreamTag"
          name: "gssapiproxy:latest"
        lastTriggeredImage: ""
    -
      type: "ConfigChange"
  replicas: 1
  selector:
    name: "gssapiproxy-server"
  template:
    metadata:
      creationTimestamp: null
      labels:
        name: "gssapiproxy-server"
    spec:
      containers:
        -
          name: "gssapiproxy-server"
          image: "gssapiproxy"
          ports:
            -
              containerPort: 80
              protocol: "TCP"
            -
              containerPort: 443
              protocol: "TCP"
            -
              containerPort: 88
              protocol: "TCP"
            -
              containerPort: 88
              protocol: "UDP"
          resources: {}
          terminationMessagePath: "/dev/termination-log"
          imagePullPolicy: "IfNotPresent"
          capabilities: {}
          securityContext:
            capabilities: {}
            privileged: false
            runAsUser: 0
          readinessProbe:
            httpGet:
              path: "/healthz"
              port: 80
            initialDelaySeconds: 15
            timeoutSeconds: 1
      restartPolicy: "Always"
      dnsPolicy: "ClusterFirst"
      serviceAccount: ""
status: {}
`)

func testExtendedTestdataGssapiProxyGssapiproxyDeploymentconfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiProxyGssapiproxyDeploymentconfigYaml, nil
}

func testExtendedTestdataGssapiProxyGssapiproxyDeploymentconfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiProxyGssapiproxyDeploymentconfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/proxy/gssapiproxy-deploymentconfig.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiProxyGssapiproxyImagestreamYaml = []byte(`kind: "ImageStream"
apiVersion: "v1"
metadata:
  name: "gssapiproxy"
  creationTimestamp: null
`)

func testExtendedTestdataGssapiProxyGssapiproxyImagestreamYamlBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiProxyGssapiproxyImagestreamYaml, nil
}

func testExtendedTestdataGssapiProxyGssapiproxyImagestreamYaml() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiProxyGssapiproxyImagestreamYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/proxy/gssapiproxy-imagestream.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiProxyGssapiproxyServiceYaml = []byte(`kind: "Service"
apiVersion: "v1"
metadata:
  name: "gssapiproxy-server"
  creationTimestamp: null
spec:
  ports:
    -
      name: "http"
      protocol: "TCP"
      port: 80
      targetPort: 80
      nodePort: 0
    -
      name: "https"
      protocol: "TCP"
      port: 443
      targetPort: 443
      nodePort: 0
    -
      name: "kerberos"
      protocol: "TCP"
      port: 88
      targetPort: 88
      nodePort: 0
    -
      name: "kerberos-udp"
      protocol: "UDP"
      port: 88
      targetPort: 88
      nodePort: 0
  selector:
    name: "gssapiproxy-server"
  type: "ClusterIP"
  sessionAffinity: "None"
status:
  loadBalancer: {}
`)

func testExtendedTestdataGssapiProxyGssapiproxyServiceYamlBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiProxyGssapiproxyServiceYaml, nil
}

func testExtendedTestdataGssapiProxyGssapiproxyServiceYaml() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiProxyGssapiproxyServiceYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/proxy/gssapiproxy-service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiProxyHealthz = []byte(`ok
`)

func testExtendedTestdataGssapiProxyHealthzBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiProxyHealthz, nil
}

func testExtendedTestdataGssapiProxyHealthz() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiProxyHealthzBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/proxy/healthz", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiProxyKadm5Acl = []byte(`*/admin@EXAMPLE.COM	*
`)

func testExtendedTestdataGssapiProxyKadm5AclBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiProxyKadm5Acl, nil
}

func testExtendedTestdataGssapiProxyKadm5Acl() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiProxyKadm5AclBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/proxy/kadm5.acl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiProxyKdcConf = []byte(`[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 EXAMPLE.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }
`)

func testExtendedTestdataGssapiProxyKdcConfBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiProxyKdcConf, nil
}

func testExtendedTestdataGssapiProxyKdcConf() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiProxyKdcConfBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/proxy/kdc.conf", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiProxyKrb5Conf = []byte(`[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 default_realm = EXAMPLE.COM
 default_ccache_name = DIR:/tmp/krb5cc_%{uid}

[appdefaults]
pam = {
 debug = true
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 default_realm = EXAMPLE.COM
 default_ccache_name = DIR:/tmp/krb5cc_%{uid}
}

[realms]
EXAMPLE.COM = {
 kdc = example.com
 admin_server = example.com
 default_domain = example.com
}

[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
`)

func testExtendedTestdataGssapiProxyKrb5ConfBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiProxyKrb5Conf, nil
}

func testExtendedTestdataGssapiProxyKrb5Conf() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiProxyKrb5ConfBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/proxy/krb5.conf", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiProxyProxyConf = []byte(`ServerName proxy.example.com

SSLProxyEngine On
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
SSLProxyCheckPeerExpire Off

<If "env('SERVER') == 'SERVER_GSSAPI_BASIC_FALLBACK'">
    # In order to use the basic-auth proxy, an X-Csrf-Token must be present
    # Fail anything that doesn't have that header
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/mod_auth/?
    RewriteCond %{HTTP:X-Csrf-Token} ^$ [NC]
    RewriteRule ^.* - [F,L]
</If>

<Location /mod_auth/>

    ProxyPass https://backend.example.com/
    Require valid-user

    AuthType GSSAPI
    AuthName "GSSAPI Login"
    RequestHeader set Remote-User %{REMOTE_USER}s

    <If "env('SERVER') == 'SERVER_GSSAPI_ONLY'">
        # Kerberos auth-protected
        GssapiCredStore keytab:/etc/httpd.keytab
    </If>

    <If "env('SERVER') == 'SERVER_GSSAPI_BASIC_FALLBACK'">
        GssapiCredStore keytab:/etc/httpd.keytab
        GssapiBasicAuth on
    </If>

</Location>

RequestHeader unset Remote-User
RequestHeader unset X-Remote-User
`)

func testExtendedTestdataGssapiProxyProxyConfBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiProxyProxyConf, nil
}

func testExtendedTestdataGssapiProxyProxyConf() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiProxyProxyConfBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/proxy/proxy.conf", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiScriptsGssapiTestsSh = []byte(`#!/usr/bin/env bash

set -o errexit
set -o nounset
set -o pipefail

echo "Running ${TEST_NAME}"

cd "${OS_ROOT}"
source hack/lib/init.sh

function cleanup() {
    out=$?
    # get the jUnit output file into a workable state in case we crashed in the middle of testing something
    os::test::junit::reconcile_output
    # check that we didn't mangle jUnit output
    os::test::junit::check_test_counters
    exit $out
}

trap "cleanup" EXIT
os::test::junit::declare_suite_start "${TEST_NAME}"

# Client has no GSSAPI libs and server is GSSAPI only
# Everything fails
# Errors do NOT mention Kerberos

if [[ "${CLIENT}" = 'CLIENT_MISSING_LIBS' && "${SERVER}" = 'SERVER_GSSAPI_ONLY' ]]; then

    os::cmd::expect_failure_and_text 'oc login' 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_text 'oc whoami' 'system:anonymous'

    os::cmd::expect_failure_and_text 'oc login -u user1' 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user1'

    os::cmd::expect_failure_and_text 'oc login -u user2 -p wrongpassword' 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user2'

    os::cmd::expect_failure_and_text 'oc login -u user2 -p password' 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user2'

    os::cmd::expect_failure_and_text "oc login -u 'user3@${REALM}'" 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user3'

    os::cmd::expect_failure_and_text "oc login -u 'user4@${REALM}' -p wrongpassword" 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user4'

    os::cmd::expect_failure_and_text "oc login -u 'user5@${REALM}' -p password" 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user5'

fi

# Client has uncofigured GSSAPI libs and server is GSSAPI only
# Everything fails
# Errors mention Kerberos

if [[ "${CLIENT}" = 'CLIENT_HAS_LIBS' && "${SERVER}" = 'SERVER_GSSAPI_ONLY' ]]; then

    DEFAULT_REALM="$(grep default_realm /etc/krb5.conf | awk {'printf $3'})"

    os::cmd::expect_failure_and_text 'oc login' 'No Kerberos credentials available'
    os::cmd::expect_failure_and_text 'oc whoami' 'system:anonymous'

    # Fedora has no default realm, so a realm-less username is considered invalid
    # Ubuntu has a default realm, so will complain about not finding the credentials for it
    # Hence we accept either of those error messages in the next three sets of tests
    os::cmd::expect_failure_and_text 'oc login -u user1' "An invalid name was supplied|Can't find client principal user1@${DEFAULT_REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user1'

    os::cmd::expect_failure_and_text 'oc login -u user2 -p wrongpassword' "An invalid name was supplied|Can't find client principal user2@${DEFAULT_REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user2'

    os::cmd::expect_failure_and_text 'oc login -u user2 -p password' "An invalid name was supplied|Can't find client principal user2@${DEFAULT_REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user2'

    os::cmd::expect_failure_and_text "oc login -u 'user3@${REALM}'" "Can't find client principal user3@${REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user3'

    os::cmd::expect_failure_and_text "oc login -u 'user4@${REALM}' -p wrongpassword" "Can't find client principal user4@${REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user4'

    os::cmd::expect_failure_and_text "oc login -u 'user5@${REALM}' -p password" "Can't find client principal user5@${REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user5'

fi

# Client has GSSAPI configured and server is GSSAPI only
# Only GSSAPI works
# Errors mention Kerberos

if [[ "${CLIENT}" = 'CLIENT_HAS_LIBS_IS_CONFIGURED' && "${SERVER}" = 'SERVER_GSSAPI_ONLY' ]]; then

    # No ticket
    os::cmd::expect_failure_and_text 'oc login' 'No Kerberos credentials available'
    os::cmd::expect_failure_and_text 'oc whoami' 'system:anonymous'

    os::cmd::expect_failure 'kinit user1 <<< wrongpassword'
    os::cmd::expect_failure_and_text 'oc login' 'No Kerberos credentials available'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user1'

    # Single ticket
    os::cmd::expect_success 'kinit user1 <<< password'
    os::cmd::expect_success_and_text 'oc login' 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user1@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user1@${REALM}"

    # Having multiple tickets
    os::cmd::expect_success "kinit user2@${REALM} <<< password"
    os::cmd::expect_success 'kinit user3 <<< password'
    os::cmd::expect_failure 'kinit user4 <<< wrongpassword'
    os::cmd::expect_failure "kinit user5@${REALM} <<< wrongpassword"

    # Shortname, non-default ticket
    os::cmd::expect_success_and_text 'oc login -u user1' 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user1@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user1@${REALM}"

    # Longname, non-default ticket
    os::cmd::expect_success_and_text "oc login -u 'user2@${REALM}'" 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user2@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user2@${REALM}"

    # Default ticket
    os::cmd::expect_success_and_text 'oc login' 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user3@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user3@${REALM}"

    # Non-ticket users
    os::cmd::expect_failure_and_text 'oc login -u user4' "Can't find client principal user4@${REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user4'
    os::cmd::expect_failure_and_text "oc login -u 'user4@${REALM}'" "Can't find client principal user4@${REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user4'

    os::cmd::expect_failure_and_text 'oc login -u user4 -p password' "Can't find client principal user4@${REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user4'
    os::cmd::expect_failure_and_text "oc login -u 'user4@${REALM}' -p password" "Can't find client principal user4@${REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user4'

    os::cmd::expect_failure_and_text 'oc login -u user5 -p wrongpassword' "Can't find client principal user5@${REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user5'
    os::cmd::expect_failure_and_text "oc login -u 'user5@${REALM}' -p wrongpassword" "Can't find client principal user5@${REALM} in cache collection"
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user5'

    # Password is ignored if you have the ticket for the user
    os::cmd::expect_success_and_text 'oc login -u user1 -p wrongpassword' 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user1@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user1@${REALM}"
    os::cmd::expect_success_and_text "oc login -u 'user2@${REALM}' -p wrongpassword" 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user2@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user2@${REALM}"

fi

# Client has no GSSAPI libs or unconfigured GSSAPI libs and server is GSSAPI with Basic fallback
# Only BASIC works
# Errors do NOT mention Kerberos

if [[ ( "${CLIENT}" = 'CLIENT_MISSING_LIBS' || "${CLIENT}" = 'CLIENT_HAS_LIBS' ) && "${SERVER}" = 'SERVER_GSSAPI_BASIC_FALLBACK' ]]; then

    os::cmd::expect_failure_and_text 'oc login <<< \n' 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_text 'oc whoami' 'system:anonymous'

    os::cmd::expect_failure_and_text 'oc login -u user1 <<EOF
    EOF' 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user1'

    os::cmd::expect_failure_and_text 'oc login -u user2 -p wrongpassword' 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user2'

    os::cmd::expect_success_and_text 'oc login -u user2 -p password' 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user2@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user2@${REALM}"

    os::cmd::expect_failure_and_text "oc login -u 'user3@${REALM}' <<EOF
    EOF" 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user3'

    os::cmd::expect_failure_and_text "oc login -u 'user4@${REALM}' -p wrongpassword" 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user4'

    os::cmd::expect_success_and_text "oc login -u 'user5@${REALM}' -p password" 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user5@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user5@${REALM}"

fi

# Client has GSSAPI configured and server is GSSAPI with Basic fallback
# Everything works
# Errors do NOT mention Kerberos

if [[ "${CLIENT}" = 'CLIENT_HAS_LIBS_IS_CONFIGURED' && "${SERVER}" = 'SERVER_GSSAPI_BASIC_FALLBACK' ]]; then

    # No ticket
    os::cmd::expect_failure_and_text 'oc login <<< \n' 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_text 'oc whoami' 'system:anonymous'

    os::cmd::expect_failure 'kinit user1 <<< wrongpassword'
    os::cmd::expect_failure_and_text 'oc login <<< \n' 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user1'

    # Single ticket
    os::cmd::expect_success 'kinit user1 <<< password'
    os::cmd::expect_success_and_text 'oc login' 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user1@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user1@${REALM}"

    # Having multiple tickets
    os::cmd::expect_success "kinit user2@${REALM} <<< password"
    os::cmd::expect_success 'kinit user3 <<< password'
    os::cmd::expect_failure 'kinit user4 <<< wrongpassword'
    os::cmd::expect_failure "kinit user5@${REALM} <<< wrongpassword"

    # Shortname, non-default ticket
    os::cmd::expect_success_and_text 'oc login -u user1' 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user1@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user1@${REALM}"

    # Longname, non-default ticket
    os::cmd::expect_success_and_text "oc login -u 'user2@${REALM}'" 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user2@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user2@${REALM}"

    # Default ticket
    os::cmd::expect_success_and_text 'oc login' 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user3@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user3@${REALM}"

    # Non-ticket users
    os::cmd::expect_failure_and_text 'oc login -u user4 <<EOF
    EOF' 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user4'
    os::cmd::expect_failure_and_text "oc login -u 'user4@${REALM}' <<EOF
    EOF" 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user4'

    os::cmd::expect_success_and_text 'oc login -u user4 -p password' 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user4@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user4@${REALM}"
    os::cmd::expect_success_and_text "oc login -u 'user4@${REALM}' -p password" 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user4@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user4@${REALM}"

    os::cmd::expect_failure_and_text 'oc login -u user5 -p wrongpassword' 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user5'
    os::cmd::expect_failure_and_text "oc login -u 'user5@${REALM}' -p wrongpassword" 'Login failed \(401 Unauthorized\)'
    os::cmd::expect_failure_and_not_text 'oc whoami' 'user5'

    # Password is ignored if you have the ticket for the user
    os::cmd::expect_success_and_text 'oc login -u user1 -p wrongpassword' 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user1@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user1@${REALM}"
    os::cmd::expect_success_and_text "oc login -u 'user2@${REALM}' -p wrongpassword" 'Login successful.'
    os::cmd::expect_success_and_text 'oc whoami' "user2@${REALM}"
    os::cmd::expect_success_and_text 'oc logout' "user2@${REALM}"

fi

os::test::junit::declare_suite_end

# Make sure we made it to the end of the script
echo "Finished running ${TEST_NAME}"
`)

func testExtendedTestdataGssapiScriptsGssapiTestsShBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiScriptsGssapiTestsSh, nil
}

func testExtendedTestdataGssapiScriptsGssapiTestsSh() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiScriptsGssapiTestsShBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/scripts/gssapi-tests.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiScriptsTestWrapperSh = []byte(`#!/usr/bin/env bash

set -o errexit
set -o nounset
set -o pipefail

cd "${OS_ROOT}"
source hack/lib/init.sh

export TEST_NAME="test-extended/gssapiproxy-tests/$(uname -n)-${CLIENT}-${SERVER}"
os::util::environment::setup_time_vars
os::cleanup::tmpdir
export JUNIT_REPORT_OUTPUT="${LOG_DIR}/raw_test_output.log"

# use a subshell and `+"`"+`if`+"`"+` statement to prevent `+"`"+`exit`+"`"+` calls from killing this script
if ! ( './gssapi-tests.sh' ) 2>&1; then
    return_code=$?
fi

cat "${JUNIT_REPORT_OUTPUT}" 1>&2
exit "${return_code:-0}"
`)

func testExtendedTestdataGssapiScriptsTestWrapperShBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiScriptsTestWrapperSh, nil
}

func testExtendedTestdataGssapiScriptsTestWrapperSh() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiScriptsTestWrapperShBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/scripts/test-wrapper.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiUbuntuBaseDockerfile = []byte(`# Clone from the Ubuntu 16.04 LTS image
FROM ubuntu:16.04

ARG REALM
ARG HOST

ENV REALM ${REALM}
ENV HOST ${HOST}

ENV CLIENT CLIENT_MISSING_LIBS

ENV OS_ROOT /run/os
ENV KUBECONFIG ${OS_ROOT}/kubeconfig
ENV PATH ${OS_ROOT}/bin:${PATH}

WORKDIR ${OS_ROOT}
ADD gssapi-tests.sh gssapi-tests.sh
ADD test-wrapper.sh test-wrapper.sh
ADD kubeconfig kubeconfig
ADD hack hack
ADD oc bin/oc

RUN chmod +x gssapi-tests.sh test-wrapper.sh && \
    apt-get update && apt-get install -y bc

ENTRYPOINT /run/os/test-wrapper.sh
`)

func testExtendedTestdataGssapiUbuntuBaseDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiUbuntuBaseDockerfile, nil
}

func testExtendedTestdataGssapiUbuntuBaseDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiUbuntuBaseDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/ubuntu/base/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiUbuntuKerberosDockerfile = []byte(`FROM gssapiproxy/ubuntu-gssapi-base

ENV CLIENT CLIENT_HAS_LIBS

RUN apt-get install -y krb5-user
`)

func testExtendedTestdataGssapiUbuntuKerberosDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiUbuntuKerberosDockerfile, nil
}

func testExtendedTestdataGssapiUbuntuKerberosDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiUbuntuKerberosDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/ubuntu/kerberos/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataGssapiUbuntuKerberos_configuredDockerfile = []byte(`FROM gssapiproxy/ubuntu-gssapi-kerberos

ENV CLIENT CLIENT_HAS_LIBS_IS_CONFIGURED

RUN sed -i.bak1 -e "s/\[realms\]/\[realms\]\n${REALM} = {\n kdc = ${HOST}\n admin_server = ${HOST}\n default_domain = ${HOST}\n}/" /etc/krb5.conf && \
    sed -i.bak2 -e "s/\[domain_realm\]/\[domain_realm\]\n.${HOST} = ${REALM}\n${HOST} = ${REALM}/" /etc/krb5.conf && \
    sed -i.bak3 -e "s!default_realm = !default_realm = ${REALM}\ndefault_ccache_name = DIR:/tmp/krb5cc_%{uid}\n#!" /etc/krb5.conf
`)

func testExtendedTestdataGssapiUbuntuKerberos_configuredDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataGssapiUbuntuKerberos_configuredDockerfile, nil
}

func testExtendedTestdataGssapiUbuntuKerberos_configuredDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataGssapiUbuntuKerberos_configuredDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/gssapi/ubuntu/kerberos_configured/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataHelloBuilderDockerfile = []byte(`FROM openshift/origin-release:latest
LABEL io.openshift.s2i.scripts-url=image:///usr/libexec/s2i
ENV STI_SCRIPTS_PATH=/usr/libexec/s2i
COPY scripts $STI_SCRIPTS_PATH
RUN chown 1001 /openshifttmp
USER 1001 
`)

func testExtendedTestdataHelloBuilderDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataHelloBuilderDockerfile, nil
}

func testExtendedTestdataHelloBuilderDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataHelloBuilderDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/hello-builder/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataHelloBuilderScriptsAssemble = []byte(`#!/bin/sh
unset GOPATH
cd /tmp/src
CGO_ENABLED=0 go build -a -installsuffix cgo -o hello-openshift -tags netgo
mv hello-openshift /tmp
`)

func testExtendedTestdataHelloBuilderScriptsAssembleBytes() ([]byte, error) {
	return _testExtendedTestdataHelloBuilderScriptsAssemble, nil
}

func testExtendedTestdataHelloBuilderScriptsAssemble() (*asset, error) {
	bytes, err := testExtendedTestdataHelloBuilderScriptsAssembleBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/hello-builder/scripts/assemble", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataHelloBuilderScriptsRun = []byte(`#!/bin/sh
echo This image is not meant to be run by itself
`)

func testExtendedTestdataHelloBuilderScriptsRunBytes() ([]byte, error) {
	return _testExtendedTestdataHelloBuilderScriptsRun, nil
}

func testExtendedTestdataHelloBuilderScriptsRun() (*asset, error) {
	bytes, err := testExtendedTestdataHelloBuilderScriptsRunBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/hello-builder/scripts/run", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataIdlingEchoServerRcYaml = []byte(`apiVersion: v1
kind: List
items:
- apiVersion: v1
  kind: ReplicationController
  metadata:
    name: idling-echo-rc
  spec:
    replicas: 2
    selector:
      app: idling-echo
      replicationcontroller: idling-echo
    template:
      metadata:
        labels:
          app: idling-echo
          replicationcontroller: idling-echo
      spec:
        containers:
        - image: openshift/origin-base
          name: idling-echo
          command:
            - /usr/bin/socat
            - TCP4-LISTEN:8675,reuseaddr,fork
            - EXEC:'/bin/cat'
          ports:
          - containerPort: 8675
            protocol: TCP
        dnsPolicy: ClusterFirst
        restartPolicy: Always
        securityContext: {}
- apiVersion: v1
  kind: Service
  metadata:
    name: idling-echo
  spec:
    selector:
      app: idling-echo
    ports:
      - port: 8675
- apiVersion: v1
  kind: Route
  metadata:
    name: idling-echo
  spec:
    to:
      kind: Service
      name: idling-echo

`)

func testExtendedTestdataIdlingEchoServerRcYamlBytes() ([]byte, error) {
	return _testExtendedTestdataIdlingEchoServerRcYaml, nil
}

func testExtendedTestdataIdlingEchoServerRcYaml() (*asset, error) {
	bytes, err := testExtendedTestdataIdlingEchoServerRcYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/idling-echo-server-rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataIdlingEchoServerYaml = []byte(`apiVersion: v1
kind: List
metadata: {}
items:
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    name: idling-echo
  spec:
    replicas: 2
    selector:
      app: idling-echo
      deploymentconfig: idling-echo
    strategy:
      type: Rolling
    template:
      metadata:
        labels:
          app: idling-echo
          deploymentconfig: idling-echo
      spec:
        containers:
        - image: openshift/origin-base
          name: idling-tcp-echo
          command:
            - /usr/bin/socat
            - TCP4-LISTEN:8675,reuseaddr,fork
            - EXEC:'/bin/cat'
          ports:
          - containerPort: 8675
            protocol: TCP
        - image: openshift/origin-base
          name: idling-udp-echo
          command:
            - /usr/bin/socat
            - UDP4-LISTEN:3090,reuseaddr,fork
            - EXEC:'/bin/cat'
          ports:
          - containerPort: 3090
            protocol: UDP
        dnsPolicy: ClusterFirst
        restartPolicy: Always
        securityContext: {}
- apiVersion: v1
  kind: Service
  metadata:
    name: idling-echo
    labels:
      app: idling-echo
  spec:
    selector:
      app: idling-echo
    ports:
      - port: 8675
        name: tcp-echo
        protocol: TCP
      - port: 3090
        name: udp-echo
        protocol: UDP
- apiVersion: v1
  kind: Route
  metadata:
    name: idling-echo
  spec:
    to:
      kind: Service
      name: idling-echo
- apiVersion: v1
  kind: Route
  metadata:
    name: idling-echo-reencrypt
  spec:
    tls:
      termination: reencrypt
      # the actual certificate here is not relevant, since we're not
      # actually serving TLS
      destinationCACertificate: |-
        -----BEGIN CERTIFICATE-----
        MIIDIjCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBoTELMAkGA1UEBhMCVVMx
        CzAJBgNVBAgMAlNDMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0Rl
        ZmF1bHQgQ29tcGFueSBMdGQxEDAOBgNVBAsMB1Rlc3QgQ0ExGjAYBgNVBAMMEXd3
        dy5leGFtcGxlY2EuY29tMSIwIAYJKoZIhvcNAQkBFhNleGFtcGxlQGV4YW1wbGUu
        Y29tMB4XDTE1MDExMjE0MTk0MVoXDTE2MDExMjE0MTk0MVowfDEYMBYGA1UEAwwP
        d3d3LmV4YW1wbGUuY29tMQswCQYDVQQIDAJTQzELMAkGA1UEBhMCVVMxIjAgBgkq
        hkiG9w0BCQEWE2V4YW1wbGVAZXhhbXBsZS5jb20xEDAOBgNVBAoMB0V4YW1wbGUx
        EDAOBgNVBAsMB0V4YW1wbGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMrv
        gu6ZTTefNN7jjiZbS/xvQjyXjYMN7oVXv76jbX8gjMOmg9m0xoVZZFAE4XyQDuCm
        47VRx5Qrf/YLXmB2VtCFvB0AhXr5zSeWzPwaAPrjA4ebG+LUo24ziS8KqNxrFs1M
        mNrQUgZyQC6XIe1JHXc9t+JlL5UZyZQC1IfaJulDAgMBAAGjDTALMAkGA1UdEwQC
        MAAwDQYJKoZIhvcNAQEFBQADggEBAFCi7ZlkMnESvzlZCvv82Pq6S46AAOTPXdFd
        TMvrh12E1sdVALF1P1oYFJzG1EiZ5ezOx88fEDTW+Lxb9anw5/KJzwtWcfsupf1m
        V7J0D3qKzw5C1wjzYHh9/Pz7B1D0KthQRATQCfNf8s6bbFLaw/dmiIUhHLtIH5Qc
        yfrejTZbOSP77z8NOWir+BWWgIDDB2//3AkDIQvT20vmkZRhkqSdT7et4NmXOX/j
        jhPti4b2Fie0LeuvgaOdKjCpQQNrYthZHXeVlOLRhMTSk3qUczenkKTOhvP7IS9q
        +Dzv5hqgSfvMG392KWh5f8xXfJNs4W5KLbZyl901MeReiLrPH3w=
        -----END CERTIFICATE-----
    to:
      kind: Service
      name: idling-echo
`)

func testExtendedTestdataIdlingEchoServerYamlBytes() ([]byte, error) {
	return _testExtendedTestdataIdlingEchoServerYaml, nil
}

func testExtendedTestdataIdlingEchoServerYaml() (*asset, error) {
	bytes, err := testExtendedTestdataIdlingEchoServerYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/idling-echo-server.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataImageDeploymentWithAnnotationTriggerYaml = []byte(`apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    image.openshift.io/triggers: '[{"from":{"kind":"ImageStreamTag","name":"test:v1"},"fieldPath":"spec.template.spec.containers[?(@.name==\"test\")].image"}]'
  name: test
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: test
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
        - image: " "
          name: test
          command: ["/bin/sleep"]
          args:
           - infinity
`)

func testExtendedTestdataImageDeploymentWithAnnotationTriggerYamlBytes() ([]byte, error) {
	return _testExtendedTestdataImageDeploymentWithAnnotationTriggerYaml, nil
}

func testExtendedTestdataImageDeploymentWithAnnotationTriggerYaml() (*asset, error) {
	bytes, err := testExtendedTestdataImageDeploymentWithAnnotationTriggerYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/image/deployment-with-annotation-trigger.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataImagePullSecretsDcWithNewPullSecretYaml = []byte(`kind: Template
apiVersion: v1
metadata:
  name: template
objects:
- kind: DeploymentConfig
  apiVersion: v1
  metadata:
    name: my-dc
  spec:
    replicas: 1
    selector:
      deploymentconfig: my-dc
    strategy:
      type: Rolling
      rollingParams:
        pre: 
          failurePolicy: Abort
          execNewPod: 
            containerName: dc-pod
            command:
            - ls
    template:
      metadata:
        labels:
          deploymentconfig: my-dc
      spec:
        containers:
        - name: dc-pod
          image: ${DOCKER_REGISTRY}/image-ns/busybox
        imagePullSecrets:
        - name: image-ns-pull
parameters:
- name: DOCKER_REGISTRY`)

func testExtendedTestdataImagePullSecretsDcWithNewPullSecretYamlBytes() ([]byte, error) {
	return _testExtendedTestdataImagePullSecretsDcWithNewPullSecretYaml, nil
}

func testExtendedTestdataImagePullSecretsDcWithNewPullSecretYaml() (*asset, error) {
	bytes, err := testExtendedTestdataImagePullSecretsDcWithNewPullSecretYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/image-pull-secrets/dc-with-new-pull-secret.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataImagePullSecretsDcWithOldPullSecretYaml = []byte(`kind: Template
apiVersion: v1
metadata:
  name: template
objects:
- kind: DeploymentConfig
  apiVersion: v1
  metadata:
    name: my-dc-old
  spec:
    replicas: 1
    selector:
      deploymentconfig: my-dc-old
    strategy:
      type: Rolling
      rollingParams:
        pre: 
          failurePolicy: Abort
          execNewPod: 
            containerName: dc-pod-old
            command:
            - ls
    template:
      metadata:
        labels:
          deploymentconfig: my-dc-old
      spec:
        containers:
        - name: dc-pod-old
          image: ${DOCKER_REGISTRY}/image-ns/busybox
        imagePullSecrets:
        - name: image-ns-pull-old
parameters:
- name: DOCKER_REGISTRY`)

func testExtendedTestdataImagePullSecretsDcWithOldPullSecretYamlBytes() ([]byte, error) {
	return _testExtendedTestdataImagePullSecretsDcWithOldPullSecretYaml, nil
}

func testExtendedTestdataImagePullSecretsDcWithOldPullSecretYaml() (*asset, error) {
	bytes, err := testExtendedTestdataImagePullSecretsDcWithOldPullSecretYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/image-pull-secrets/dc-with-old-pull-secret.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataImagePullSecretsPodWithNewPullSecretYaml = []byte(`kind: Template
apiVersion: v1
metadata:
  name: template
objects:
- kind: Pod 
  apiVersion: v1 
  metadata: 
    name: new-pull-pod
  spec: 
    containers: 
    - name: new-pull-pod
      image: ${DOCKER_REGISTRY}/image-ns/busybox
      command:
      - ls
    imagePullSecrets:
      - name: image-ns-pull
parameters:
- name: DOCKER_REGISTRY`)

func testExtendedTestdataImagePullSecretsPodWithNewPullSecretYamlBytes() ([]byte, error) {
	return _testExtendedTestdataImagePullSecretsPodWithNewPullSecretYaml, nil
}

func testExtendedTestdataImagePullSecretsPodWithNewPullSecretYaml() (*asset, error) {
	bytes, err := testExtendedTestdataImagePullSecretsPodWithNewPullSecretYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/image-pull-secrets/pod-with-new-pull-secret.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataImagePullSecretsPodWithNoPullSecretYaml = []byte(`kind: Template
apiVersion: v1
metadata:
  name: template
objects:
- kind: Pod 
  apiVersion: v1 
  metadata: 
    name: no-pull-pod
  spec: 
    containers: 
    - name: no-pull-pod
      image: ${DOCKER_REGISTRY}/image-ns/busybox
      command:
      - ls
parameters:
- name: DOCKER_REGISTRY`)

func testExtendedTestdataImagePullSecretsPodWithNoPullSecretYamlBytes() ([]byte, error) {
	return _testExtendedTestdataImagePullSecretsPodWithNoPullSecretYaml, nil
}

func testExtendedTestdataImagePullSecretsPodWithNoPullSecretYaml() (*asset, error) {
	bytes, err := testExtendedTestdataImagePullSecretsPodWithNoPullSecretYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/image-pull-secrets/pod-with-no-pull-secret.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataImagePullSecretsPodWithOldPullSecretYaml = []byte(`kind: Template
apiVersion: v1
metadata:
  name: template
objects:
- kind: Pod 
  apiVersion: v1 
  metadata: 
    name: old-pull-pod
  spec: 
    containers: 
    - name: old-pull-pod
      image: ${DOCKER_REGISTRY}/image-ns/busybox
      command:
      - ls
    imagePullSecrets:
      - name: image-ns-pull-old
parameters:
- name: DOCKER_REGISTRY`)

func testExtendedTestdataImagePullSecretsPodWithOldPullSecretYamlBytes() ([]byte, error) {
	return _testExtendedTestdataImagePullSecretsPodWithOldPullSecretYaml, nil
}

func testExtendedTestdataImagePullSecretsPodWithOldPullSecretYaml() (*asset, error) {
	bytes, err := testExtendedTestdataImagePullSecretsPodWithOldPullSecretYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/image-pull-secrets/pod-with-old-pull-secret.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataImage_ecosystemPerlHotdeployIndexPl = []byte(`#!/usr/bin/perl
use strict;
use warnings;

use File::Basename qw(dirname);
use Cwd  qw(abs_path);

use lib (dirname abs_path $0) .'/lib';
use My::Test qw(test);
   
print qq(Content-type: text/plain\n\n);
     
test();

`)

func testExtendedTestdataImage_ecosystemPerlHotdeployIndexPlBytes() ([]byte, error) {
	return _testExtendedTestdataImage_ecosystemPerlHotdeployIndexPl, nil
}

func testExtendedTestdataImage_ecosystemPerlHotdeployIndexPl() (*asset, error) {
	bytes, err := testExtendedTestdataImage_ecosystemPerlHotdeployIndexPlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/image_ecosystem/perl-hotdeploy/index.pl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataImage_ecosystemPerlHotdeployLibMyTestPm = []byte(`package My::Test;
use strict; 
use warnings;

use Exporter qw(import);
 
our @EXPORT_OK = qw(test);

sub test {
  print "initial value\n";
}

1;
`)

func testExtendedTestdataImage_ecosystemPerlHotdeployLibMyTestPmBytes() ([]byte, error) {
	return _testExtendedTestdataImage_ecosystemPerlHotdeployLibMyTestPm, nil
}

func testExtendedTestdataImage_ecosystemPerlHotdeployLibMyTestPm() (*asset, error) {
	bytes, err := testExtendedTestdataImage_ecosystemPerlHotdeployLibMyTestPmBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/image_ecosystem/perl-hotdeploy/lib/My/Test.pm", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataImage_ecosystemPerlHotdeployPerlJson = []byte(`{
  "kind": "Template",
  "apiVersion": "v1",
  "metadata": {
    "name": "perl-hotdeploy-example"
  },
  "objects": [
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "${NAME}"
      },
      "spec": {
        "ports": [
          {
            "name": "web",
            "port": 8080,
            "targetPort": 8080
          }
        ],
        "selector": {
          "name": "${NAME}"
        }
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "${NAME}",
        "annotations": {
          "description": "Keeps track of changes in the application image"
        }
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "${NAME}"
      },
      "spec": {
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "ImageStreamTag",
              "namespace": "openshift",
              "name": "perl:5.24"
            }
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "${NAME}:latest"
          }
        } 
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "${NAME}"
      },
      "spec": {
        "strategy": {
          "type": "Rolling"
        },
        "triggers": [
          {
            "type": "ImageChange",
            "imageChangeParams": {
              "automatic": true,
              "containerNames": [
                "perl"
              ],
              "from": {
                "kind": "ImageStreamTag",
                "name": "${NAME}:latest"
              }
            }
          },
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 1,
        "selector": {
          "name": "${NAME}"
        },
        "template": {
          "metadata": {
            "name": "${NAME}",
            "labels": {
              "name": "${NAME}"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "perl",
                "image": " ",
                "ports": [
                  {
                    "containerPort": 8080
                  }
                ],
                "readinessProbe": {
                  "timeoutSeconds": 3,
                  "initialDelaySeconds": 3,
                  "httpGet": {
                    "path": "/",
                    "port": 8080
                  }
                }
              }
            ]
          }
        }
      }
    }
  ],
  "parameters": [
    {
      "name": "NAME",
      "displayName": "Name",
      "description": "The name assigned to all of the frontend objects defined in this template.",
      "required": true,
      "value": "perl"
    }
  ]
}
`)

func testExtendedTestdataImage_ecosystemPerlHotdeployPerlJsonBytes() ([]byte, error) {
	return _testExtendedTestdataImage_ecosystemPerlHotdeployPerlJson, nil
}

func testExtendedTestdataImage_ecosystemPerlHotdeployPerlJson() (*asset, error) {
	bytes, err := testExtendedTestdataImage_ecosystemPerlHotdeployPerlJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/image_ecosystem/perl-hotdeploy/perl.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataImagestreamJenkinsSlavePodsYaml = []byte(`apiVersion: v1
kind: ImageStream
metadata:
  labels:
    role: jenkins-slave
  name: jenkins-slave
spec:
  tags:
  - from:
      kind: DockerImage
      name: docker.io/openshift/jenkins-slave-maven-centos7:latest
    name: base
  - from:
      kind: ImageStreamTag
      name: base
    name: latest
`)

func testExtendedTestdataImagestreamJenkinsSlavePodsYamlBytes() ([]byte, error) {
	return _testExtendedTestdataImagestreamJenkinsSlavePodsYaml, nil
}

func testExtendedTestdataImagestreamJenkinsSlavePodsYaml() (*asset, error) {
	bytes, err := testExtendedTestdataImagestreamJenkinsSlavePodsYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/imagestream-jenkins-slave-pods.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataImagestreamtagJenkinsSlavePodsYaml = []byte(`apiVersion: v1
kind: ImageStream
metadata:
  name: slave-jenkins
spec:
  tags:
  - from:
      kind: DockerImage
      name: docker.io/openshift/jenkins-slave-maven-centos7:latest
    name: base
  - annotations:
      role: jenkins-slave
      slave-label: jenkins-slave
    from:
      kind: ImageStreamTag
      name: base
    name: latest
`)

func testExtendedTestdataImagestreamtagJenkinsSlavePodsYamlBytes() ([]byte, error) {
	return _testExtendedTestdataImagestreamtagJenkinsSlavePodsYaml, nil
}

func testExtendedTestdataImagestreamtagJenkinsSlavePodsYaml() (*asset, error) {
	bytes, err := testExtendedTestdataImagestreamtagJenkinsSlavePodsYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/imagestreamtag-jenkins-slave-pods.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataIngressYaml = []byte(`kind: List
apiVersion: v1
items:
# an ingress that should be captured as individual routes
- apiVersion: extensions/v1beta1
  kind: Ingress
  metadata:
    name: test
  spec:
    tls:
    - hosts:
      - 3.ingress-test.com
      secretName: ingress-endpoint-secret
    rules:
    - host: 1.ingress-test.com
      http:
        paths:
        - path: /test
          backend:
            serviceName: ingress-endpoint-1
            servicePort: 80
        - path: /other
          backend:
            serviceName: ingress-endpoint-2
            servicePort: 80
    - host: 2.ingress-test.com
      http:
        paths:
        - path: /
          backend:
            serviceName: ingress-endpoint-1
            servicePort: 80
    - host: 3.ingress-test.com
      http:
        paths:
        - path: /
          backend:
            serviceName: ingress-endpoint-1
            servicePort: 80
# an empty secret
- apiVersion: v1
  kind: Secret
  metadata:
    name: ingress-endpoint-secret
  type: kubernetes.io/tls
  stringData:
    tls.key: ""
    tls.crt: ""
# a service to be routed to
- apiVersion: v1
  kind: Service
  metadata:
    name: ingress-endpoint-1
  spec:
    selector:
      app: ingress-endpoint-1
    ports:
    - port: 80
      targetPort: 8080
# a service to be routed to
- apiVersion: v1
  kind: Service
  metadata:
    name: ingress-endpoint-2
  spec:
    selector:
      app: ingress-endpoint-2
    ports:
    - port: 80
      targetPort: 8080
# a pod that serves a response
- apiVersion: v1
  kind: Pod
  metadata:
    name: ingress-endpoint-1
    labels:
      app: ingress-endpoint-1
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: test
      image: openshift/hello-openshift
      ports:
      - containerPort: 8080
        name: http
      - containerPort: 100
        protocol: UDP
# a pod that serves a response
- apiVersion: v1
  kind: Pod
  metadata:
    name: ingress-endpoint-2
    labels:
      app: ingress-endpoint-2
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: test
      image: openshift/hello-openshift
      ports:
      - containerPort: 8080
        name: http
      - containerPort: 100
        protocol: UDP
`)

func testExtendedTestdataIngressYamlBytes() ([]byte, error) {
	return _testExtendedTestdataIngressYaml, nil
}

func testExtendedTestdataIngressYaml() (*asset, error) {
	bytes, err := testExtendedTestdataIngressYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/ingress.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginBuildJobCloneXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>                                                                                                                                                                                                                         
<flow-definition plugin="workflow-job@2.8">                                                                                                                                                                                                                    
  <actions/>                                                                                                                                                                                                                                                   
  <description></description>                                                                                                                                                                                                                                  
  <keepDependencies>false</keepDependencies>                                                                                                                                                                                                                   
  <properties>                                                                                                                                                                                                                                                 
    <io.fabric8.jenkins.openshiftsync.BuildConfigProjectProperty plugin="openshift-sync@0.1.1">                                                                                                                                                                
      <uid></uid>                                                                                                                                                                                                                                              
      <namespace></namespace>                                                                                                                                                                                                                                  
      <name></name>                                                                                                                                                                                                                                            
      <resourceVersion></resourceVersion>                                                                                                                                                                                                                      
    </io.fabric8.jenkins.openshiftsync.BuildConfigProjectProperty>                                                                                                                                                                                             
    <org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty>                                                                                                                                                                                
      <triggers/>                                                                                                                                                                                                                                              
    </org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty>                                                                                                                                                                               
  </properties>                                                                                                                                                                                                                                                
  <definition class="org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition" plugin="workflow-cps@2.22">                                                                                                                                                         
    <script>node{                                                                                                                                                                                                                                              
    openshiftBuild namespace: &apos;${PROJECT_NAME}&apos;, bldCfg: &apos;frontend&apos;, buildName: &apos;frontend-1&apos;, showBuildLogs: &apos;false&apos;, verbose: &apos;true&apos;                                                                                     
}</script>                                                                                                                                                                                                                                                     
    <sandbox>true</sandbox>
  </definition>
  <triggers/>
</flow-definition>
`)

func testExtendedTestdataJenkinsPluginBuildJobCloneXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginBuildJobCloneXml, nil
}

func testExtendedTestdataJenkinsPluginBuildJobCloneXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginBuildJobCloneXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/build-job-clone.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginBuildJobSlaveXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>                                                                                                                                                                                                                         
<project>                                                                                                                                                                                                                                                      
  <actions/>                                                                                                                                                                                                                                                   
  <description></description>                                                                                                                                                                                                                                  
  <keepDependencies>false</keepDependencies>                                                                                                                                                                                                                   
  <properties/>                                                                                                                                                                                                                                                
  <scm class="hudson.scm.NullSCM"/>                                                                                                                                                                                                                            
  <assignedNode>nodejs</assignedNode>                                                                                                                                                                                                                          
  <canRoam>false</canRoam>                                                                                                                                                                                                                                     
  <disabled>false</disabled>                                                                                                                                                                                                                                   
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>                                                                                                                                                                                   
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>                                                                                                                                                                                       
  <triggers/>                                                                                                                                                                                                                                                  
  <concurrentBuild>false</concurrentBuild>                                                                                                                                                                                                                     
  <builders>
    
        <com.openshift.jenkins.plugins.pipeline.OpenShiftScaler>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <depCfg>frontend</depCfg>
            <namespace>${PROJECT_NAME}</namespace>
            <replicaCount>0</replicaCount>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftScaler>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftBuilder>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <bldCfg>frontend</bldCfg>
            <namespace>${PROJECT_NAME}</namespace>
            <authToken></authToken>
            <followLog>true</followLog>
            <checkForTriggeredDeployments>true</checkForTriggeredDeployments>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftBuilder>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftDeployer>
          <apiURL></apiURL>
          <namespace>${PROJECT_NAME}</namespace>
          <authToken></authToken>
          <verbose>false</verbose>
          <waitTime></waitTime>
          <waitUnit>sec</waitUnit>
          <depCfg>frontend</depCfg>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftDeployer>
    
        <com.openshift.jenkins.plugins.pipeline.OpenShiftServiceVerifier>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <svcName>frontend</svcName>
            <namespace>${PROJECT_NAME}</namespace>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftServiceVerifier>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <namespace>${PROJECT_NAME}</namespace>
            <testStream>origin-nodejs-sample</testStream>
            <testTag>latest</testTag>
            <prodStream>origin-nodejs-sample</prodStream>
            <prodTag>prod</prodTag>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftDeploymentVerifier>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <depCfg>frontend-prod</depCfg>
            <namespace>${PROJECT_NAME}</namespace>
            <replicaCount>0</replicaCount>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftDeploymentVerifier>
    
  </builders>                                                                                                                                                                                                                                                  
  <publishers/>                                                                                                                                                                                                                                                
  <buildWrappers/>                                                                                                                                                                                                                                             
</project>
`)

func testExtendedTestdataJenkinsPluginBuildJobSlaveXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginBuildJobSlaveXml, nil
}

func testExtendedTestdataJenkinsPluginBuildJobSlaveXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginBuildJobSlaveXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/build-job-slave.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginBuildJobXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>
<project>
    <actions/>
    <description></description>
    <keepDependencies>false</keepDependencies>
    <scm class="hudson.scm.NullSCM"/>
    <canRoam>true</canRoam>
    <disabled>false</disabled>
    <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
    <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
    <triggers/>
    <concurrentBuild>false</concurrentBuild>
    <builders>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftScaler>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <depCfg>frontend</depCfg>
            <namespace>${PROJECT_NAME}</namespace>
            <replicaCount>0</replicaCount>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftScaler>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftBuilder>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <bldCfg>frontend</bldCfg>
            <namespace>${PROJECT_NAME}</namespace>
            <authToken></authToken>
            <followLog>true</followLog>
            <checkForTriggeredDeployments>true</checkForTriggeredDeployments>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftBuilder>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftDeployer>
          <apiURL></apiURL>
          <namespace>${PROJECT_NAME}</namespace>
          <authToken></authToken>
          <verbose>false</verbose>
          <waitTime></waitTime>
          <waitUnit>sec</waitUnit>
          <depCfg>frontend</depCfg>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftDeployer>
    
        <com.openshift.jenkins.plugins.pipeline.OpenShiftServiceVerifier>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <svcName>frontend</svcName>
            <namespace>${PROJECT_NAME}</namespace>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftServiceVerifier>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <namespace>${PROJECT_NAME}</namespace>
            <testStream>origin-nodejs-sample</testStream>
            <testTag>latest</testTag>
            <prodStream>origin-nodejs-sample</prodStream>
            <prodTag>prod</prodTag>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftDeploymentVerifier>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <depCfg>frontend-prod</depCfg>
            <namespace>${PROJECT_NAME}</namespace>
            <replicaCount>0</replicaCount>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftDeploymentVerifier>

    </builders>
    <publishers/>
    <buildWrappers/>
</project>
`)

func testExtendedTestdataJenkinsPluginBuildJobXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginBuildJobXml, nil
}

func testExtendedTestdataJenkinsPluginBuildJobXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginBuildJobXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/build-job.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginBuildWithEnvJobXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>
<project>
    <actions/>
    <description></description>
    <keepDependencies>false</keepDependencies>
    <scm class="hudson.scm.NullSCM"/>
    <canRoam>true</canRoam>
    <disabled>false</disabled>
    <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
    <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
    <triggers/>
    <concurrentBuild>false</concurrentBuild>
    <builders>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftBuilder>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <bldCfg>frontend</bldCfg>
            <namespace>${PROJECT_NAME}</namespace>
            <authToken></authToken>
            <followLog>true</followLog>
            <checkForTriggeredDeployments>false</checkForTriggeredDeployments>

            <envVars>
                <com.openshift.jenkins.plugins.pipeline.NameValuePair>
                    <name>a</name>
                    <value>b</value>
                </com.openshift.jenkins.plugins.pipeline.NameValuePair>
                <com.openshift.jenkins.plugins.pipeline.NameValuePair>
                    <name>C</name>
                    <value>D</value>
                </com.openshift.jenkins.plugins.pipeline.NameValuePair>
                <com.openshift.jenkins.plugins.pipeline.NameValuePair>
                    <name>e</name>
                    <value></value>
                </com.openshift.jenkins.plugins.pipeline.NameValuePair>
            </envVars>

        </com.openshift.jenkins.plugins.pipeline.OpenShiftBuilder>

    </builders>
    <publishers/>
    <buildWrappers/>
</project>
`)

func testExtendedTestdataJenkinsPluginBuildWithEnvJobXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginBuildWithEnvJobXml, nil
}

func testExtendedTestdataJenkinsPluginBuildWithEnvJobXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginBuildWithEnvJobXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/build-with-env-job.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginBuildWithExecStepsXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>
<project>
    <actions/>
    <description></description>
    <keepDependencies>false</keepDependencies>
    <properties>
        <io.fabric8.jenkins.openshiftsync.BuildConfigProjectProperty plugin="openshift-sync@0.0.13">
            <uid></uid>
            <namespace></namespace>
            <name></name>
            <resourceVersion></resourceVersion>
            <contextDir></contextDir>
        </io.fabric8.jenkins.openshiftsync.BuildConfigProjectProperty>
    </properties>
    <scm class="hudson.scm.NullSCM"/>
    <canRoam>true</canRoam>
    <disabled>false</disabled>
    <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
    <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
    <triggers/>
    <concurrentBuild>false</concurrentBuild>
    <builders>
        <com.openshift.jenkins.plugins.pipeline.OpenShiftExec plugin="openshift-pipeline@1.0.31-SNAPSHOT">
            <apiURL></apiURL>
            <namespace>${PROJECT_NAME}</namespace>
            <authToken></authToken>
            <verbose>true</verbose>
            <waitTime>120000</waitTime>
            <waitUnit>milli</waitUnit>
            <pod>${POD_NAME}</pod>
            <container>${CONTAINER_NAME}</container>
            <command>echo</command>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftExec>
        <com.openshift.jenkins.plugins.pipeline.OpenShiftExec plugin="openshift-pipeline@1.0.31-SNAPSHOT">
            <apiURL></apiURL>
            <namespace>${PROJECT_NAME}</namespace>
            <authToken></authToken>
            <verbose>true</verbose>
            <waitTime>120000</waitTime>
            <waitUnit>milli</waitUnit>
            <pod>${POD_NAME}</pod>
            <container>${CONTAINER_NAME}</container>
            <command>echo</command>
            <arguments>
                <com.openshift.jenkins.plugins.pipeline.Argument>
                    <value>hello</value>
                </com.openshift.jenkins.plugins.pipeline.Argument>
                <com.openshift.jenkins.plugins.pipeline.Argument>
                    <value>world</value>
                </com.openshift.jenkins.plugins.pipeline.Argument>
                <com.openshift.jenkins.plugins.pipeline.Argument>
                    <value>1</value>
                </com.openshift.jenkins.plugins.pipeline.Argument>
            </arguments>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftExec>
    </builders>
    <publishers/>
    <buildWrappers/>
</project>`)

func testExtendedTestdataJenkinsPluginBuildWithExecStepsXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginBuildWithExecStepsXml, nil
}

func testExtendedTestdataJenkinsPluginBuildWithExecStepsXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginBuildWithExecStepsXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/build-with-exec-steps.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginCreateJobXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>
<project>
    <actions/>
    <description></description>
    <keepDependencies>false</keepDependencies>
    <scm class="hudson.scm.NullSCM"/>
    <canRoam>true</canRoam>
    <disabled>false</disabled>
    <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
    <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
    <triggers/>
    <concurrentBuild>false</concurrentBuild>
    <builders>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftCreator>
          <namespace>${PROJECT_NAME}</namespace>
	  <jsonyaml>{
    "kind": "List",
    "apiVersion": "v1",
    "metadata": {},
    "items": [
	{
    
	    "kind": "ImageStream",
	    "apiVersion": "v1",
	    "metadata": {
		"name": "forcepull-extended-test-builder",
                "labels": {
                    "foo": "bar"
                },
		"creationTimestamp": null
	    },
	    "spec": {},
	    "status": {
		"dockerImageRepository": ""
	    }
    
	},
	{
	    "kind": "BuildConfig",
	    "apiVersion": "v1",
	    "metadata": {
		"name": "forcepull-bldr",
		"creationTimestamp": null,
		"labels": {
                    "foo": "bar"
		}
	    },
	    "spec": {
		"triggers": [],
		"source": {
		    "type": "Git",
		    "git": {
			"uri": "https://github.com/openshift/ruby-hello-world.git"
		    }
		},
		"strategy": {
		    "type": "Docker",
		    "dockerStrategy": {
			"nocache": true
		    }
		},
		"output":{
		    "to":{
			"kind":"ImageStreamTag",
			"name":"forcepull-extended-test-builder:latest"
		    }
		}
	    }
	}
    ]
}
	  </jsonyaml>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftCreator>

    </builders>
    <publishers/>
    <buildWrappers/>
</project>
`)

func testExtendedTestdataJenkinsPluginCreateJobXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginCreateJobXml, nil
}

func testExtendedTestdataJenkinsPluginCreateJobXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginCreateJobXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/create-job.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginDeleteJobKeysXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>
<project>
    <actions/>
    <description></description>
    <keepDependencies>false</keepDependencies>
    <scm class="hudson.scm.NullSCM"/>
    <canRoam>true</canRoam>
    <disabled>false</disabled>
    <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
    <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
    <triggers/>
    <concurrentBuild>false</concurrentBuild>
    <builders>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftDeleterList>
          <namespace>${PROJECT_NAME}</namespace>
          <types>is,bc</types>                                                                                                                                                                                                             
          <keys>forcepull-extended-test-builder,forcepull-bldr</keys>                                                                                                                                                                                                                 
        </com.openshift.jenkins.plugins.pipeline.OpenShiftDeleterList>

    </builders>
    <publishers/>
    <buildWrappers/>
</project>
`)

func testExtendedTestdataJenkinsPluginDeleteJobKeysXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginDeleteJobKeysXml, nil
}

func testExtendedTestdataJenkinsPluginDeleteJobKeysXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginDeleteJobKeysXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/delete-job-keys.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginDeleteJobLabelsXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>
<project>
    <actions/>
    <description></description>
    <keepDependencies>false</keepDependencies>
    <scm class="hudson.scm.NullSCM"/>
    <canRoam>true</canRoam>
    <disabled>false</disabled>
    <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
    <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
    <triggers/>
    <concurrentBuild>false</concurrentBuild>
    <builders>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftDeleterLabels>
          <namespace>${PROJECT_NAME}</namespace>
          <types>bc,is</types>                                                                                                                                                                                                             
          <keys>foo</keys>                                                                                                                                                                                                                 
          <values>bar</values>                                                                                                                                                                                                             
        </com.openshift.jenkins.plugins.pipeline.OpenShiftDeleterLabels>

    </builders>
    <publishers/>
    <buildWrappers/>
</project>
`)

func testExtendedTestdataJenkinsPluginDeleteJobLabelsXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginDeleteJobLabelsXml, nil
}

func testExtendedTestdataJenkinsPluginDeleteJobLabelsXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginDeleteJobLabelsXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/delete-job-labels.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginDeleteJobXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>
<project>
    <actions/>
    <description></description>
    <keepDependencies>false</keepDependencies>
    <scm class="hudson.scm.NullSCM"/>
    <canRoam>true</canRoam>
    <disabled>false</disabled>
    <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
    <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
    <triggers/>
    <concurrentBuild>false</concurrentBuild>
    <builders>

        <com.openshift.jenkins.plugins.pipeline.OpenShiftDeleterJsonYaml>
          <namespace>${PROJECT_NAME}</namespace>
	  <jsonyaml>{
    "kind": "List",
    "apiVersion": "v1",
    "metadata": {},
    "items": [
	{
    
	    "kind": "ImageStream",
	    "apiVersion": "v1",
	    "metadata": {
		"name": "forcepull-extended-test-builder",
		"creationTimestamp": null
	    },
	    "spec": {},
	    "status": {
		"dockerImageRepository": ""
	    }
    
	},
	{
	    "kind": "BuildConfig",
	    "apiVersion": "v1",
	    "metadata": {
		"name": "forcepull-bldr",
		"creationTimestamp": null,
		"labels": {
		    "name": "forcepull-bldr"
		}
	    },
	    "spec": {
		"triggers": [],
		"source": {
		    "type": "Git",
		    "git": {
			"uri": "https://github.com/openshift/ruby-hello-world.git"
		    }
		},
		"strategy": {
		    "type": "Docker",
		    "dockerStrategy": {
			"nocache": true
		    }
		},
		"output":{
		    "to":{
			"kind":"ImageStreamTag",
			"name":"forcepull-extended-test-builder:latest"
		    }
		}
	    }
	}
    ]
}
	  </jsonyaml>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftDeleterJsonYaml>

    </builders>
    <publishers/>
    <buildWrappers/>
</project>
`)

func testExtendedTestdataJenkinsPluginDeleteJobXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginDeleteJobXml, nil
}

func testExtendedTestdataJenkinsPluginDeleteJobXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginDeleteJobXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/delete-job.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginImagestreamScmDslJobXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>
<flow-definition plugin="workflow-job@2.2">
  <actions/>
  <description></description>
  <keepDependencies>false</keepDependencies>
  <properties>
    <io.fabric8.jenkins.openshiftsync.BuildConfigProjectProperty plugin="openshift-sync@0.0.12">
      <uid></uid>
      <namespace></namespace>
      <name></name>
      <resourceVersion></resourceVersion>
      <contextDir></contextDir>
    </io.fabric8.jenkins.openshiftsync.BuildConfigProjectProperty>
  </properties>
  <definition class="org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition" plugin="workflow-cps@2.6">
    <script>node {
   openshiftImageStream name: "testimage", tag: "v1", namespace: "${PROJECT_NAME}" &#xD; &#xA;
   openshiftTag destStream: "localjenkins", destTag: "develop", destinationNamespace: "${PROJECT_NAME}", namespace: "openshift", srcStream: "jenkins", srcTag: "latest"
}</script>
    <sandbox>true</sandbox>
  </definition>
  <triggers>
    <hudson.triggers.SCMTrigger>
      <spec>* * * * *</spec>
      <ignorePostCommitHooks>false</ignorePostCommitHooks>
    </hudson.triggers.SCMTrigger>
  </triggers>
</flow-definition>
`)

func testExtendedTestdataJenkinsPluginImagestreamScmDslJobXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginImagestreamScmDslJobXml, nil
}

func testExtendedTestdataJenkinsPluginImagestreamScmDslJobXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginImagestreamScmDslJobXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/imagestream-scm-dsl-job.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginImagestreamScmJobXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description></description>
  <keepDependencies>false</keepDependencies>
  <properties>
    <io.fabric8.jenkins.openshiftsync.BuildConfigProjectProperty plugin="openshift-sync@0.0.13">
      <uid></uid>
      <namespace></namespace>
      <name></name>
      <resourceVersion></resourceVersion>
      <contextDir></contextDir>
    </io.fabric8.jenkins.openshiftsync.BuildConfigProjectProperty>
  </properties>
  <scm class="com.openshift.jenkins.plugins.pipeline.OpenShiftImageStreams" plugin="openshift-pipeline@1.0.23">
    <imageStreamName>testimage</imageStreamName>
    <tag>v1</tag>
    <apiURL></apiURL>
    <namespace>${PROJECT_NAME}</namespace>
    <authToken></authToken>
  </scm>
  <canRoam>true</canRoam>
  <disabled>false</disabled>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <triggers>
    <hudson.triggers.SCMTrigger>
      <spec>* * * * *</spec>
      <ignorePostCommitHooks>false</ignorePostCommitHooks>
    </hudson.triggers.SCMTrigger>
  </triggers>
  <concurrentBuild>false</concurrentBuild>
  <builders>
    <com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger plugin="openshift-pipeline@1.0.23">
      <apiURL></apiURL>
      <namespace>openshift</namespace>
      <authToken></authToken>
      <verbose>false</verbose>
      <testTag>latest</testTag>
      <prodTag>develop</prodTag>
      <testStream>jenkins</testStream>
      <prodStream>localjenkins</prodStream>
      <destinationNamespace>${PROJECT_NAME}</destinationNamespace>
      <destinationAuthToken></destinationAuthToken>
      <alias>false</alias>
    </com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>
  </builders>
  <publishers/>
  <buildWrappers/>
</project>
`)

func testExtendedTestdataJenkinsPluginImagestreamScmJobXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginImagestreamScmJobXml, nil
}

func testExtendedTestdataJenkinsPluginImagestreamScmJobXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginImagestreamScmJobXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/imagestream-scm-job.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginMultitagJobXml = []byte(`<?xml version='1.0' encoding='UTF-8'?>
<project>
    <actions/>
    <description></description>
    <keepDependencies>false</keepDependencies>
    <scm class="hudson.scm.NullSCM"/>
    <canRoam>true</canRoam>
    <disabled>false</disabled>
    <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
    <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
    <triggers/>
    <concurrentBuild>false</concurrentBuild>
    <builders>

        <!-- 1 to 1 mapping -->
        <com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <namespace>${PROJECT_NAME}</namespace>
            <testStream>multitag</testStream>
            <testTag>orig</testTag>
            <prodStream>multitag</prodStream>
            <prodTag>prod</prodTag>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>

        <!-- 1 to N mapping -->
        <com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <namespace>${PROJECT_NAME}</namespace>
            <testStream>multitag</testStream>
            <testTag>prod</testTag>
            <prodStream>multitag</prodStream>
            <prodTag>prod2,prod3,prod4</prodTag>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>

        <!-- N to 1 mapping -->
        <com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <namespace>${PROJECT_NAME}</namespace>
            <testStream>multitag</testStream>
            <testTag>prod4</testTag>
            <prodStream>multitag, multitag2, multitag3</prodStream>
            <prodTag>prod5</prodTag>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>

        <!-- N to N tagging -->
        <com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <namespace>${PROJECT_NAME}</namespace>
            <testStream>multitag3</testStream>
            <testTag>prod5</testTag>
            <prodStream>multitag, multitag2, multitag3</prodStream>
            <prodTag>prod6, prod7, prod8</prodTag>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>

        <!-- N to N tagging with creation-->
        <com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>
            <apiURL>https://openshift.default.svc.cluster.local</apiURL>
            <namespace>${PROJECT_NAME}</namespace>
            <testStream>multitag3</testStream>
            <testTag>prod8</testTag>
            <prodStream>multitag4, multitag5, multitag6</prodStream>
            <prodTag>prod9, prod10, prod11</prodTag>
            <authToken></authToken>
        </com.openshift.jenkins.plugins.pipeline.OpenShiftImageTagger>

    </builders>
    <publishers/>
    <buildWrappers/>
</project>
`)

func testExtendedTestdataJenkinsPluginMultitagJobXmlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginMultitagJobXml, nil
}

func testExtendedTestdataJenkinsPluginMultitagJobXml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginMultitagJobXmlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/multitag-job.xml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginMultitagTemplateJson = []byte(`{
  "kind": "Template",
  "apiVersion": "v1",
  "metadata": {
    "name": "multitag",
    "creationTimestamp": null
  },
  "objects": [
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "multitag"
      },
      "spec": {
        "tags": [
          {
            "name": "orig",
            "from": {
              "kind": "DockerImage",
              "name": "centos/ruby-25-centos7"
            }
          }
        ]
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "multitag2"
      },
      "spec": {
        "tags": [
          {
            "name": "orig",
            "from": {
              "kind": "DockerImage",
              "name": "centos/ruby-25-centos7"
            }
          }
        ]
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "multitag3"
      },
      "spec": {
        "tags": [
          {
            "name": "orig",
            "from": {
              "kind": "DockerImage",
              "name": "centos/ruby-25-centos7"
            }
          }
        ]
      }
    }
  ]
}
`)

func testExtendedTestdataJenkinsPluginMultitagTemplateJsonBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginMultitagTemplateJson, nil
}

func testExtendedTestdataJenkinsPluginMultitagTemplateJson() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginMultitagTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/multitag-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsPluginSharedResourcesTemplateJson = []byte(`{
  "kind": "Template",
  "apiVersion": "v1",
  "metadata": {
    "name": "nodejs-helloworld-sample",
    "annotations": {
      "description": "This example shows how to create a simple nodejs application in openshift origin v3",
      "iconClass": "icon-nodejs",
      "tags": "instant-app,nodejs"
    }
  },
  "objects": [
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend-prod"
      },
      "spec": {
        "ports": [
          {
            "name": "web",
            "protocol": "TCP",
            "port": 8080,
            "targetPort": 8080,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "frontend-prod"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {}
      }
    },
    {
      "kind": "Route",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "to": {
          "kind": "Service",
          "name": "frontend"
        },
        "tls": {
          "termination": "edge"
        }
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend-prod"
      },
      "spec": {
        "strategy": {
          "type": "Rolling",
          "rollingParams": {
            "updatePeriodSeconds": 1,
            "intervalSeconds": 1,
            "timeoutSeconds": 120
          }
        },
        "triggers": [
          {
            "type": "ImageChange",
            "imageChangeParams": {
              "automatic": true,
              "containerNames": [
                "nodejs-helloworld"
              ],
              "from": {
                "kind": "ImageStreamTag",
                "name": "origin-nodejs-sample:prod"
              }
            }
          },
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 1,
        "selector": {
          "name":"frontend-prod"
        },
        "template": {
          "metadata": {
            "labels": {
              "name": "frontend-prod"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "nodejs-helloworld",
                "image": " ",
                "ports": [
                  {
                    "containerPort": 8080,
                    "protocol": "TCP"
                  }
                ],
                "resources": {
                  "limits": {
                    "memory": "${MEMORY_LIMIT}"
                  }
                },
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "IfNotPresent",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      }
    },

    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "ports": [
          {
            "name": "web",
            "protocol": "TCP",
            "port": 8080,
            "targetPort": 8080,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "frontend"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-nodejs-sample"
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-nodejs-sample2"
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-nodejs-sample3"
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend",
        "labels": {
          "name": "nodejs-sample-build"
        }
      },
      "spec": {
        "triggers": [
          {
            "type": "GitHub",
            "github": {
              "secret": "secret101"
            }
          },
          {
            "type": "Generic",
            "generic": {
              "secret": "secret101"
            }
          }
        ],
        "source": {
          "type": "Git",
          "git": {
            "uri": "https://github.com/sclorg/nodejs-ex.git"
          }
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "ImageStreamTag",
              "namespace": "openshift",
              "name": "nodejs:latest"
            }
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "origin-nodejs-sample:latest"
          }
        },
        "resources": {}
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "strategy": {
          "type": "Rolling",
          "rollingParams": {
            "updatePeriodSeconds": 1,
            "intervalSeconds": 1,
            "timeoutSeconds": 120
          }
        },
        "triggers": [
          {
            "type": "ImageChange",
            "imageChangeParams": {
              "automatic": true,
              "containerNames": [
                "nodejs-helloworld"
              ],
              "from": {
                "kind": "ImageStreamTag",
                "name": "origin-nodejs-sample:latest"
              }
            }
          },
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 1,
        "selector": {
          "name":"frontend"
          },
        "template": {
          "metadata": {
            "labels": {
              "name": "frontend"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "nodejs-helloworld",
                "image": " ",
                "ports": [
                  {
                    "containerPort": 8080,
                    "protocol": "TCP"
                  }
                ],
                "resources": {
		    "limits": {
			"memory": "${MEMORY_LIMIT}"
		    }
		},
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "IfNotPresent",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      }
    }
  ],
  "parameters": [
    {
      "name": "MEMORY_LIMIT",
      "displayName": "Memory Limit",
      "description": "Maximum amount of memory the container can use.",
      "value": "512Mi"
    },
    {
      "name": "NAMESPACE",
      "displayName": "Namespace",
      "description": "The OpenShift Namespace where the ImageStream resides.",
      "value": "openshift"
    },
   {
      "name": "ADMIN_USERNAME",
      "displayName": "Administrator Username",
      "description": "Username for the administrator of this application.",
      "generate": "expression",
      "from": "admin[A-Z0-9]{3}"
    },
    {
      "name": "ADMIN_PASSWORD",
      "displayName": "Administrator Password",
      "description": "Password for the administrator of this application.",
      "generate": "expression",
      "from": "[a-zA-Z0-9]{8}"
    }
  ],
  "labels": {
    "template": "application-template-stibuild"
  }
}
`)

func testExtendedTestdataJenkinsPluginSharedResourcesTemplateJsonBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsPluginSharedResourcesTemplateJson, nil
}

func testExtendedTestdataJenkinsPluginSharedResourcesTemplateJson() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsPluginSharedResourcesTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-plugin/shared-resources-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJenkinsSlaveTemplateYaml = []byte(`apiVersion: v1
kind: Template
metadata:
  name: jenkins-slave-pipeline
objects:
- apiVersion: v1
  kind: BuildConfig
  metadata:
    creationTimestamp: null
    name: openshift-jee-sample
  spec:
    strategy:
      jenkinsPipelineStrategy:
        jenkinsfile: |-
          try {
             timeout(time: 20, unit: 'MINUTES') {
        
                node("jenkins-slave") {
                  sh "mvn --version"
                }

             }
          } catch (err) {
             echo "in catch block"
             echo "Caught: ${err}"
             currentBuild.result = 'FAILURE'
             throw err
          }
      type: JenkinsPipeline
`)

func testExtendedTestdataJenkinsSlaveTemplateYamlBytes() ([]byte, error) {
	return _testExtendedTestdataJenkinsSlaveTemplateYaml, nil
}

func testExtendedTestdataJenkinsSlaveTemplateYaml() (*asset, error) {
	bytes, err := testExtendedTestdataJenkinsSlaveTemplateYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jenkins-slave-template.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataJobsV1Yaml = []byte(`apiVersion: batch/v1
kind: Job
metadata:
  name: simplev1
spec:
  template:
    metadata:
      name: simplev1
      labels:
        app: simplev1
    spec:
      containers:
      - name: simplev1
        image: gcr.io/google_containers/busybox
        command: ["/bin/sh", "-c", "exit 0"]
      restartPolicy: Never
`)

func testExtendedTestdataJobsV1YamlBytes() ([]byte, error) {
	return _testExtendedTestdataJobsV1Yaml, nil
}

func testExtendedTestdataJobsV1Yaml() (*asset, error) {
	bytes, err := testExtendedTestdataJobsV1YamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/jobs/v1.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataLdapLdapserverBuildconfigJson = []byte(`{
  "kind": "BuildConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "openldap",
    "creationTimestamp": null,
    "labels": {
      "name": "openldap"
    }
  },
  "spec": {
    "source": {
      "type": "Binary"
    },
    "strategy": {
      "type": "Docker",
      "dockerStrategy": {
        "from": {
          "kind": "ImageStreamTag",
          "name": "openldap:latest"
        }
      }
    },
    "output": {
      "to": {
        "kind": "ImageStreamTag",
        "name": "openldap-testenv:latest"
      }
    },
    "resources": {}
  },
  "status": {
    "lastVersion": 0
  }
}
`)

func testExtendedTestdataLdapLdapserverBuildconfigJsonBytes() ([]byte, error) {
	return _testExtendedTestdataLdapLdapserverBuildconfigJson, nil
}

func testExtendedTestdataLdapLdapserverBuildconfigJson() (*asset, error) {
	bytes, err := testExtendedTestdataLdapLdapserverBuildconfigJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/ldap/ldapserver-buildconfig.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataLdapLdapserverDeploymentconfigJson = []byte(`{
  "kind": "DeploymentConfig",
  "apiVersion": "v1",
  "metadata": {
    "name": "openldap-server",
    "creationTimestamp": null
  },
  "spec": {
    "strategy": {
      "type": "Recreate",
      "resources": {}
    },
    "triggers": [
      {
        "type": "ImageChange",
        "imageChangeParams": {
          "automatic": true,
          "containerNames": [
            "openldap-server"
          ],
          "from": {
            "kind": "ImageStreamTag",
            "name": "openldap-testenv:latest"
          },
          "lastTriggeredImage": ""
        }
      },
      {
        "type": "ConfigChange"
      }
    ],
    "replicas": 1,
    "selector": {
      "name": "openldap-server"
    },
    "template": {
      "metadata": {
        "creationTimestamp": null,
        "labels": {
          "name": "openldap-server"
        }
      },
      "spec": {
        "containers": [
          {
            "name": "openldap-server",
            "image": "openldap-testenv",
            "ports": [
              {
                "containerPort": 389,
                "protocol": "TCP"
              }
            ],
            "resources": {},
            "terminationMessagePath": "/dev/termination-log",
            "imagePullPolicy": "IfNotPresent",
            "capabilities": {},
            "securityContext": {
              "capabilities": {},
              "privileged": false
            },
            "readinessProbe": {
              "exec": {
                "command": ["ldapsearch", "-x", "-b", "dc=example,dc=com"]
              },
              "initialDelaySeconds": 5,
              "timeoutSeconds": 1
            }            
          }
        ],
        "restartPolicy": "Always",
        "dnsPolicy": "ClusterFirst",
        "serviceAccount": ""
      }
    }
  },
  "status": {}
}`)

func testExtendedTestdataLdapLdapserverDeploymentconfigJsonBytes() ([]byte, error) {
	return _testExtendedTestdataLdapLdapserverDeploymentconfigJson, nil
}

func testExtendedTestdataLdapLdapserverDeploymentconfigJson() (*asset, error) {
	bytes, err := testExtendedTestdataLdapLdapserverDeploymentconfigJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/ldap/ldapserver-deploymentconfig.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataLdapLdapserverImagestreamTestenvJson = []byte(`{
  "kind": "ImageStream",
  "apiVersion": "v1",
  "metadata": {
    "name": "openldap-testenv",
    "creationTimestamp": null
  },
  "spec": {},
  "status": {
    "dockerImageRepository": ""
  }
}`)

func testExtendedTestdataLdapLdapserverImagestreamTestenvJsonBytes() ([]byte, error) {
	return _testExtendedTestdataLdapLdapserverImagestreamTestenvJson, nil
}

func testExtendedTestdataLdapLdapserverImagestreamTestenvJson() (*asset, error) {
	bytes, err := testExtendedTestdataLdapLdapserverImagestreamTestenvJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/ldap/ldapserver-imagestream-testenv.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataLdapLdapserverImagestreamJson = []byte(`{
  "kind": "ImageStream",
  "apiVersion": "v1",
  "metadata": {
    "name": "openldap",
    "creationTimestamp": null
  },
  "spec": {
    "dockerImageRepository": "openshift/openldap-2441-centos7",
    "tags": [
      {
        "tag": "latest",
        "annotations": {
          "description": "Provides OpenLDAP v2.4.41",
          "iconClass": "fa-server",
          "tags": "server,openldap",
          "version": "2.4.41"
        }
      }
    ]
  },
  "status": {
    "dockerImageRepository": ""
  }
}`)

func testExtendedTestdataLdapLdapserverImagestreamJsonBytes() ([]byte, error) {
	return _testExtendedTestdataLdapLdapserverImagestreamJson, nil
}

func testExtendedTestdataLdapLdapserverImagestreamJson() (*asset, error) {
	bytes, err := testExtendedTestdataLdapLdapserverImagestreamJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/ldap/ldapserver-imagestream.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataLdapLdapserverServiceJson = []byte(`{
  "kind": "Service",
  "apiVersion": "v1",
  "metadata": {
    "name": "openldap-server",
    "creationTimestamp": null
  },
  "spec": {
    "ports": [
      {
        "name": "ldap",
        "protocol": "TCP",
        "port": 389,
        "targetPort": 389,
        "nodePort": 0
      }
    ],
    "selector": {
      "name": "openldap-server"
    },
    "type": "ClusterIP",
    "sessionAffinity": "None"
  },
  "status": {
    "loadBalancer": {}
  }
}`)

func testExtendedTestdataLdapLdapserverServiceJsonBytes() ([]byte, error) {
	return _testExtendedTestdataLdapLdapserverServiceJson, nil
}

func testExtendedTestdataLdapLdapserverServiceJson() (*asset, error) {
	bytes, err := testExtendedTestdataLdapLdapserverServiceJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/ldap/ldapserver-service.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataLong_namesDockerfile = []byte(`FROM centos/ruby-25-centos7

CMD ["/bin/sh", "-c", "echo", "hello"]
`)

func testExtendedTestdataLong_namesDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataLong_namesDockerfile, nil
}

func testExtendedTestdataLong_namesDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataLong_namesDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/long_names/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataLong_namesFixtureJson = []byte(`{
    "kind": "List",
    "apiVersion": "v1",
    "metadata": {},
    "items": [
        {
            "kind": "BuildConfig",
            "apiVersion": "v1",
            "metadata": {
                "name": "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890a",
                "labels": {
                    "name": "12345678901234567890123456789012345678901234567890123456789012a"
                }
            },
            "spec": {
                "triggers": [],
                "source": {
                    "type": "Git",
                    "git": {
                        "uri": "git://github.com/openshift/ruby-hello-world.git"
                    }
                },
                "strategy": {
                    "type": "Source",
                    "env": [],
                    "sourceStrategy": {
                        "from": {
                            "kind": "DockerImage",
                            "name": "centos/ruby-25-centos7"
                        }
                    }
                }
            }
        },
        {
            "kind": "BuildConfig",
            "apiVersion": "v1",
            "metadata": {
                "name": "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890b",
                "labels": {
                    "name": "12345678901234567890123456789012345678901234567890123456789012b"
                }
            },
            "spec": {
                "triggers": [],
                "source": {
                    "type": "Git",
                    "git": {
                        "uri": "git://github.com/openshift/ruby-hello-world.git"
                    }
                },
                "strategy": {
                    "type": "Source",
                    "env": [],
                    "sourceStrategy": {
                        "from": {
                            "kind": "DockerImage",
                            "name": "centos/ruby-25-centos7"
                        }
                    }
                }
            }
        }
    ]
}`)

func testExtendedTestdataLong_namesFixtureJsonBytes() ([]byte, error) {
	return _testExtendedTestdataLong_namesFixtureJson, nil
}

func testExtendedTestdataLong_namesFixtureJson() (*asset, error) {
	bytes, err := testExtendedTestdataLong_namesFixtureJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/long_names/fixture.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataMultiNamespacePipelineYaml = []byte(`apiVersion: v1
kind: Template
labels:
  template: multi-namespace-pipeline
metadata:
  annotations:
    iconClass: icon-jenkins
    tags: instant-app,jenkins
  name: 
parameters:
- description: namespace
  displayName: namespace
  name: NAMESPACE
  value: namespace
- description: namespace2
  displayName: namespace2
  name: NAMESPACE2
  value: namespace2
- description: namespace3
  displayName: namespace3
  name: NAMESPACE3
  value: namespace3
objects:
- apiVersion: v1
  kind: BuildConfig
  metadata:
    labels:
      name: multi-namespace-pipeline
    name: multi-namespace-pipeline
  spec:
    strategy:
      jenkinsPipelineStrategy:
        env:
          - name: NAMESPACE
            value: ${NAMESPACE}
          - name: NAMESPACE2
            value: ${NAMESPACE2}
          - name: NAMESPACE3
            value: ${NAMESPACE3}
        jenkinsfile: |-
          try {
              timeout(time: 20, unit: 'MINUTES') {
                  // Select the default cluster
                  openshift.withCluster() {
                      // Select the default project
                      openshift.withProject() {

                          // Output the url of the currently selected cluster
                          echo "Using project ${openshift.project()} in cluster with url ${openshift.cluster()}"

                          template = openshift.create('https://raw.githubusercontent.com/openshift/origin/master/test/extended/testdata/multi-namespace-template.yaml').object()

                          // Explore the Groovy object which models the OpenShift template as a Map
                          echo "Template contains ${template.parameters.size()} parameters"

                          // Process the modeled template. We could also pass JSON/YAML, a template name, or a url instead.
                          def objectModels = openshift.process( template, "-p", "NAMESPACE=${env.NAMESPACE}", "-p", "NAMESPACE2=${env.NAMESPACE2}", "-p", "NAMESPACE3=${env.NAMESPACE3}" )

                          // objectModels is a list of objects the template defined, modeled as Groovy objects
                          echo "The template references ${objectModels.size()} objects"

                          def objects = openshift.create(objectModels)

                          // Create returns a selector which will always select the objects created
                          objects.withEach {
                              // Each loop binds the variable 'it' to a selector which selects a single object
                              echo "Created ${it.name()} from template with labels ${it.object().metadata.labels}"
                          }

               
                      }
                  }
              }
          } catch (err) {
             echo "in catch block"
             echo "Caught: ${err}"
             currentBuild.result = 'FAILURE'
             throw err
          }
      type: JenkinsPipeline
`)

func testExtendedTestdataMultiNamespacePipelineYamlBytes() ([]byte, error) {
	return _testExtendedTestdataMultiNamespacePipelineYaml, nil
}

func testExtendedTestdataMultiNamespacePipelineYaml() (*asset, error) {
	bytes, err := testExtendedTestdataMultiNamespacePipelineYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/multi-namespace-pipeline.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataMultiNamespaceTemplateYaml = []byte(`apiVersion: v1
items:
- apiVersion: template.openshift.io/v1
  kind: Template
  labels:
    template: mongodb-ephemeral-template
  metadata:
    name: mongodb-ephemeral
  objects:
  - apiVersion: v1
    kind: Secret
    metadata:
      annotations:
        template.openshift.io/expose-admin_password: '{.data[''database-admin-password'']}'
        template.openshift.io/expose-database_name: '{.data[''database-name'']}'
        template.openshift.io/expose-password: '{.data[''database-password'']}'
        template.openshift.io/expose-username: '{.data[''database-user'']}'
      name: ${DATABASE_SERVICE_NAME}
      namespace: ${NAMESPACE2}
    stringData:
      database-admin-password: ${MONGODB_ADMIN_PASSWORD}
      database-name: ${MONGODB_DATABASE}
      database-password: ${MONGODB_PASSWORD}
      database-user: ${MONGODB_USER}
  - apiVersion: v1
    kind: Service
    metadata:
      annotations:
        template.openshift.io/expose-uri: mongodb://{.spec.clusterIP}:{.spec.ports[?(.name=="mongo")].port}
      name: ${DATABASE_SERVICE_NAME}
      namespace: ${NAMESPACE3}
    spec:
      ports:
      - name: mongo
        nodePort: 0
        port: 27017
        protocol: TCP
        targetPort: 27017
      selector:
        name: ${DATABASE_SERVICE_NAME}
      sessionAffinity: None
      type: ClusterIP
    status:
      loadBalancer: {}
  - apiVersion: v1
    kind: DeploymentConfig
    metadata:
      annotations:
        template.alpha.openshift.io/wait-for-ready: "true"
      name: ${DATABASE_SERVICE_NAME}
      namespace: ${NAMESPACE2}
    spec:
      replicas: 1
      selector:
        name: ${DATABASE_SERVICE_NAME}
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            name: ${DATABASE_SERVICE_NAME}
        spec:
          containers:
          - capabilities: {}
            env:
            - name: MONGODB_USER
              valueFrom:
                secretKeyRef:
                  key: database-user
                  name: ${DATABASE_SERVICE_NAME}
            - name: MONGODB_PASSWORD
              valueFrom:
                secretKeyRef:
                  key: database-password
                  name: ${DATABASE_SERVICE_NAME}
            - name: MONGODB_ADMIN_PASSWORD
              valueFrom:
                secretKeyRef:
                  key: database-admin-password
                  name: ${DATABASE_SERVICE_NAME}
            - name: MONGODB_DATABASE
              valueFrom:
                secretKeyRef:
                  key: database-name
                  name: ${DATABASE_SERVICE_NAME}
            image: ' '
            imagePullPolicy: IfNotPresent
            livenessProbe:
              initialDelaySeconds: 30
              tcpSocket:
                port: 27017
              timeoutSeconds: 1
            name: mongodb
            ports:
            - containerPort: 27017
              protocol: TCP
            readinessProbe:
              exec:
                command:
                - /bin/sh
                - -i
                - -c
                - mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD
                  --eval="quit()"
              initialDelaySeconds: 3
              timeoutSeconds: 1
            resources:
              limits:
                memory: ${MEMORY_LIMIT}
            securityContext:
              capabilities: {}
              privileged: false
            terminationMessagePath: /dev/termination-log
            volumeMounts:
            - mountPath: /var/lib/mongodb/data
              name: ${DATABASE_SERVICE_NAME}-data
          dnsPolicy: ClusterFirst
          restartPolicy: Always
          volumes:
          - emptyDir:
              medium: ""
            name: ${DATABASE_SERVICE_NAME}-data
      triggers:
      - imageChangeParams:
          automatic: true
          containerNames:
          - mongodb
          from:
            kind: ImageStreamTag
            name: mongodb:${MONGODB_VERSION}
            namespace: ${NAMESPACE}
          lastTriggeredImage: ""
        type: ImageChange
      - type: ConfigChange
    status: {}
  parameters:
  - description: Maximum amount of memory the container can use.
    displayName: Memory Limit
    name: MEMORY_LIMIT
    required: true
    value: 512Mi
  - description: The OpenShift Namespace where the ImageStream resides.
    displayName: Namespace
    name: NAMESPACE
    value: openshift
  - description: The OpenShift Namespace where the ImageStream resides.
    displayName: Namespace2
    name: NAMESPACE2
    value: ggm-namespace
  - description: The OpenShift Namespace where the ImageStream resides.
    displayName: Namespace3
    name: NAMESPACE3
    value: myproject
  - description: The name of the OpenShift Service exposed for the database.
    displayName: Database Service Name
    name: DATABASE_SERVICE_NAME
    required: true
    value: mongodb
  - description: Username for MongoDB user that will be used for accessing the database.
    displayName: MongoDB Connection Username
    from: user[A-Z0-9]{3}
    generate: expression
    name: MONGODB_USER
    required: true
  - description: Password for the MongoDB connection user.
    displayName: MongoDB Connection Password
    from: '[a-zA-Z0-9]{16}'
    generate: expression
    name: MONGODB_PASSWORD
    required: true
  - description: Name of the MongoDB database accessed.
    displayName: MongoDB Database Name
    name: MONGODB_DATABASE
    required: true
    value: sampledb
  - description: Password for the database admin user.
    displayName: MongoDB Admin Password
    from: '[a-zA-Z0-9]{16}'
    generate: expression
    name: MONGODB_ADMIN_PASSWORD
    required: true
  - description: Version of MongoDB image to be used (2.4, 2.6, 3.2 or latest).
    displayName: Version of MongoDB Image
    name: MONGODB_VERSION
    required: true
    value: "3.2"
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""`)

func testExtendedTestdataMultiNamespaceTemplateYamlBytes() ([]byte, error) {
	return _testExtendedTestdataMultiNamespaceTemplateYaml, nil
}

func testExtendedTestdataMultiNamespaceTemplateYaml() (*asset, error) {
	bytes, err := testExtendedTestdataMultiNamespaceTemplateYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/multi-namespace-template.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataOpenshiftSecretToJenkinsCredentialYaml = []byte(`apiVersion: v1
data:
  password: c2VjcmV0Y3JlZHN5bmMK
  username: c2VjcmV0Y3JlZHN5bmMK
kind: Secret
metadata:
  labels:
    credential.sync.jenkins.openshift.io: "true"
  name: secret-to-credential
type: Opaque
`)

func testExtendedTestdataOpenshiftSecretToJenkinsCredentialYamlBytes() ([]byte, error) {
	return _testExtendedTestdataOpenshiftSecretToJenkinsCredentialYaml, nil
}

func testExtendedTestdataOpenshiftSecretToJenkinsCredentialYaml() (*asset, error) {
	bytes, err := testExtendedTestdataOpenshiftSecretToJenkinsCredentialYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/openshift-secret-to-jenkins-credential.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataReencryptServingCertYaml = []byte(`apiVersion: v1
kind: List
items:
- apiVersion: v1
  kind: Pod
  metadata:
    name: serving-cert
    labels:
      app: serving-cert
  spec:
    containers:
    - image: nginx:1.15.3
      name: serve
      command:
        - /usr/sbin/nginx
      args:
        - -c
        - /etc/nginx/nginx.conf
      ports:
      - containerPort: 8443
        protocol: TCP
      volumeMounts:
      - name: cert
        mountPath: /etc/serving-cert
      - name: conf
        mountPath: /etc/nginx
      - name: tmp
        mountPath: /var/cache/nginx
      - name: tmp
        mountPath: /var/run
    volumes:
    - name: conf
      configMap:
        name: serving-cert
    - name: cert
      secret:
        secretName: serving-cert
    - name: tmp
      emptyDir: {}
    - name: tmp2
      emptyDir: {}
- apiVersion: v1
  kind: ConfigMap
  metadata:
    name: serving-cert
  data:
    nginx.conf: |
      daemon off;
      events { }
      http {
        server {
            listen 8443;
            ssl    on;
            ssl_certificate     /etc/serving-cert/tls.crt;
            ssl_certificate_key    /etc/serving-cert/tls.key;
            server_name  "*.svc";
            location / {
                root   /usr/share/nginx/html;
                index  index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   /usr/share/nginx/html;
            }
        }
      }
- apiVersion: v1
  kind: Service
  metadata:
    name: serving-cert
    annotations:
      service.alpha.openshift.io/serving-cert-secret-name: serving-cert
  spec:
    selector:
      app: serving-cert
    ports:
      - port: 443
        name: https
        targetPort: 8443
        protocol: TCP
- apiVersion: v1
  kind: Route
  metadata:
    name: serving-cert
  spec:
    tls:
      termination: Reencrypt
      # no destination CA certificate needed
    to:
      kind: Service
      name: serving-cert
`)

func testExtendedTestdataReencryptServingCertYamlBytes() ([]byte, error) {
	return _testExtendedTestdataReencryptServingCertYaml, nil
}

func testExtendedTestdataReencryptServingCertYaml() (*asset, error) {
	bytes, err := testExtendedTestdataReencryptServingCertYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/reencrypt-serving-cert.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataReleasesPayload1EtcdOperatorImageReferences = []byte(`kind: ImageStream
apiVersion: image.openshift.io/v1
spec:
  tags:
  - name: etcd-operator
    from:
      name: quay.io/coreos/etcd-operator
      kind: DockerImage
`)

func testExtendedTestdataReleasesPayload1EtcdOperatorImageReferencesBytes() ([]byte, error) {
	return _testExtendedTestdataReleasesPayload1EtcdOperatorImageReferences, nil
}

func testExtendedTestdataReleasesPayload1EtcdOperatorImageReferences() (*asset, error) {
	bytes, err := testExtendedTestdataReleasesPayload1EtcdOperatorImageReferencesBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/releases/payload-1/etcd-operator/image-references", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataReleasesPayload1EtcdOperatorManifestYaml = []byte(`kind: List
apiVersion: v1
items:
- kind: ServiceAccount
  apiVersion: v1
  metadata:
    name: etcd-operator
- kind: Deployment
  apiVersion: apps/v1
  metadata:
    name: etcd-operator
  spec:
    template:
      spec:
        containers:
        - name: main
          image: quay.io/coreos/etcd-operator@sha256:12341234`)

func testExtendedTestdataReleasesPayload1EtcdOperatorManifestYamlBytes() ([]byte, error) {
	return _testExtendedTestdataReleasesPayload1EtcdOperatorManifestYaml, nil
}

func testExtendedTestdataReleasesPayload1EtcdOperatorManifestYaml() (*asset, error) {
	bytes, err := testExtendedTestdataReleasesPayload1EtcdOperatorManifestYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/releases/payload-1/etcd-operator/manifest.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataReleasesPayload1ImageRegistry10_imageRegistry_crdYaml = []byte(`kind: CustomResourceDefinition
apiVersion: apiextensions/v1
metadata:
  name: registry`)

func testExtendedTestdataReleasesPayload1ImageRegistry10_imageRegistry_crdYamlBytes() ([]byte, error) {
	return _testExtendedTestdataReleasesPayload1ImageRegistry10_imageRegistry_crdYaml, nil
}

func testExtendedTestdataReleasesPayload1ImageRegistry10_imageRegistry_crdYaml() (*asset, error) {
	bytes, err := testExtendedTestdataReleasesPayload1ImageRegistry10_imageRegistry_crdYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/releases/payload-1/image-registry/10_image-registry_crd.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataReleasesPayload1ImageRegistryImageReferences = []byte(`kind: ImageStream
apiVersion: image.openshift.io/v1
spec:
  tags:
  - name: image-registry
    from:
      name: openshift/origin-image-registry
      kind: DockerImage
`)

func testExtendedTestdataReleasesPayload1ImageRegistryImageReferencesBytes() ([]byte, error) {
	return _testExtendedTestdataReleasesPayload1ImageRegistryImageReferences, nil
}

func testExtendedTestdataReleasesPayload1ImageRegistryImageReferences() (*asset, error) {
	bytes, err := testExtendedTestdataReleasesPayload1ImageRegistryImageReferencesBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/releases/payload-1/image-registry/image-references", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataReleasesPayload1ImageRegistryManifestYaml = []byte(`kind: List
apiVersion: v1
items:
- kind: ServiceAccount
  apiVersion: v1
  metadata:
    name: image-registry
- kind: Deployment
  apiVersion: apps/v1
  metadata:
    name: image-registry
  spec:
    template:
      spec:
        containers:
        - name: main
          image: openshift/origin-image-registry:latest`)

func testExtendedTestdataReleasesPayload1ImageRegistryManifestYamlBytes() ([]byte, error) {
	return _testExtendedTestdataReleasesPayload1ImageRegistryManifestYaml, nil
}

func testExtendedTestdataReleasesPayload1ImageRegistryManifestYaml() (*asset, error) {
	bytes, err := testExtendedTestdataReleasesPayload1ImageRegistryManifestYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/releases/payload-1/image-registry/manifest.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRolesEmptyRoleYaml = []byte(`apiVersion: v1
kind: Role
metadata:
  name: empty-role
`)

func testExtendedTestdataRolesEmptyRoleYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRolesEmptyRoleYaml, nil
}

func testExtendedTestdataRolesEmptyRoleYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRolesEmptyRoleYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/roles/empty-role.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRolesPolicyClusterrolesYaml = []byte(`apiVersion: v1
items:
- apiVersion: v1
  kind: ClusterRole
  metadata:
    creationTimestamp: null
    name: basic-user2
  rules:
  - apiGroups: null
    attributeRestrictions: null
    resourceNames:
    - "~"
    resources:
    - users
    verbs:
    - get
  - apiGroups: null
    attributeRestrictions: null
    resources:
    - projectrequests
    verbs:
    - list
  - apiGroups: null
    attributeRestrictions: null
    resources:
    - clusterroles
    verbs:
    - get
    - list
  - apiGroups: null
    attributeRestrictions: null
    resources:
    - projects
    verbs:
    - list
  - apiGroups:
    - authorization.k8s.io
    attributeRestrictions: null
    resources:
    - selfsubjectaccessreviews
    verbs:
    - create
- apiVersion: v1
  groupNames:
  - system:authenticated
  kind: ClusterRoleBinding
  metadata:
    creationTimestamp: null
    name: basic-users2
  roleRef:
    name: basic-user2
  subjects:
  - kind: SystemGroup
    name: system:authenticated
  userNames: null
kind: List
metadata: {}
`)

func testExtendedTestdataRolesPolicyClusterrolesYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRolesPolicyClusterrolesYaml, nil
}

func testExtendedTestdataRolesPolicyClusterrolesYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRolesPolicyClusterrolesYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/roles/policy-clusterroles.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRolesPolicyRolesYaml = []byte(`kind: Template
apiVersion: v1
metadata:
  name: "policy-roles-template"
labels:
  createdBy: "policy-roles-template"
parameters:
  - description: "The namespace to create roles in."
    name: NAMESPACE
    required: true
objects:
  - apiVersion: v1
    kind: Role
    metadata:
      creationTimestamp: null
      name: basic-user
    rules:
    - apiGroups: null
      attributeRestrictions: null
      resourceNames:
      - "~"
      resources:
      - users
      verbs:
      - get
    - apiGroups: null
      attributeRestrictions: null
      resources:
      - projectrequests
      verbs:
      - list
    - apiGroups: null
      attributeRestrictions: null
      resources:
      - clusterroles
      verbs:
      - get
      - list
    - apiGroups: null
      attributeRestrictions: null
      resources:
      - projects
      verbs:
      - list
    - apiGroups:
      - authorization.k8s.io
      attributeRestrictions: null
      resources:
      - selfsubjectaccessreviews
      verbs:
      - create
  - apiVersion: v1
    groupNames:
    - system:authenticated
    kind: RoleBinding
    metadata:
      creationTimestamp: null
      name: basic-users
    roleRef:
      name: basic-user
      namespace: ${NAMESPACE}
    subjects:
    - kind: SystemGroup
      name: system:authenticated
    userNames: null
`)

func testExtendedTestdataRolesPolicyRolesYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRolesPolicyRolesYaml, nil
}

func testExtendedTestdataRolesPolicyRolesYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRolesPolicyRolesYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/roles/policy-roles.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRouterCommonYaml = []byte(`apiVersion: v1
kind: Template
parameters:
objects:

# ensure the router can access routes and endpoints
- apiVersion: v1
  kind: RoleBinding
  metadata:
    name: system-router
  subjects:
  - kind: ServiceAccount
    name: default
  roleRef:
    name: system:router

# two routes that differ only by their labels and names
- apiVersion: v1
  kind: Route
  metadata:
    name: route-1
    labels:
      test: router
      select: first
  spec:
    host: first.example.com
    path: /Letter
    to:
      name: endpoints
    ports:
    - targetPort: 8080
- apiVersion: v1
  kind: Route
  metadata:
    name: route-2
    labels:
      test: router
      select: second
  spec:
    host: second.example.com
    path: /Letter
    to:
      name: endpoints
    ports:
    - targetPort: http

# routes that contain overridden domains
- apiVersion: v1
  kind: Route
  metadata:
    name: route-override-domain-1
    labels:
      test: router
      select: override-domains
  spec:
    host: y.a.null.ptr
    path: /Letter
    to:
      name: endpoints
    ports:
    - targetPort: 8080
- apiVersion: v1
  kind: Route
  metadata:
    name: route-override-domain-2
    labels:
      test: router
      select: override-domains
  spec:
    host: main.void.str
    path: /Letter
    to:
      name: endpoints
    ports:
    - targetPort: 8080

# a service to be routed to
- apiVersion: v1
  kind: Service
  metadata:
    name: endpoints
    labels:
      test: router
  spec:
    selector:
      test: router
      endpoints: router
    ports:
    - port: 8080
# a pod that serves a response
- apiVersion: v1
  kind: Pod
  metadata:
    name: endpoint-1
    labels:
      test: router
      endpoints: router
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: test
      image: openshift/hello-openshift
      # image: openshift/deployment-example:v1
      ports:
      - containerPort: 8080
        name: http
      - containerPort: 100
        protocol: UDP
`)

func testExtendedTestdataRouterCommonYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRouterCommonYaml, nil
}

func testExtendedTestdataRouterCommonYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRouterCommonYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/router-common.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRouterConfigManagerYaml = []byte(`apiVersion: v1
kind: Template
parameters:
- name: IMAGE
  value: openshift/origin-haproxy-router:latest
objects:
- apiVersion: v1
  kind: Pod
  metadata:
    name: router-haproxy-cfgmgr
    labels:
      test: router-haproxy-cfgmgr
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: router
      image: ${IMAGE}
      imagePullPolicy: IfNotPresent
      env:
      - name: POD_NAMESPACE
        valueFrom:
          fieldRef:
            fieldPath: metadata.namespace
      args: ["--namespace=$(POD_NAMESPACE)", "--loglevel=4", "--haproxy-config-manager=true", "--blueprint-route-labels=select=hapcm-blueprint", "--labels=select=haproxy-cfgmgr", "--stats-password=password", "--stats-port=1936", "--stats-user=admin"]
      hostNetwork: false
      ports:
      - containerPort: 80
      - containerPort: 443
      - containerPort: 1936
        name: stats
        protocol: TCP
    serviceAccountName: default

# ensure the router can access routes and endpoints
- apiVersion: v1
  kind: RoleBinding
  metadata:
    name: system-router
  subjects:
  - kind: ServiceAccount
    name: default
  roleRef:
    name: system:router

# blueprints for edge, reencrypt and passthrough routes with annotation(s)
- apiVersion: v1
  kind: Route
  metadata:
    name: edge-blueprint
    labels:
      test: router
      select: hapcm-blueprint
    annotations:
      router.openshift.io/cookie_name: empire
  spec:
    tls:
      termination: edge
    host: edge.blueprint.hapcm.test
    to:
      name: insecure-service
      kind: Service
    ports:
    - targetPort: 8080
- apiVersion: v1
  kind: Route
  metadata:
    name: reencrypt-blueprint
    labels:
      test: router
      select: hapcm-blueprint
    annotations:
      ren: stimpy
  spec:
    tls:
      termination: reencrypt
    host: reencrypt.blueprint.hapcm.test
    to:
      name: secure-service
      kind: Service
    ports:
    - targetPort: 8443
- apiVersion: v1
  kind: Route
  metadata:
    name: passthrough-blueprint
    labels:
      test: router
      select: hapcm-blueprint
    annotations:
      test: ptcruiser
      foo: bar
  spec:
    tls:
      termination: passthrough
    host: passthrough.blueprint.hapcm.test
    to:
      name: secure-service
      kind: Service

# config map for nginx
- apiVersion: v1
  kind: ConfigMap
  metadata:
    name: serving-cert
  data:
    nginx.conf: |
      daemon off;
      events { }
      http {
        server {
            listen 8443;
            ssl    on;
            ssl_certificate     /etc/serving-cert/tls.crt;
            ssl_certificate_key    /etc/serving-cert/tls.key;
            server_name  "*.svc";
            location / {
                root   /usr/share/nginx/html;
                index  index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   /usr/share/nginx/html;
            }
        }
      }

# pods that service http[s] requests
- apiVersion: v1
  kind: Pod
  metadata:
    name: insecure-endpoint
    labels:
      test: haproxy-cfgmgr
      endpoints: insecure-endpoint
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: test
      image: openshift/hello-openshift
      ports:
      - containerPort: 8080
        name: http
      - containerPort: 100
        protocol: UDP
- apiVersion: v1
  kind: Pod
  metadata:
    name: secure-endpoint
    labels:
      app: secure-endpoint
  spec:
    containers:
    - image: nginx:1.15.3
      name: serve
      command:
        - /usr/sbin/nginx
      args:
        - -c
        - /etc/nginx/nginx.conf
      ports:
      - containerPort: 8443
        protocol: TCP
      volumeMounts:
      - name: cert
        mountPath: /etc/serving-cert
      - name: conf
        mountPath: /etc/nginx
      - name: tmp
        mountPath: /var/cache/nginx
      - name: tmp
        mountPath: /var/run
    volumes:
    - name: conf
      configMap:
        name: serving-cert
    - name: cert
      secret:
        secretName: serving-cert
    - name: tmp
      emptyDir: {}
    - name: tmp2
      emptyDir: {}

# services that can be routed to
- apiVersion: v1
  kind: Service
  metadata:
    name: insecure-service
    labels:
      test: router
  spec:
    selector:
      test: haproxy-cfgmgr
      endpoints: insecure-endpoint
    ports:
    - port: 8080
- apiVersion: v1
  kind: Service
  metadata:
    name: secure-service
    annotations:
      service.alpha.openshift.io/serving-cert-secret-name: serving-cert
  spec:
    selector:
      app: secure-endpoint
    ports:
      - port: 443
        name: https
        targetPort: 8443
        protocol: TCP


# insecure, edge secured, reencrypt and passthrough routes
- apiVersion: v1
  kind: Route
  metadata:
    name: insecure-route
    labels:
      test: haproxy-cfgmgr
      select: haproxy-cfgmgr
  spec:
    host: insecure.hapcm.test
    to:
      name: insecure-service
      kind: Service
    ports:
    - targetPort: 8080
- apiVersion: v1
  kind: Route
  metadata:
    name: edge-allow-http-route
    labels:
      test: haproxy-cfgmgr
      select: haproxy-cfgmgr
  spec:
    tls:
      termination: edge
      insecureEdgeTerminationPolicy: Allow
    host: edge.allow.hapcm.test
    to:
      name: insecure-service
      kind: Service
    ports:
    - targetPort: 8080
- apiVersion: v1
  kind: Route
  metadata:
    name: reencrypt-route
    labels:
      test: haproxy-cfgmgr
      select: haproxy-cfgmgr
  spec:
    tls:
      termination: reencrypt
    host: reencrypt.hapcm.test
    to:
      name: secure-service
      kind: Service
    ports:
    - targetPort: 8443
- apiVersion: v1
  kind: Route
  metadata:
    name: passthrough-route
    labels:
      test: haproxy-cfgmgr
      select: haproxy-cfgmgr
  spec:
    tls:
      termination: passthrough
    host: passthrough.hapcm.test
    to:
      name: secure-service
      kind: Service
`)

func testExtendedTestdataRouterConfigManagerYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRouterConfigManagerYaml, nil
}

func testExtendedTestdataRouterConfigManagerYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRouterConfigManagerYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/router-config-manager.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRouterHttpEchoServerYaml = []byte(`apiVersion: v1
kind: List
metadata: {}
items:
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    name: router-http-echo
  spec:
    replicas: 1
    selector:
      app: router-http-echo
      deploymentconfig: router-http-echo
    strategy:
      type: Rolling
    template:
      metadata:
        labels:
          app: router-http-echo
          deploymentconfig: router-http-echo
      spec:
        containers:
        - image: openshift/origin-node
          name: router-http-echo
          command:
            - /usr/bin/socat
            - TCP4-LISTEN:8676,reuseaddr,fork
            - EXEC:'/bin/bash -c \"printf \\\"HTTP/1.0 200 OK\r\n\r\n\\\"; sed -e \\\"/^\r/q\\\"\"'
          ports:
          - containerPort: 8676
            protocol: TCP
        dnsPolicy: ClusterFirst
        restartPolicy: Always
        securityContext: {}
- apiVersion: v1
  kind: Service
  metadata:
    name: router-http-echo
    labels:
      app: router-http-echo
  spec:
    selector:
      app: router-http-echo
    ports:
      - port: 8676
        name: router-http-echo
        protocol: TCP
- apiVersion: v1
  kind: Route
  metadata:
    name: router-http-echo
  spec:
    host: router-headers.example.com
    to:
      kind: Service
      name: router-http-echo
`)

func testExtendedTestdataRouterHttpEchoServerYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRouterHttpEchoServerYaml, nil
}

func testExtendedTestdataRouterHttpEchoServerYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRouterHttpEchoServerYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/router-http-echo-server.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRouterMetricsYaml = []byte(`apiVersion: v1
kind: List
items:
# a route that has multiple weighted services that it points to
- apiVersion: v1
  kind: Route
  metadata:
    name: weightedroute
    labels:
      test: router
      select: weighted
  spec:
    host: weighted.metrics.example.com
    to:
      name: weightedendpoints1
      kind: Service
      weight: 50
    alternateBackends:
    - name: weightedendpoints2
      kind: Service
      weight: 50
    ports:
    - targetPort: 8080

# a route that has multiple services but all weights are zero
- apiVersion: v1
  kind: Route
  metadata:
    name: zeroweightroute
    labels:
      test: router
      select: weighted
  spec:
    host: zeroweight.metrics.example.com
    to:
      name: weightedendpoints1
      kind: Service
      weight: 0
    alternateBackends:
    - name: weightedendpoints2
      kind: Service
      weight: 0
    ports:
    - targetPort: 8080

# two services that can be routed to
- apiVersion: v1
  kind: Service
  metadata:
    name: weightedendpoints1
    labels:
      test: router
  spec:
    selector:
      test: weightedrouter1
      endpoints: weightedrouter1
    ports:
    - port: 8080
- apiVersion: v1
  kind: Service
  metadata:
    name: weightedendpoints2
    labels:
      test: router
  spec:
    selector:
      test: weightedrouter2
      endpoints: weightedrouter2
    ports:
    - port: 8080
# two pods that serves a response
- apiVersion: v1
  kind: Pod
  metadata:
    name: endpoint-1
    labels:
      test: weightedrouter1
      endpoints: weightedrouter1
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: test
      image: openshift/hello-openshift
      ports:
      - containerPort: 8080
        name: http
      - containerPort: 100
        protocol: UDP
- apiVersion: v1
  kind: Pod
  metadata:
    name: endpoint-2
    labels:
      test: weightedrouter2
      endpoints: weightedrouter2
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: test
      image: openshift/hello-openshift
      ports:
      - containerPort: 8080
        name: http
      - containerPort: 100
        protocol: UDP
`)

func testExtendedTestdataRouterMetricsYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRouterMetricsYaml, nil
}

func testExtendedTestdataRouterMetricsYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRouterMetricsYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/router-metrics.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRouterOverrideDomainsYaml = []byte(`apiVersion: v1
kind: Template
parameters:
- name: IMAGE
  value: openshift/origin-haproxy-router:latest
- name: SCOPE
  value: '["--name=test-scoped", "--namespace=$(POD_NAMESPACE)", "--loglevel=4", "--labels=select=first"]'
objects:

# a router that overrides domains
- apiVersion: v1
  kind: Pod
  metadata:
    name: router-override-domains
    labels:
      test: router-override-domains
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: router
      image: ${IMAGE}
      imagePullPolicy: IfNotPresent
      env:
      - name: POD_NAMESPACE
        valueFrom:
          fieldRef:
            fieldPath: metadata.namespace
      args: ["--name=test-override-domains", "--namespace=$(POD_NAMESPACE)", "--loglevel=4", "--override-domains=null.ptr,void.str", "--hostname-template=${name}-${namespace}.apps.veto.test"]
      hostNetwork: false
      ports:
      - containerPort: 80
      - containerPort: 443
      - containerPort: 1936
        name: stats
        protocol: TCP
      readinessProbe:
        initialDelaySeconds: 10
        httpGet:
          path: /healthz/ready
          port: 1936
    serviceAccountName: default
`)

func testExtendedTestdataRouterOverrideDomainsYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRouterOverrideDomainsYaml, nil
}

func testExtendedTestdataRouterOverrideDomainsYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRouterOverrideDomainsYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/router-override-domains.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRouterOverrideYaml = []byte(`apiVersion: v1
kind: Template
parameters:
- name: IMAGE
  value: openshift/origin-haproxy-router:latest
- name: SCOPE
  value: '["--name=test-scoped", "--namespace=$(POD_NAMESPACE)", "--loglevel=4", "--labels=select=first"]'
objects:

# a router that overrides host
- apiVersion: v1
  kind: Pod
  metadata:
    name: router-override
    labels:
      test: router-override
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: router
      image: ${IMAGE}
      imagePullPolicy: IfNotPresent
      env:
      - name: POD_NAMESPACE
        valueFrom:
          fieldRef:
            fieldPath: metadata.namespace
      args: ["--name=test-override", "--namespace=$(POD_NAMESPACE)", "--loglevel=4", "--override-hostname", "--hostname-template=${name}-${namespace}.myapps.mycompany.com"]
      hostNetwork: false
      ports:
      - containerPort: 80
      - containerPort: 443
      - containerPort: 1936
        name: stats
        protocol: TCP
      readinessProbe:
        initialDelaySeconds: 10
        httpGet:
          path: /healthz/ready
          port: 1936
    serviceAccountName: default
`)

func testExtendedTestdataRouterOverrideYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRouterOverrideYaml, nil
}

func testExtendedTestdataRouterOverrideYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRouterOverrideYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/router-override.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRouterScopedYaml = []byte(`apiVersion: v1
kind: Template
parameters:
- name: IMAGE
  value: openshift/origin-haproxy-router:latest
- name: SCOPE
  value: '["--name=test-scoped", "--namespace=$(POD_NAMESPACE)", "--loglevel=4", "--labels=select=first"]'
objects:
# a scoped router
- apiVersion: v1
  kind: Pod
  metadata:
    name: router-scoped
    labels:
      test: router-scoped
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: router
      image: ${IMAGE}
      imagePullPolicy: IfNotPresent
      env:
      - name: POD_NAMESPACE
        valueFrom:
          fieldRef:
            fieldPath: metadata.namespace
      args: "${{SCOPE}}"
      hostNetwork: false
      ports:
      - containerPort: 80
      - containerPort: 443
      - containerPort: 1936
        name: stats
        protocol: TCP
      readinessProbe:
        initialDelaySeconds: 10
        httpGet:
          path: /healthz/ready
          port: 1936
    serviceAccountName: default
`)

func testExtendedTestdataRouterScopedYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRouterScopedYaml, nil
}

func testExtendedTestdataRouterScopedYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRouterScopedYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/router-scoped.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRun_policyParallelBcYaml = []byte(`---
  kind: "List"
  apiVersion: "v1"
  metadata: {}
  items: 
    - 
      kind: "ImageStream"
      apiVersion: "v1"
      metadata: 
        name: "origin-ruby-sample"
        creationTimestamp: null
      spec: {}
      status: 
        dockerImageRepository: ""
    - 
      kind: "BuildConfig"
      apiVersion: "v1"
      metadata: 
        name: "sample-parallel-build"
      spec: 
        runPolicy: "Parallel"
        triggers: 
          - 
            type: "imageChange"
            imageChange: {}
        source: 
          type: "Git"
          git: 
            uri: "git://github.com/openshift/ruby-hello-world.git"
        strategy: 
          type: "Source"
          sourceStrategy: 
            from: 
              kind: "DockerImage"
              name: "centos/ruby-25-centos7"
        resources: {}
      status: 
        lastVersion: 0

`)

func testExtendedTestdataRun_policyParallelBcYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRun_policyParallelBcYaml, nil
}

func testExtendedTestdataRun_policyParallelBcYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRun_policyParallelBcYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/run_policy/parallel-bc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRun_policySerialBcYaml = []byte(`---
  kind: "List"
  apiVersion: "v1"
  metadata: {}
  items: 
    - 
      kind: "BuildConfig"
      apiVersion: "v1"
      metadata: 
        name: "sample-serial-build"
      spec: 
        runPolicy: "Serial"
        triggers: 
          - 
            type: "imageChange"
            imageChange: {}
        source: 
          type: "Git"
          git: 
            uri: "git://github.com/openshift/ruby-hello-world.git"
        strategy: 
          type: "Source"
          sourceStrategy: 
            from: 
              kind: "DockerImage"
              name: "centos/ruby-25-centos7"
    - 
      kind: "BuildConfig"
      apiVersion: "v1"
      metadata: 
        name: "sample-serial-build-fail"
      spec: 
        runPolicy: "Serial"
        triggers: 
          - 
            type: "imageChange"
            imageChange: {}
        source: 
          type: "Git"
          git: 
            uri: "git://github.com/openshift/invalidrepo.git"
        strategy: 
          type: "Source"
          sourceStrategy: 
            from: 
              kind: "DockerImage"
              name: "centos/ruby-25-centos7"
`)

func testExtendedTestdataRun_policySerialBcYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRun_policySerialBcYaml, nil
}

func testExtendedTestdataRun_policySerialBcYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRun_policySerialBcYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/run_policy/serial-bc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataRun_policySerialLatestOnlyBcYaml = []byte(`---
  kind: "List"
  apiVersion: "v1"
  metadata: {}
  items: 
    - 
      kind: "BuildConfig"
      apiVersion: "v1"
      metadata: 
        name: "sample-serial-latest-only-build"
      spec: 
        runPolicy: "SerialLatestOnly"
        triggers: 
          - 
            type: "imageChange"
            imageChange: {}
        source: 
          type: "Git"
          git: 
            uri: "git://github.com/openshift/ruby-hello-world.git"
        strategy: 
          type: "Source"
          sourceStrategy: 
            from: 
              kind: "DockerImage"
              name: "centos/ruby-25-centos7"
        resources: {}
      status: 
        lastVersion: 0

`)

func testExtendedTestdataRun_policySerialLatestOnlyBcYamlBytes() ([]byte, error) {
	return _testExtendedTestdataRun_policySerialLatestOnlyBcYaml, nil
}

func testExtendedTestdataRun_policySerialLatestOnlyBcYaml() (*asset, error) {
	bytes, err := testExtendedTestdataRun_policySerialLatestOnlyBcYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/run_policy/serial-latest-only-bc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataS2iDropcapsRootAccessBuildYaml = []byte(`apiVersion: v1
items:
- apiVersion: v1
  kind: BuildConfig
  metadata:
    labels:
      build: root-access-build
    name: root-access-build
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: root-access-build:latest
    postCommit: {}
    resources: {}
    source:
      git:
        uri: https://github.com/openshift/ruby-hello-world.git
      secrets: []
      type: Git
    strategy:
      sourceStrategy:
        from:
          kind: ImageStreamTag
          name: rootable-ruby:latest
      type: Source
    triggers: []
- apiVersion: v1
  kind: ImageStream
  metadata:
    labels:
      build: root-access-build
    name: root-access-build
  spec: {}
kind: List
metadata: {}
`)

func testExtendedTestdataS2iDropcapsRootAccessBuildYamlBytes() ([]byte, error) {
	return _testExtendedTestdataS2iDropcapsRootAccessBuildYaml, nil
}

func testExtendedTestdataS2iDropcapsRootAccessBuildYaml() (*asset, error) {
	bytes, err := testExtendedTestdataS2iDropcapsRootAccessBuildYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/s2i-dropcaps/root-access-build.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataS2iDropcapsRootableRubyDockerfile = []byte(`FROM centos/ruby-25-centos7:latest
USER root
RUN yum -y install expect
RUN echo "root:redhat" | chpasswd
USER 1001
COPY ./adduser /usr/libexec/s2i/
COPY ./assemble /usr/libexec/s2i/
`)

func testExtendedTestdataS2iDropcapsRootableRubyDockerfileBytes() ([]byte, error) {
	return _testExtendedTestdataS2iDropcapsRootableRubyDockerfile, nil
}

func testExtendedTestdataS2iDropcapsRootableRubyDockerfile() (*asset, error) {
	bytes, err := testExtendedTestdataS2iDropcapsRootableRubyDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/s2i-dropcaps/rootable-ruby/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataS2iDropcapsRootableRubyAdduser = []byte(`#!/usr/bin/expect

spawn su
expect "Password:" {
    send "redhat\r"
}

expect "#" {
    send "adduser mytestuser\r"
}

expect "#" {
    send "exit\r"
}

expect "$" {}
`)

func testExtendedTestdataS2iDropcapsRootableRubyAdduserBytes() ([]byte, error) {
	return _testExtendedTestdataS2iDropcapsRootableRubyAdduser, nil
}

func testExtendedTestdataS2iDropcapsRootableRubyAdduser() (*asset, error) {
	bytes, err := testExtendedTestdataS2iDropcapsRootableRubyAdduserBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/s2i-dropcaps/rootable-ruby/adduser", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataS2iDropcapsRootableRubyAssemble = []byte(`#!/bin/bash
set -e
/usr/libexec/s2i/adduser
cat /etc/passwd
grep "mytestuser" /etc/passwd
`)

func testExtendedTestdataS2iDropcapsRootableRubyAssembleBytes() ([]byte, error) {
	return _testExtendedTestdataS2iDropcapsRootableRubyAssemble, nil
}

func testExtendedTestdataS2iDropcapsRootableRubyAssemble() (*asset, error) {
	bytes, err := testExtendedTestdataS2iDropcapsRootableRubyAssembleBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/s2i-dropcaps/rootable-ruby/assemble", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataSampleImageStreamJson = []byte(`{
  "kind": "ImageStream",
  "apiVersion": "v1",
  "metadata": {
    "name": "samplerepository",
    "creationTimestamp": null
  },
  "spec": {},
  "status": {
    "dockerImageRepository": ""
  }
}`)

func testExtendedTestdataSampleImageStreamJsonBytes() ([]byte, error) {
	return _testExtendedTestdataSampleImageStreamJson, nil
}

func testExtendedTestdataSampleImageStreamJson() (*asset, error) {
	bytes, err := testExtendedTestdataSampleImageStreamJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/sample-image-stream.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataSamplepipelineWithenvsYaml = []byte(`apiVersion: v1
kind: Template
labels:
  template: application-template-sample-pipeline
metadata:
  annotations:
    iconClass: icon-jenkins
    tags: instant-app,jenkins
  name: jenkins-pipeline-example
parameters:
objects:
- apiVersion: v1
  kind: BuildConfig
  metadata:
    labels:
      name: sample-pipeline-withenvs
    name: sample-pipeline-withenvs
  spec:
    strategy:
      jenkinsPipelineStrategy:
        env:
          - name: FOO1
            value: BAR1
        jenkinsfile: |-
          node() {
            echo "FOO1 is ${env.FOO1}"
            echo "FOO2 is ${env.FOO2}"
          }
      type: JenkinsPipeline
`)

func testExtendedTestdataSamplepipelineWithenvsYamlBytes() ([]byte, error) {
	return _testExtendedTestdataSamplepipelineWithenvsYaml, nil
}

func testExtendedTestdataSamplepipelineWithenvsYaml() (*asset, error) {
	bytes, err := testExtendedTestdataSamplepipelineWithenvsYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/samplepipeline-withenvs.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataServiceServingCertNginxServingCertConf = []byte(`server {
    listen   443;

    ssl    on;
    ssl_certificate     /etc/serving-cert/tls.crt;
    ssl_certificate_key    /etc/serving-cert/tls.key;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}
`)

func testExtendedTestdataServiceServingCertNginxServingCertConfBytes() ([]byte, error) {
	return _testExtendedTestdataServiceServingCertNginxServingCertConf, nil
}

func testExtendedTestdataServiceServingCertNginxServingCertConf() (*asset, error) {
	bytes, err := testExtendedTestdataServiceServingCertNginxServingCertConfBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/service-serving-cert/nginx-serving-cert.conf", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataSignerBuildconfigYaml = []byte(`kind: List
apiVersion: v1
items:

- kind: ImageStream
  apiVersion: v1
  metadata:
    name: signer

- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: signer
  spec:
    triggers:
      - type: ConfigChange
    source:
      dockerfile: |
        FROM openshift/origin-control-plane:latest
        RUN yum-config-manager --disable origin-local-release ||:
        RUN yum install -y skopeo && \
            yum clean all && mkdir -p gnupg && chmod -R 0777 /var/lib/origin
        RUN echo $'%echo Generating openpgp key ...\n\
            Key-Type: DSA \n\
            Key-Length: 1024 \n\
            Subkey-Type: ELG-E \n\
            Subkey-Length: 1024 \n\
            Name-Real: Joe Tester \n\
            Name-Comment: with stupid passphrase \n\
            Name-Email: joe@foo.bar \n\
            Expire-Date: 0 \n\
            Creation-Date: 2017-01-01 \n\
            %commit \n\
            %echo done \n' >> dummy_key.conf
    strategy:
      type: Docker
      dockerStrategy:
        from:
          kind: DockerImage
          name: openshift/origin-control-plane:latest
    output:
      to:
        kind: ImageStreamTag
        name: signer:latest
`)

func testExtendedTestdataSignerBuildconfigYamlBytes() ([]byte, error) {
	return _testExtendedTestdataSignerBuildconfigYaml, nil
}

func testExtendedTestdataSignerBuildconfigYaml() (*asset, error) {
	bytes, err := testExtendedTestdataSignerBuildconfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/signer-buildconfig.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataTemplatesTemplateinstance_badobjectYaml = []byte(`kind: List
apiVersion: v1
items:
- kind: TemplateInstance
  apiVersion: template.openshift.io/v1
  metadata:
    name: invalidtemplateinstance
  spec:
    template:
      kind: Template
      apiVersion: v1
      metadata:
        name: template
      objects:
      - kind: Deployment
        apiVersion: apps/v1
        metadata:
          name: "invalidname!@#$%^&*"
        spec:
          replicas: 0
          selector:
            matchLabels:
              key: value
          template:
            metadata:
              labels:
                key: value
            spec:
              containers:
              - name: hello-openshift
                image: openshift/hello-openshift
`)

func testExtendedTestdataTemplatesTemplateinstance_badobjectYamlBytes() ([]byte, error) {
	return _testExtendedTestdataTemplatesTemplateinstance_badobjectYaml, nil
}

func testExtendedTestdataTemplatesTemplateinstance_badobjectYaml() (*asset, error) {
	bytes, err := testExtendedTestdataTemplatesTemplateinstance_badobjectYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/templates/templateinstance_badobject.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataTemplatesTemplateinstance_objectkindsYaml = []byte(`kind: List
apiVersion: v1
items:
- kind: Secret
  apiVersion: v1
  metadata:
    name: configsecret
  stringData:
    NAME: template
- kind: TemplateInstance
  apiVersion: template.openshift.io/v1
  metadata:
    name: templateinstance
  spec:
    template:
      kind: Template
      apiVersion: v1
      metadata:
        name: template
      objects:
      - kind: Secret
        apiVersion: v1
        metadata:
          name: secret
          labels:
            foo: bar
      - kind: Deployment
        apiVersion: apps/v1
        metadata:
          name: deployment
        spec:
          replicas: 0
          selector:
            matchLabels:
              key: value
          template:
            metadata:
              labels:
                key: value
            spec:
              containers:
              - name: hello-openshift
                image: openshift/hello-openshift
      - kind: Route
        apiVersion: v1
        metadata:
          name: route
        spec:
          to:
            name: foo
      - kind: Route
        apiVersion: route.openshift.io/v1
        metadata:
          name: newroute
        spec:
          to:
            name: foo
      parameters:
        - name: NAME
          value: ${NAME}
    secret:
      name: configsecret
`)

func testExtendedTestdataTemplatesTemplateinstance_objectkindsYamlBytes() ([]byte, error) {
	return _testExtendedTestdataTemplatesTemplateinstance_objectkindsYaml, nil
}

func testExtendedTestdataTemplatesTemplateinstance_objectkindsYaml() (*asset, error) {
	bytes, err := testExtendedTestdataTemplatesTemplateinstance_objectkindsYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/templates/templateinstance_objectkinds.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataTemplatesTemplateinstance_readinessYaml = []byte(`kind: Template
apiVersion: v1
metadata:
  name: simple-example
  annotations:
objects:
- kind: Service
  apiVersion: v1
  metadata:
    name: "${NAME}"
    annotations:
      description: Exposes and load balances the application pods
  spec:
    ports:
    - name: web
      port: 8080
      targetPort: 8080
    selector:
      name: "${NAME}"
- kind: Route
  apiVersion: v1
  metadata:
    name: "${NAME}"
  spec:
    host: "${APPLICATION_DOMAIN}"
    to:
      kind: Service
      name: "${NAME}"
- kind: ImageStream
  apiVersion: v1
  metadata:
    name: "${NAME}"
    annotations:
      description: Keeps track of changes in the application image
- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: "${NAME}"
    annotations:
      description: Defines how to build the application
      template.alpha.openshift.io/wait-for-ready: 'true'
  spec:
    source:
      type: Git
      git:
        uri: ${SOURCE_REPOSITORY_URL}
    strategy:
      type: Source
      sourceStrategy:
        from:
          kind: DockerImage
          name: docker.io/openshift/test-build-simples2i:latest
    output:
      to:
        kind: ImageStreamTag
        name: "${NAME}:latest"
    triggers:
    - type: ConfigChange
- kind: DeploymentConfig
  apiVersion: v1
  metadata:
    name: "${NAME}"
    annotations:
      description: Defines how to deploy the application server
      template.alpha.openshift.io/wait-for-ready: 'true'
  spec:
    strategy:
      type: Rolling
    triggers:
    - type: ImageChange
      imageChangeParams:
        automatic: true
        containerNames:
        - simple-example
        from:
          kind: ImageStreamTag
          name: "${NAME}:latest"
    - type: ConfigChange
    replicas: 1
    selector:
      name: "${NAME}"
    template:
      metadata:
        name: "${NAME}"
        labels:
          name: "${NAME}"
      spec:
        containers:
        - name: simple-example
          image: " "
          ports:
          - containerPort: 8080
parameters:
- name: NAME
  displayName: Name
  description: The name assigned to all of the frontend objects defined in this template.
  required: true
  value: simple-example
- name: SOURCE_REPOSITORY_URL
  displayName: sourceurl
  required: true
  value: https://github.com/sclorg/nodejs-ex
- name: APPLICATION_DOMAIN
  displayName: Application Hostname
  description: The exposed hostname that will route to the Node.js service, if left
    blank a value will be defaulted.
  value: ''
`)

func testExtendedTestdataTemplatesTemplateinstance_readinessYamlBytes() ([]byte, error) {
	return _testExtendedTestdataTemplatesTemplateinstance_readinessYaml, nil
}

func testExtendedTestdataTemplatesTemplateinstance_readinessYaml() (*asset, error) {
	bytes, err := testExtendedTestdataTemplatesTemplateinstance_readinessYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/templates/templateinstance_readiness.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataTemplatesTemplateservicebroker_bindYaml = []byte(`apiVersion: v1
kind: Template
metadata:
  name: tsbtemplate
objects:
- apiVersion: v1
  kind: Secret
  metadata:
    name: aadda50d-d92c-402d-bd29-5ed2095aad2c
    namespace: ${NAMESPACE}

- apiVersion: template.openshift.io/v1
  kind: TemplateInstance
  metadata:
    name: aadda50d-d92c-402d-bd29-5ed2095aad2c
    namespace: ${NAMESPACE}
  spec:
    template:
      apiVersion: v1
      kind: Template
      metadata:
        uid: d261a5c9-db37-40b5-ac0f-5709e0e3aac4
      objects:
      - apiVersion: v1
        data:
          username: configmap-username
        kind: ConfigMap
        metadata:
          annotations:
            template.openshift.io/expose-configmap-username: "{.data['username']}"
          name: configmap
      - apiVersion: v1
        kind: Secret
        metadata:
          annotations:
            template.openshift.io/base64-expose-secret-password: "{.data['password']}"
            template.openshift.io/expose-secret-username: "{.data['username']}"
          name: secret
        stringData:
          password: secret-password
          username: secret-username
      - apiVersion: v1
        kind: Service
        metadata:
          annotations:
            template.openshift.io/expose-service-uri: http://{.spec.clusterIP}:{.spec.ports[?(.name=="port")].port}
          name: service
        spec:
          ports:
          - name: port
            port: 1234
      - apiVersion: v1
        kind: Route
        metadata:
          annotations:
            template.openshift.io/expose-route-uri: http://{.spec.host}{.spec.path}
          name: route
        spec:
          host: host
          path: /path
          to:
            kind: Service
            name: service

- apiVersion: template.openshift.io/v1
  kind: BrokerTemplateInstance
  metadata:
    name: aadda50d-d92c-402d-bd29-5ed2095aad2c
  spec:
    templateInstance:
      apiVersion: template.openshift.io/v1
      kind: TemplateInstance
      name: aadda50d-d92c-402d-bd29-5ed2095aad2c
      namespace: ${NAMESPACE}

    secret:
      apiVersion: v1
      kind: Secret
      name: aadda50d-d92c-402d-bd29-5ed2095aad2c
      namespace: ${NAMESPACE}

parameters:
- name: NAMESPACE
  required: true
`)

func testExtendedTestdataTemplatesTemplateservicebroker_bindYamlBytes() ([]byte, error) {
	return _testExtendedTestdataTemplatesTemplateservicebroker_bindYaml, nil
}

func testExtendedTestdataTemplatesTemplateservicebroker_bindYaml() (*asset, error) {
	bytes, err := testExtendedTestdataTemplatesTemplateservicebroker_bindYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/templates/templateservicebroker_bind.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataTestCliDebugYaml = []byte(`kind: List
apiVersion: v1
items:
- kind: ImageStream
  apiVersion: v1
  metadata:
    name: local-busybox

- kind: BuildConfig
  apiVersion: v1
  metadata:
    name: local-busybox
  spec:
    strategy:
      type: Docker
    source:
      type: Git
      dockerfile: "FROM busybox:latest\n"
    output:
      to:
        kind: ImageStreamTag
        name: local-busybox:latest
    triggers:
    - type: ConfigChange

- kind: DeploymentConfig
  apiVersion: v1
  metadata:
    name: local-busybox1
  spec:
    replicas: 0
    selector:
      deploymentconfig: local-busybox1
    template:
      metadata:
        labels:
          deploymentconfig: local-busybox1
      spec:
        containers:
        - name: local-busybox
    triggers:
    - type: ImageChange
      imageChangeParams:
        automatic: true
        containerNames:
        - local-busybox
        from:
          kind: ImageStreamTag
          name: local-busybox:latest

- kind: DeploymentConfig
  apiVersion: v1
  metadata:
    name: local-busybox2
  spec:
    replicas: 0
    selector:
      deploymentconfig: local-busybox2
    template:
      metadata:
        labels:
          deploymentconfig: local-busybox2
      spec:
        containers:
        - name: local-busybox
          command:
          - foo
          - bar
          args:
          - baz
          - qux
    triggers:
    - type: ImageChange
      imageChangeParams:
        automatic: true
        containerNames:
        - local-busybox
        from:
          kind: ImageStreamTag
          name: local-busybox:latest

- kind: DeploymentConfig
  apiVersion: v1
  metadata:
    name: busybox1
  spec:
    replicas: 0
    selector:
      deploymentconfig: busybox1
    template:
      metadata:
        labels:
          deploymentconfig: busybox1
      spec:
        containers:
        - name: busybox
          image: busybox

- kind: DeploymentConfig
  apiVersion: v1
  metadata:
    name: busybox2
  spec:
    replicas: 0
    selector:
      deploymentconfig: busybox2
    template:
      metadata:
        labels:
          deploymentconfig: busybox2
      spec:
        containers:
        - name: busybox
          image: busybox
          command:
          - foo
          - bar
          args:
          - baz
          - qux
`)

func testExtendedTestdataTestCliDebugYamlBytes() ([]byte, error) {
	return _testExtendedTestdataTestCliDebugYaml, nil
}

func testExtendedTestdataTestCliDebugYaml() (*asset, error) {
	bytes, err := testExtendedTestdataTestCliDebugYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/test-cli-debug.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataTestEnvPodJson = []byte(`{
  "kind":"Pod",
  "apiVersion":"v1",
  "metadata":{
    "name":"test-pod",
    "labels":{
      "name":"test-pod"
    }
  },
  "spec":{
    "containers":[
      {
        "name":"test",
        "image":"centos:centos7",
        "env": [
          {
            "name":"podname",
            "valueFrom": {
              "fieldRef": {
                "fieldPath":"metadata.name"
              }
            }
          },
          {
            "name":"podname_composed",
            "value":"$(podname)_composed"
          },
          {
            "name":"var1",
            "value":"value1"
          },
          {
            "name":"var2",
            "value":"$(var1)"
          },
          {
            "name":"var3",
            "value":"120"
          }
        ],
        "command": [
          "sleep",
          "$(var3)"
        ]
      }
    ],
    "restartPolicy":"Never",
    "dnsPolicy":"ClusterFirst"
  }
}
`)

func testExtendedTestdataTestEnvPodJsonBytes() ([]byte, error) {
	return _testExtendedTestdataTestEnvPodJson, nil
}

func testExtendedTestdataTestEnvPodJson() (*asset, error) {
	bytes, err := testExtendedTestdataTestEnvPodJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/test-env-pod.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataTestGitserverYaml = []byte(`apiVersion: v1
kind: Template
labels:
  template: gitserver
metadata:
  name: gitserver
objects:
# The gitserver is deployed as a singleton pod and uses a very small amount
# of resources. It can host or transiently serve Git repositories, as well
# as automatically integrate with builds in a namespace.
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    name: gitserver
    labels:
      app: gitserver
  spec:
    replicas: 1 # the gitserver is not HA and should not be scaled past 1
    selector:
      run-container: gitserver
    template:
      metadata:
        labels:
          run-container: gitserver
      spec:
        containers:
        - name: gitserver
          image: openshift/origin-gitserver
          readinessProbe:
            tcpSocket:
              port: 8080
          ports:
          - containerPort: 8080

          env:
          # Each environment variable matching GIT_INITIAL_CLONE_* will
          # be cloned when the process starts; failures will be logged.
          # <name> must be [A-Z0-9_\-\.], the cloned directory name will
          # be lowercased. If the name is invalid the pod will halt. If
          # the repository already exists on disk, it will be updated
          # from the remote.
          #
          - name: GIT_INITIAL_CLONE_1
            value: https://github.com/openshift/ruby-hello-world.git;ruby-hello-world


          # The namespace of the pod is required for implicit config
          # (passing '-' to AUTOLINK_KUBECONFIG or REQUIRE_SERVER_AUTH)
          # and can also be used to target a specific namespace.
          - name: POD_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace

          # The URL that builds must use to access the Git repositories
          # stored in this app.
          # TODO: support HTTPS
          - name: PUBLIC_URL
            value: http://gitserver.$(POD_NAMESPACE).svc.cluster.local:8080
          # The directory to store Git repositories in. If not backed
          # by a persistent volume, repositories will be lost when
          # deployments occur. Use INITIAL_GIT_CLONE and AUTOLINK_*
          # to remove the need to use a persistent volume.
          - name: GIT_HOME
            value: /var/lib/git
          # The directory to use as the default hook directory for any
          # cloned or autolinked directories.
          - name: HOOK_PATH
            value: /var/lib/git-hooks

          # Authentication and authorization

          # If 'yes', clients may push to the server with git push.
          - name: ALLOW_GIT_PUSH
            value: "yes"
          # If 'yes', clients may set hooks via the API. However, unless
          # the Git home is backed by a persistent volume, any deployment
          # will result in the hooks being lost.
          - name: ALLOW_GIT_HOOKS
            value: "yes"
          # If 'yes', clients can create new git repositories on demand
          # by pushing. If the data on disk is not backed by a persistent
          # volume, the Git repo will be deleted if the deployment is
          # updated.
          - name: ALLOW_LAZY_CREATE
            value: "yes"
          # If 'yes', clients can pull without being authenticated.
          - name: ALLOW_ANON_GIT_PULL

          # Provides the path to a kubeconfig file in the image that
          # should be used to authorize against the server. The value
          # '-' will use the pod's service account.
          # May not be used in combination with REQUIRE_GIT_AUTH
          #- name: REQUIRE_SERVER_AUTH
          #  value: "-"
          
          # The namespace to check authorization against when
          # REQUIRE_SERVICE_AUTH is used. Users must have 'get' on
          # 'pods' to pull and 'create' on 'pods' to push.
          - name: AUTH_NAMESPACE
            value: $(POD_NAMESPACE)
          # Require BASIC authentication with a username and password
          # to push or pull.
          # May not be used in combination with REQUIRE_SERVER_AUTH
          - name: REQUIRE_GIT_AUTH
            value: gituser:gituserpassword

          # Autolinking:
          #
          # The gitserver can automatically clone Git repositories
          # associated with a build config and replace the URL with
          # a link to the repo on PUBLIC_URL. The default post-receive
          # hook on the cloned repo will then trigger a build. You
          # may customize the hook with AUTOLINK_HOOK (path to hook).
          # To autolink, the account the pod runs under must have 'edit'
          # on the AUTOLINK_NAMESPACE:
          #
          #    oc policy add-role-to-user \
          #      system:serviceaccount:${namespace}:gitserver edit
          #
          # Links are checked every time the pod starts.

          # The location to read auth configuration from for autolinking.
          # If '-', use the service account token to link. The account
          # represented by this config must have the edit role on the
          # namespace.
          #- name: AUTOLINK_KUBECONFIG
          #  value: "-"

          # The namespace to autolink
          #- name: AUTOLINK_NAMESPACE
          #  value: $(POD_NAMESPACE)

          # The path to a script in the image to use as the default
          # post-receive hook - only set during link, so has no effect
          # on cloned repositories. See the "hooks" directory in the
          # image for examples.
          #- name: AUTOLINK_HOOK

          # The master service host is not signed with the service IP
          # so we override with the consistent DNS name. Required for
          # connections to the server.
          - name: KUBERNETES_SERVICE_HOST
            value: kubernetes.default

          volumeMounts:
          - mountPath: /var/lib/git/
            name: git
        volumes:
        - name: git
    triggers:
    - type: ConfigChange

# The gitserver service is required for DNS resolution
- apiVersion: v1
  kind: Service
  metadata:
    name: gitserver
    labels:
      app: gitserver
  spec:
    ports:
    - port: 8080
      targetPort: 8080
    selector:
      run-container: gitserver
- apiVersion: v1
  kind: Route
  metadata:
    name: gitserver
    labels:
      app: gitserver
  spec:
    tls:
      termination: edge
    to:
      kind: Service
      name: gitserver
`)

func testExtendedTestdataTestGitserverYamlBytes() ([]byte, error) {
	return _testExtendedTestdataTestGitserverYaml, nil
}

func testExtendedTestdataTestGitserverYaml() (*asset, error) {
	bytes, err := testExtendedTestdataTestGitserverYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/test-gitserver.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataTestSecretJson = []byte(`{
  "kind": "Secret",
  "apiVersion": "v1",
  "metadata": {
    "name": "docker",
    "creationTimestamp": null
  },
  "data": {
    "dockercfg": "eyJodHRwczovL3JlZ2lzdHJ5aG9zdC92MSI6eyJhdXRoIjoic2VjcmV0IiwiZW1haWwiOiJqb2huQGRvZS5jb20ifX0K"
  },
  "type": "Opaque"
}`)

func testExtendedTestdataTestSecretJsonBytes() ([]byte, error) {
	return _testExtendedTestdataTestSecretJson, nil
}

func testExtendedTestdataTestSecretJson() (*asset, error) {
	bytes, err := testExtendedTestdataTestSecretJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/test-secret.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testExtendedTestdataWeightedRouterYaml = []byte(`apiVersion: v1
kind: Template
parameters:
- name: IMAGE
  value: openshift/origin-haproxy-router:latest
objects:
# a weighted router
- apiVersion: v1
  kind: Pod
  metadata:
    name: weighted-router
    labels:
      test: weighted-router
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: router
      image: ${IMAGE}
      imagePullPolicy: IfNotPresent
      env:
      - name: POD_NAMESPACE
        valueFrom:
          fieldRef:
            fieldPath: metadata.namespace
      args: ["--namespace=$(POD_NAMESPACE)", "--loglevel=4", "--labels=select=weighted", "--stats-password=password", "--stats-port=1936", "--stats-user=admin"]
      hostNetwork: false
      ports:
      - containerPort: 80
      - containerPort: 443
      - containerPort: 1936
        name: stats
        protocol: TCP
    serviceAccountName: default

# ensure the router can access routes and endpoints
- apiVersion: v1
  kind: RoleBinding
  metadata:
    name: system-router
  subjects:
  - kind: ServiceAccount
    name: default
  roleRef:
    name: system:router

# a route that has multiple weighted services that it points to
- apiVersion: v1
  kind: Route
  metadata:
    name: weightedroute
    labels:
      test: router
      select: weighted
  spec:
    host: weighted.example.com
    to:
      name: weightedendpoints1
      kind: Service
      weight: 90
    alternateBackends:
    - name: weightedendpoints2
      kind: Service
      weight: 10
    ports:
    - targetPort: 8080

# a route that has multiple services but all weights are zero
- apiVersion: v1
  kind: Route
  metadata:
    name: zeroweightroute
    labels:
      test: router
      select: weighted
  spec:
    host: zeroweight.example.com
    to:
      name: weightedendpoints1
      kind: Service
      weight: 0
    alternateBackends:
    - name: weightedendpoints2
      kind: Service
      weight: 0
    ports:
    - targetPort: 8080

# two services that can be routed to
- apiVersion: v1
  kind: Service
  metadata:
    name: weightedendpoints1
    labels:
      test: router
  spec:
    selector:
      test: weightedrouter1
      endpoints: weightedrouter1
    ports:
    - port: 8080
- apiVersion: v1
  kind: Service
  metadata:
    name: weightedendpoints2
    labels:
      test: router
  spec:
    selector:
      test: weightedrouter2
      endpoints: weightedrouter2
    ports:
    - port: 8080
# two pods that serves a response
- apiVersion: v1
  kind: Pod
  metadata:
    name: endpoint-1
    labels:
      test: weightedrouter1
      endpoints: weightedrouter1
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: test
      image: openshift/hello-openshift
      ports:
      - containerPort: 8080
        name: http
      - containerPort: 100
        protocol: UDP
- apiVersion: v1
  kind: Pod
  metadata:
    name: endpoint-2
    labels:
      test: weightedrouter2
      endpoints: weightedrouter2
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: test
      image: openshift/hello-openshift
      ports:
      - containerPort: 8080
        name: http
      - containerPort: 100
        protocol: UDP
- apiVersion: v1
  kind: Pod
  metadata:
    name: endpoint-3
    labels:
      test: weightedrouter2
      endpoints: weightedrouter2
  spec:
    terminationGracePeriodSeconds: 1
    containers:
    - name: test
      image: openshift/hello-openshift
      ports:
      - containerPort: 8080
        name: http
      - containerPort: 100
        protocol: UDP
`)

func testExtendedTestdataWeightedRouterYamlBytes() ([]byte, error) {
	return _testExtendedTestdataWeightedRouterYaml, nil
}

func testExtendedTestdataWeightedRouterYaml() (*asset, error) {
	bytes, err := testExtendedTestdataWeightedRouterYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/extended/testdata/weighted-router.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataProjectRequestTemplateWithQuotaYaml = []byte(`apiVersion: v1
kind: Template
metadata:
  creationTimestamp: 2015-10-24T18:25:22Z
  name: default-project-request
  namespace: default
objects:
- apiVersion: v1
  kind: Project
  metadata:
    annotations:
      openshift.io/description: ${PROJECT_DESCRIPTION}
      openshift.io/display-name: ${PROJECT_DISPLAYNAME}
      extra: here
    creationTimestamp: null
    name: ${PROJECT_NAME}
  spec: {}
  status: {}
- apiVersion: v1
  kind: ResourceQuota
  metadata:
    name: ${PROJECT_NAME}-quota
  spec:
    hard:
      cpu: 200m
      memory: 512Mi
      pods: 3
      replicationcontrollers: 3
      resourcequotas: 1
      services: 3
- apiVersion: v1
  kind: LimitRange
  metadata:
    creationTimestamp: null
    name: ${PROJECT_NAME}-limits
  spec:
    limits:
    - max:
        cpu: 500m
        memory: 750Mi
      min:
        cpu: 10m
        memory: 5Mi
      type: Pod
    - default:
        cpu: 100m
        memory: 100Mi
      max:
        cpu: 500m
        memory: 750Mi
      min:
        cpu: 10m
        memory: 5Mi
      type: Container
- apiVersion: v1
  groupNames: []
  kind: RoleBinding
  metadata:
    creationTimestamp: null
    name: admins
    namespace: ${PROJECT_NAME}
  roleRef:
    name: admin
  subjects:
  - kind: User
    name: ${PROJECT_ADMIN_USER}
  userNames:
  - ${PROJECT_ADMIN_USER}
- apiVersion: v1
  groupNames:
  - system:serviceaccounts:${PROJECT_NAME}
  kind: RoleBinding
  metadata:
    creationTimestamp: null
    name: system:image-pullers
    namespace: ${PROJECT_NAME}
  roleRef:
    name: system:image-puller
  subjects:
  - kind: SystemGroup
    name: system:serviceaccounts:${PROJECT_NAME}
  userNames: []
- apiVersion: v1
  groupNames: []
  kind: RoleBinding
  metadata:
    creationTimestamp: null
    name: system:image-builders
    namespace: ${PROJECT_NAME}
  roleRef:
    name: system:image-builder
  subjects:
  - kind: ServiceAccount
    name: builder
  userNames:
  - system:serviceaccount:${PROJECT_NAME}:builder
- apiVersion: v1
  groupNames: []
  kind: RoleBinding
  metadata:
    creationTimestamp: null
    name: system:deployers
    namespace: ${PROJECT_NAME}
  roleRef:
    name: system:deployer
  subjects:
  - kind: ServiceAccount
    name: deployer
  userNames:
  - system:serviceaccount:${PROJECT_NAME}:deployer
parameters:
- name: PROJECT_NAME
- name: PROJECT_DISPLAYNAME
- name: PROJECT_DESCRIPTION
- name: PROJECT_ADMIN_USER`)

func testIntegrationTestdataProjectRequestTemplateWithQuotaYamlBytes() ([]byte, error) {
	return _testIntegrationTestdataProjectRequestTemplateWithQuotaYaml, nil
}

func testIntegrationTestdataProjectRequestTemplateWithQuotaYaml() (*asset, error) {
	bytes, err := testIntegrationTestdataProjectRequestTemplateWithQuotaYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/project-request-template-with-quota.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataTestBuildcliBeta2Json = []byte(`{
  "kind": "List",
  "apiVersion": "v1",
  "metadata": {},
  "items": [
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-22-centos-buildcli",
        "creationTimestamp": null
      },
      "spec": {
        "dockerImageRepository": "centos/ruby-22-centos",
        "tags": [
          {
            "name": "valid"
          }
        ]
      },
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-sample-build-validtag",
        "creationTimestamp": null
      },
      "spec": {
        "triggers": [
          {
            "type": "imageChange",
            "imageChange": {}
          }
        ],
        "source": {
          "type": "Git",
          "git": {
            "uri": "git://github.com/openshift/ruby-hello-world.git"
          }
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "ImageStreamTag",
              "name": "ruby-22-centos-buildcli:valid"
            },
            "incremental": true
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "origin-ruby-sample:latest"
          }
        },
        "resources": {}
      },
      "status": {
        "lastVersion": 0
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-sample-build-invalidtag",
        "creationTimestamp": null
      },
      "spec": {
        "triggers": [
          {
            "type": "imageChange",
            "imageChange": {}
          }
        ],
        "source": {
          "type": "Git",
          "git": {
            "uri": "git://github.com/openshift/ruby-hello-world.git"
          }
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "ImageStreamTag",
              "name": "ruby-22-centos-buildcli:invalid"
            },
            "incremental": true
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "origin-ruby-sample:latest"
          }
        },
        "resources": {}
      },
      "status": {
        "lastVersion": 0
      }
    }
  ]
}
`)

func testIntegrationTestdataTestBuildcliBeta2JsonBytes() ([]byte, error) {
	return _testIntegrationTestdataTestBuildcliBeta2Json, nil
}

func testIntegrationTestdataTestBuildcliBeta2Json() (*asset, error) {
	bytes, err := testIntegrationTestdataTestBuildcliBeta2JsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/test-buildcli-beta2.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataTestBuildcliJson = []byte(`{
  "kind": "List",
  "apiVersion": "v1",
  "metadata": {},
  "items": [
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-20-centos7-buildcli",
        "creationTimestamp": null
      },
      "spec": {
        "dockerImageRepository": "centos/ruby-25-centos7",
        "tags": [
          {
            "name": "valid"
          }
        ]
      },
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-sample-build-validtag",
        "creationTimestamp": null
      },
      "spec": {
        "triggers": [
          {
            "type": "imageChange",
            "imageChange": {}
          }
        ],
        "source": {
          "type": "Git",
          "git": {
            "uri": "git://github.com/openshift/ruby-hello-world.git"
          }
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "DockerImage",
              "name": "centos/ruby-25-centos7"
            },
            "incremental": true
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "origin-ruby-sample:latest"
          }
        },
        "resources": {}
      },
      "status": {
        "lastVersion": 0
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-sample-build-invalidtag",
        "creationTimestamp": null
      },
      "spec": {
        "triggers": [
          {
            "type": "imageChange",
            "imageChange": {}
          }
        ],
        "source": {
          "type": "Git",
          "git": {
            "uri": "git://github.com/openshift/ruby-hello-world.git"
          }
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "DockerImage",
              "name": "centos/ruby-25-centos7"
            },
            "incremental": true
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "origin-ruby-sample:latest"
          }
        },
        "resources": {}
      },
      "status": {
        "lastVersion": 0
      }
    }
  ]
}
`)

func testIntegrationTestdataTestBuildcliJsonBytes() ([]byte, error) {
	return _testIntegrationTestdataTestBuildcliJson, nil
}

func testIntegrationTestdataTestBuildcliJson() (*asset, error) {
	bytes, err := testIntegrationTestdataTestBuildcliJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/test-buildcli.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataTestDeploymentConfigYaml = []byte(`apiVersion: v1
kind: DeploymentConfig
metadata:
  name: test-deployment-config
spec:
  replicas: 1
  selector:
    name: test-deployment
  strategy:
    type: Recreate
    recreateParams:
      timeoutSeconds: 20
      post:
        failurePolicy: Ignore
        tagImages:
        - containerName: ruby-helloworld
          to:
            kind: ImageStreamTag
            name: origin-ruby-sample:deployed
  template:
    metadata:
      labels:
        name: test-deployment
    spec:
      containers:
      - image: openshift/origin-pod
        imagePullPolicy: IfNotPresent
        name: ruby-helloworld
        ports:
        - containerPort: 8080
          protocol: TCP
        resources:
          limits:
            cpu: 100m
            memory: 3Gi
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      volumes:
      - emptyDir: {}
        name: vol1
  triggers:
  - type: ConfigChange
status: {}
`)

func testIntegrationTestdataTestDeploymentConfigYamlBytes() ([]byte, error) {
	return _testIntegrationTestdataTestDeploymentConfigYaml, nil
}

func testIntegrationTestdataTestDeploymentConfigYaml() (*asset, error) {
	bytes, err := testIntegrationTestdataTestDeploymentConfigYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/test-deployment-config.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataTestEgressNetworkPolicyJson = []byte(`{
    "kind": "EgressNetworkPolicy",
    "apiVersion": "v1",
    "metadata": {
	"name": "default"
    },
    "spec": {
	"egress": [
	    {
		"type": "Allow",
		"to": {
		    "cidrSelector": "192.168.0.0/16"
		}
	    },
	    {
		"type": "Deny",
		"to": {
		    "cidrSelector": "0.0.0.0/0"
		}
	    }
	]
    }
}
`)

func testIntegrationTestdataTestEgressNetworkPolicyJsonBytes() ([]byte, error) {
	return _testIntegrationTestdataTestEgressNetworkPolicyJson, nil
}

func testIntegrationTestdataTestEgressNetworkPolicyJson() (*asset, error) {
	bytes, err := testIntegrationTestdataTestEgressNetworkPolicyJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/test-egress-network-policy.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataTestImageStreamMappingJson = []byte(`{
  "kind": "ImageStreamMapping",
  "apiVersion": "v1",
  "metadata": {
    "name": "test",
    "creationTimestamp": null
  },
  "image": {
    "metadata": {
      "name": "sha256:4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125",
      "creationTimestamp": null
    },
    "dockerImageReference": "openshift/ruby-19-centos:latest",
    "dockerImageMetadata": {
      "kind": "DockerImage",
      "apiVersion": "1.0",
      "Id": "",
      "Created": null,
      "ContainerConfig": {},
      "Config": {}
    },
    "dockerImageMetadataVersion": "1.0",
    "dockerImageManifest": "{\n   \"name\": \"library/busybox\",\n   \"tag\": \"latest\",\n   \"architecture\": \"amd64\",\n   \"fsLayers\": [\n      {\n         \"blobSum\": \"tarsum.dev+sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n      },\n      {\n         \"blobSum\": \"tarsum.dev+sha256:d43a7079c4dd020e9c65419c2eb6751ea49d6f7f9337edd895596cd5f7aa6369\"\n      },\n      {\n         \"blobSum\": \"tarsum.dev+sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n      },\n      {\n         \"blobSum\": \"tarsum.dev+sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n      }\n   ],\n   \"history\": [\n      {\n         \"v1Compatibility\": \"{\\\"id\\\":\\\"4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125\\\",\\\"parent\\\":\\\"ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2\\\",\\\"created\\\":\\\"2014-12-31T22:23:56.943403668Z\\\",\\\"container\\\":\\\"83dcf36ad1042b90f4ea8b2ebb60e61b2f1a451a883e04b388be299ad382b259\\\",\\\"container_config\\\":{\\\"Hostname\\\":\\\"7f674915980d\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":[\\\"/bin/sh\\\",\\\"-c\\\",\\\"#(nop) CMD [/bin/sh]\\\"],\\\"Image\\\":\\\"ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"docker_version\\\":\\\"1.4.1\\\",\\\"author\\\":\\\"Jerome Petazzoni \\\\u003cjerome@docker.com\\\\u003e\\\",\\\"config\\\":{\\\"Hostname\\\":\\\"7f674915980d\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":[\\\"/bin/sh\\\"],\\\"Image\\\":\\\"ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"architecture\\\":\\\"amd64\\\",\\\"os\\\":\\\"linux\\\",\\\"checksum\\\":\\\"tarsum.dev+sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\\\",\\\"Size\\\":0}\\n\"\n      },\n      {\n         \"v1Compatibility\": \"{\\\"id\\\":\\\"ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2\\\",\\\"parent\\\":\\\"df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b\\\",\\\"created\\\":\\\"2014-12-31T22:23:56.190797792Z\\\",\\\"container\\\":\\\"7f674915980dbcafb3096fa82369c2943194486dcb4e585e3490a2e66c530e44\\\",\\\"container_config\\\":{\\\"Hostname\\\":\\\"7f674915980d\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":[\\\"/bin/sh\\\",\\\"-c\\\",\\\"#(nop) ADD file:8cf517d90fe79547c474641cc1e6425850e04abbd8856718f7e4a184ea878538 in /\\\"],\\\"Image\\\":\\\"df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"docker_version\\\":\\\"1.4.1\\\",\\\"author\\\":\\\"Jerome Petazzoni \\\\u003cjerome@docker.com\\\\u003e\\\",\\\"config\\\":{\\\"Hostname\\\":\\\"7f674915980d\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":null,\\\"Image\\\":\\\"df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"architecture\\\":\\\"amd64\\\",\\\"os\\\":\\\"linux\\\",\\\"checksum\\\":\\\"tarsum.dev+sha256:d43a7079c4dd020e9c65419c2eb6751ea49d6f7f9337edd895596cd5f7aa6369\\\",\\\"Size\\\":2433303}\\n\"\n      },\n      {\n         \"v1Compatibility\": \"{\\\"id\\\":\\\"df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b\\\",\\\"parent\\\":\\\"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158\\\",\\\"created\\\":\\\"2014-10-01T20:46:07.263351912Z\\\",\\\"container\\\":\\\"2147a17cb1b2d6626ed78e5ef8ba4c71ce82c884bc3b57ab01e6114ff357cea4\\\",\\\"container_config\\\":{\\\"Hostname\\\":\\\"2147a17cb1b2\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":[\\\"/bin/sh\\\",\\\"-c\\\",\\\"#(nop) MAINTAINER Jerome Petazzoni \\\\u003cjerome@docker.com\\\\u003e\\\"],\\\"Image\\\":\\\"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"docker_version\\\":\\\"1.2.0\\\",\\\"author\\\":\\\"Jerome Petazzoni \\\\u003cjerome@docker.com\\\\u003e\\\",\\\"config\\\":{\\\"Hostname\\\":\\\"2147a17cb1b2\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":null,\\\"Image\\\":\\\"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"architecture\\\":\\\"amd64\\\",\\\"os\\\":\\\"linux\\\",\\\"checksum\\\":\\\"tarsum.dev+sha256:1b755912c77197c6a43539f2a708ef89d5849b8ce02642cb702e47afaa8195c3\\\",\\\"Size\\\":0}\\n\"\n      },\n      {\n         \"v1Compatibility\": \"{\\\"id\\\":\\\"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158\\\",\\\"comment\\\":\\\"Imported from -\\\",\\\"created\\\":\\\"2013-06-13T14:03:50.821769-07:00\\\",\\\"container_config\\\":{\\\"Hostname\\\":\\\"\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":null,\\\"Cmd\\\":null,\\\"Image\\\":\\\"\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":null},\\\"docker_version\\\":\\\"0.4.0\\\",\\\"architecture\\\":\\\"x86_64\\\",\\\"checksum\\\":\\\"tarsum.dev+sha256:324d4cf44ee7daa46266c1df830c61a7df615c0632176a339e7310e34723d67a\\\",\\\"Size\\\":0}\\n\"\n      }\n   ],\n   \"schemaVersion\": 1,\n   \"signatures\": [\n      {\n         \"header\": {\n            \"jwk\": {\n               \"crv\": \"P-256\",\n               \"kid\": \"OIH7:HQFS:44FK:45VB:3B53:OIAG:TPL4:ATF5:6PNE:MGHN:NHQX:2GE4\",\n               \"kty\": \"EC\",\n               \"x\": \"Cu_UyxwLgHzE9rvlYSmvVdqYCXY42E9eNhBb0xNv0SQ\",\n               \"y\": \"zUsjWJkeKQ5tv7S-hl1Tg71cd-CqnrtiiLxSi6N_yc8\"\n            },\n            \"alg\": \"ES256\"\n         },\n         \"signature\": \"bWiisabH8LgSXezUhjN8X3I7ESBo_fCXvFtqAwRmzozTfPHTr8edd13SU0KUJMq4X7_agEuLpSh1V8YGcBVpYg\",\n         \"protected\": \"eyJmb3JtYXRMZW5ndGgiOjcwNjMsImZvcm1hdFRhaWwiOiJDbjAiLCJ0aW1lIjoiMjAxNS0wMy0zMVQxNjozMjoyOVoifQ\"\n      }\n   ]\n}"
  },
  "tag": "sometag"
}`)

func testIntegrationTestdataTestImageStreamMappingJsonBytes() ([]byte, error) {
	return _testIntegrationTestdataTestImageStreamMappingJson, nil
}

func testIntegrationTestdataTestImageStreamMappingJson() (*asset, error) {
	bytes, err := testIntegrationTestdataTestImageStreamMappingJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/test-image-stream-mapping.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataTestImageStreamJson = []byte(`{
  "kind": "ImageStream",
  "apiVersion": "v1",
  "metadata": {
    "name": "test",
    "creationTimestamp": null,
    "labels": {
      "color": "blue"
    }
  },
  "spec": {},
  "status": {
    "dockerImageRepository": ""
  }
}`)

func testIntegrationTestdataTestImageStreamJsonBytes() ([]byte, error) {
	return _testIntegrationTestdataTestImageStreamJson, nil
}

func testIntegrationTestdataTestImageStreamJson() (*asset, error) {
	bytes, err := testIntegrationTestdataTestImageStreamJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/test-image-stream.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataTestImageJson = []byte(`{
  "kind": "Image",
  "apiVersion": "v1",
  "metadata": {
    "name": "test",
    "creationTimestamp": null
  },
  "dockerImageReference": "openshift/ruby-19-centos:latest",
  "dockerImageMetadata": {
    "kind": "DockerImage",
    "apiVersion": "1.0",
    "Id": "",
    "Created": null,
    "ContainerConfig": {},
    "Config": {}
  },
  "dockerImageMetadataVersion": "1.0"
}`)

func testIntegrationTestdataTestImageJsonBytes() ([]byte, error) {
	return _testIntegrationTestdataTestImageJson, nil
}

func testIntegrationTestdataTestImageJson() (*asset, error) {
	bytes, err := testIntegrationTestdataTestImageJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/test-image.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataTestReplicationControllerYaml = []byte(`apiVersion: v1
kind: ReplicationController
metadata:
  annotations:
    openshift.io/deployment-config.latest-version: "1"
    openshift.io/deployment-config.name: test-deployment
    openshift.io/deployment.phase: Complete
    optnshift.io/deployment.replicas: "1"
  name: test-replication-controller
spec:
  replicas: 1
  selector:
    deployment: test-deployment
    deploymentconfig: test-deployment
  template:
    metadata:
      labels:
        deployment: test-deployment
        deploymentconfig: test-deployment
    spec:
      containers:
      - image: openshift/origin-pod
        imagePullPolicy: IfNotPresent
        name: ruby-helloworld
        ports:
        - containerPort: 8080
          protocol: TCP
        resources: {}
      dnsPolicy: ClusterFirst
      restartPolicy: Always
status: {}
`)

func testIntegrationTestdataTestReplicationControllerYamlBytes() ([]byte, error) {
	return _testIntegrationTestdataTestReplicationControllerYaml, nil
}

func testIntegrationTestdataTestReplicationControllerYaml() (*asset, error) {
	bytes, err := testIntegrationTestdataTestReplicationControllerYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/test-replication-controller.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataTestRouteJson = []byte(`{
  "kind": "Route",
  "apiVersion": "v1",
  "metadata": {
    "name": "testroute",
    "creationTimestamp": null,
    "labels": {
       "rtlabel1": "greatroute"
    }
  },
  "spec": {
    "host": "test.example.com",
    "to": {
      "kind": "Service",
      "name": "testservice"
    }
  },
  "status": {}
}
`)

func testIntegrationTestdataTestRouteJsonBytes() ([]byte, error) {
	return _testIntegrationTestdataTestRouteJson, nil
}

func testIntegrationTestdataTestRouteJson() (*asset, error) {
	bytes, err := testIntegrationTestdataTestRouteJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/test-route.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataTestServiceWithFinalizerJson = []byte(`{
  "kind": "Service",
  "apiVersion": "v1",
  "metadata": {
    "name": "frontend",
    "creationTimestamp": null,
    "labels": {
      "name": "frontend"
    },
    "finalizers": ["fake/one"]
  },
  "spec": {
    "ports": [
      {
        "protocol": "TCP",
        "port": 9998,
        "targetPort": 9998,
        "nodePort": 0
      }
    ],
    "selector": {
      "name": "frontend"
    },
    "type": "ClusterIP",
    "sessionAffinity": "None"
  },
  "status": {
    "loadBalancer": {}
  }
}`)

func testIntegrationTestdataTestServiceWithFinalizerJsonBytes() ([]byte, error) {
	return _testIntegrationTestdataTestServiceWithFinalizerJson, nil
}

func testIntegrationTestdataTestServiceWithFinalizerJson() (*asset, error) {
	bytes, err := testIntegrationTestdataTestServiceWithFinalizerJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/test-service-with-finalizer.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _testIntegrationTestdataTestServiceJson = []byte(`{
  "kind": "Service",
  "apiVersion": "v1",
  "metadata": {
    "name": "frontend",
    "creationTimestamp": null,
    "labels": {
      "name": "frontend"
    }
  },
  "spec": {
    "ports": [
      {
        "protocol": "TCP",
        "port": 9998,
        "targetPort": 9998,
        "nodePort": 0
      }
    ],
    "selector": {
      "name": "frontend"
    },
    "type": "ClusterIP",
    "sessionAffinity": "None"
  },
  "status": {
    "loadBalancer": {}
  }
}`)

func testIntegrationTestdataTestServiceJsonBytes() ([]byte, error) {
	return _testIntegrationTestdataTestServiceJson, nil
}

func testIntegrationTestdataTestServiceJson() (*asset, error) {
	bytes, err := testIntegrationTestdataTestServiceJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "test/integration/testdata/test-service.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesDbTemplatesMariadbEphemeralTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "mariadb-ephemeral-template"
    },
    "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${MYSQL_USER}\n       Password: ${MYSQL_PASSWORD}\n  Database Name: ${MYSQL_DATABASE}\n Connection URL: mysql://${DATABASE_SERVICE_NAME}:3306/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/blob/master/10.2/root/usr/share/container-scripts/mysql/README.md.",
    "metadata": {
        "annotations": {
            "description": "MariaDB database service, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/blob/master/10.2/root/usr/share/container-scripts/mysql/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing",
            "iconClass": "icon-mariadb",
            "openshift.io/display-name": "MariaDB (Ephemeral)",
            "openshift.io/documentation-url": "https://github.com/sclorg/mariadb-container/blob/master/10.2/root/usr/share/container-scripts/mysql/README.md",
            "openshift.io/long-description": "This template provides a standalone MariaDB server with a database created.  The database is not stored on persistent storage, so any restart of the service will result in all data being lost.  The database name, username, and password are chosen via parameters when provisioning this service.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "database,mariadb"
        },
        "name": "mariadb-ephemeral"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-database_name": "{.data['database-name']}",
                    "template.openshift.io/expose-password": "{.data['database-password']}",
                    "template.openshift.io/expose-root_password": "{.data['database-root-password']}",
                    "template.openshift.io/expose-username": "{.data['database-user']}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "stringData": {
                "database-name": "${MYSQL_DATABASE}",
                "database-password": "${MYSQL_PASSWORD}",
                "database-root-password": "${MYSQL_ROOT_PASSWORD}",
                "database-user": "${MYSQL_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mariadb\")].port}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mariadb",
                        "port": 3306
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "MYSQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_ROOT_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-root-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_DATABASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-name",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 3306
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mariadb",
                                "ports": [
                                    {
                                        "containerPort": 3306
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mysql/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "emptyDir": {
                                    "medium": ""
                                },
                                "name": "${DATABASE_SERVICE_NAME}-data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mariadb"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mariadb:${MARIADB_VERSION}",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "The name of the OpenShift Service exposed for the database.",
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "mariadb"
        },
        {
            "description": "Username for MariaDB user that will be used for accessing the database.",
            "displayName": "MariaDB Connection Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "MYSQL_USER",
            "required": true
        },
        {
            "description": "Password for the MariaDB connection user.",
            "displayName": "MariaDB Connection Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MYSQL_PASSWORD",
            "required": true
        },
        {
            "description": "Password for the MariaDB root user.",
            "displayName": "MariaDB root Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MYSQL_ROOT_PASSWORD",
            "required": true
        },
        {
            "description": "Name of the MariaDB database accessed.",
            "displayName": "MariaDB Database Name",
            "name": "MYSQL_DATABASE",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Version of MariaDB image to be used (10.2 or latest).",
            "displayName": "Version of MariaDB Image",
            "name": "MARIADB_VERSION",
            "required": true,
            "value": "10.2"
        }
    ]
}`)

func examplesDbTemplatesMariadbEphemeralTemplateJsonBytes() ([]byte, error) {
	return _examplesDbTemplatesMariadbEphemeralTemplateJson, nil
}

func examplesDbTemplatesMariadbEphemeralTemplateJson() (*asset, error) {
	bytes, err := examplesDbTemplatesMariadbEphemeralTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/db-templates/mariadb-ephemeral-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesDbTemplatesMariadbPersistentTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "mariadb-persistent-template"
    },
    "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${MYSQL_USER}\n       Password: ${MYSQL_PASSWORD}\n  Database Name: ${MYSQL_DATABASE}\n Connection URL: mysql://${DATABASE_SERVICE_NAME}:3306/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/blob/master/10.2/root/usr/share/container-scripts/mysql/README.md.",
    "metadata": {
        "annotations": {
            "description": "MariaDB database service, with persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/blob/master/10.2/root/usr/share/container-scripts/mysql/README.md.\n\nNOTE: Scaling to more than one replica is not supported. You must have persistent volumes available in your cluster to use this template.",
            "iconClass": "icon-mariadb",
            "openshift.io/display-name": "MariaDB",
            "openshift.io/documentation-url": "https://github.com/sclorg/mariadb-container/blob/master/10.2/root/usr/share/container-scripts/mysql/README.md",
            "openshift.io/long-description": "This template provides a standalone MariaDB server with a database created.  The database is stored on persistent storage.  The database name, username, and password are chosen via parameters when provisioning this service.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "database,mariadb"
        },
        "name": "mariadb-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-database_name": "{.data['database-name']}",
                    "template.openshift.io/expose-password": "{.data['database-password']}",
                    "template.openshift.io/expose-root_password": "{.data['database-root-password']}",
                    "template.openshift.io/expose-username": "{.data['database-user']}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "stringData": {
                "database-name": "${MYSQL_DATABASE}",
                "database-password": "${MYSQL_PASSWORD}",
                "database-root-password": "${MYSQL_ROOT_PASSWORD}",
                "database-user": "${MYSQL_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mariadb\")].port}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mariadb",
                        "port": 3306
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "MYSQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_ROOT_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-root-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_DATABASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-name",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 3306
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mariadb",
                                "ports": [
                                    {
                                        "containerPort": 3306
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mysql/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "name": "${DATABASE_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${DATABASE_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mariadb"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mariadb:${MARIADB_VERSION}",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "The name of the OpenShift Service exposed for the database.",
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "mariadb"
        },
        {
            "description": "Username for MariaDB user that will be used for accessing the database.",
            "displayName": "MariaDB Connection Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "MYSQL_USER",
            "required": true
        },
        {
            "description": "Password for the MariaDB connection user.",
            "displayName": "MariaDB Connection Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MYSQL_PASSWORD",
            "required": true
        },
        {
            "description": "Password for the MariaDB root user.",
            "displayName": "MariaDB root Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MYSQL_ROOT_PASSWORD",
            "required": true
        },
        {
            "description": "Name of the MariaDB database accessed.",
            "displayName": "MariaDB Database Name",
            "name": "MYSQL_DATABASE",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Version of MariaDB image to be used (10.2 or latest).",
            "displayName": "Version of MariaDB Image",
            "name": "MARIADB_VERSION",
            "required": true,
            "value": "10.2"
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi.",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "1Gi"
        }
    ]
}`)

func examplesDbTemplatesMariadbPersistentTemplateJsonBytes() ([]byte, error) {
	return _examplesDbTemplatesMariadbPersistentTemplateJson, nil
}

func examplesDbTemplatesMariadbPersistentTemplateJson() (*asset, error) {
	bytes, err := examplesDbTemplatesMariadbPersistentTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/db-templates/mariadb-persistent-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesDbTemplatesMongodbEphemeralTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "mongodb-ephemeral-template"
    },
    "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${MONGODB_USER}\n       Password: ${MONGODB_PASSWORD}\n  Database Name: ${MONGODB_DATABASE}\n Connection URL: mongodb://${MONGODB_USER}:${MONGODB_PASSWORD}@${DATABASE_SERVICE_NAME}/${MONGODB_DATABASE}\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/blob/master/3.2/README.md.",
    "metadata": {
        "annotations": {
            "description": "MongoDB database service, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/blob/master/3.2/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing",
            "iconClass": "icon-mongodb",
            "openshift.io/display-name": "MongoDB (Ephemeral)",
            "openshift.io/documentation-url": "https://docs.okd.io/latest/using_images/db_images/mongodb.html",
            "openshift.io/long-description": "This template provides a standalone MongoDB server with a database created.  The database is not stored on persistent storage, so any restart of the service will result in all data being lost.  The database name, username, and password are chosen via parameters when provisioning this service.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "database,mongodb"
        },
        "name": "mongodb-ephemeral"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-admin_password": "{.data['database-admin-password']}",
                    "template.openshift.io/expose-database_name": "{.data['database-name']}",
                    "template.openshift.io/expose-password": "{.data['database-password']}",
                    "template.openshift.io/expose-username": "{.data['database-user']}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "stringData": {
                "database-admin-password": "${MONGODB_ADMIN_PASSWORD}",
                "database-name": "${MONGODB_DATABASE}",
                "database-password": "${MONGODB_PASSWORD}",
                "database-user": "${MONGODB_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-uri": "mongodb://{.spec.clusterIP}:{.spec.ports[?(.name==\"mongo\")].port}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mongo",
                        "nodePort": 0,
                        "port": 27017,
                        "protocol": "TCP",
                        "targetPort": 27017
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "sessionAffinity": "None",
                "type": "ClusterIP"
            },
            "status": {
                "loadBalancer": {}
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "capabilities": {},
                                "env": [
                                    {
                                        "name": "MONGODB_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_ADMIN_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-admin-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_DATABASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-name",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 27017
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mongodb",
                                "ports": [
                                    {
                                        "containerPort": 27017,
                                        "protocol": "TCP"
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""
                                        ]
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "securityContext": {
                                    "capabilities": {},
                                    "privileged": false
                                },
                                "terminationMessagePath": "/dev/termination-log",
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mongodb/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "dnsPolicy": "ClusterFirst",
                        "restartPolicy": "Always",
                        "volumes": [
                            {
                                "emptyDir": {
                                    "medium": ""
                                },
                                "name": "${DATABASE_SERVICE_NAME}-data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mongodb"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mongodb:${MONGODB_VERSION}",
                                "namespace": "${NAMESPACE}"
                            },
                            "lastTriggeredImage": ""
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            },
            "status": {}
        }
    ],
    "parameters": [
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "The name of the OpenShift Service exposed for the database.",
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "mongodb"
        },
        {
            "description": "Username for MongoDB user that will be used for accessing the database.",
            "displayName": "MongoDB Connection Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "MONGODB_USER",
            "required": true
        },
        {
            "description": "Password for the MongoDB connection user.",
            "displayName": "MongoDB Connection Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MONGODB_PASSWORD",
            "required": true
        },
        {
            "description": "Name of the MongoDB database accessed.",
            "displayName": "MongoDB Database Name",
            "name": "MONGODB_DATABASE",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Password for the database admin user.",
            "displayName": "MongoDB Admin Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MONGODB_ADMIN_PASSWORD",
            "required": true
        },
        {
            "description": "Version of MongoDB image to be used (3.6 or latest).",
            "displayName": "Version of MongoDB Image",
            "name": "MONGODB_VERSION",
            "required": true,
            "value": "3.6"
        }
    ]
}`)

func examplesDbTemplatesMongodbEphemeralTemplateJsonBytes() ([]byte, error) {
	return _examplesDbTemplatesMongodbEphemeralTemplateJson, nil
}

func examplesDbTemplatesMongodbEphemeralTemplateJson() (*asset, error) {
	bytes, err := examplesDbTemplatesMongodbEphemeralTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/db-templates/mongodb-ephemeral-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesDbTemplatesMongodbPersistentTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "mongodb-persistent-template"
    },
    "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${MONGODB_USER}\n       Password: ${MONGODB_PASSWORD}\n  Database Name: ${MONGODB_DATABASE}\n Connection URL: mongodb://${MONGODB_USER}:${MONGODB_PASSWORD}@${DATABASE_SERVICE_NAME}/${MONGODB_DATABASE}\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/blob/master/3.2/README.md.",
    "metadata": {
        "annotations": {
            "description": "MongoDB database service, with persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/blob/master/3.2/README.md.\n\nNOTE: Scaling to more than one replica is not supported. You must have persistent volumes available in your cluster to use this template.",
            "iconClass": "icon-mongodb",
            "openshift.io/display-name": "MongoDB",
            "openshift.io/documentation-url": "https://docs.okd.io/latest/using_images/db_images/mongodb.html",
            "openshift.io/long-description": "This template provides a standalone MongoDB server with a database created.  The database is stored on persistent storage.  The database name, username, and password are chosen via parameters when provisioning this service.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "database,mongodb"
        },
        "name": "mongodb-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-admin_password": "{.data['database-admin-password']}",
                    "template.openshift.io/expose-database_name": "{.data['database-name']}",
                    "template.openshift.io/expose-password": "{.data['database-password']}",
                    "template.openshift.io/expose-username": "{.data['database-user']}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "stringData": {
                "database-admin-password": "${MONGODB_ADMIN_PASSWORD}",
                "database-name": "${MONGODB_DATABASE}",
                "database-password": "${MONGODB_PASSWORD}",
                "database-user": "${MONGODB_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-uri": "mongodb://{.spec.clusterIP}:{.spec.ports[?(.name==\"mongo\")].port}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mongo",
                        "nodePort": 0,
                        "port": 27017,
                        "protocol": "TCP",
                        "targetPort": 27017
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "sessionAffinity": "None",
                "type": "ClusterIP"
            },
            "status": {
                "loadBalancer": {}
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "capabilities": {},
                                "env": [
                                    {
                                        "name": "MONGODB_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_ADMIN_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-admin-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_DATABASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-name",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 27017
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mongodb",
                                "ports": [
                                    {
                                        "containerPort": 27017,
                                        "protocol": "TCP"
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""
                                        ]
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "securityContext": {
                                    "capabilities": {},
                                    "privileged": false
                                },
                                "terminationMessagePath": "/dev/termination-log",
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mongodb/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "dnsPolicy": "ClusterFirst",
                        "restartPolicy": "Always",
                        "volumes": [
                            {
                                "name": "${DATABASE_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${DATABASE_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mongodb"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mongodb:${MONGODB_VERSION}",
                                "namespace": "${NAMESPACE}"
                            },
                            "lastTriggeredImage": ""
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            },
            "status": {}
        }
    ],
    "parameters": [
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "The name of the OpenShift Service exposed for the database.",
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "mongodb"
        },
        {
            "description": "Username for MongoDB user that will be used for accessing the database.",
            "displayName": "MongoDB Connection Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "MONGODB_USER",
            "required": true
        },
        {
            "description": "Password for the MongoDB connection user.",
            "displayName": "MongoDB Connection Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MONGODB_PASSWORD",
            "required": true
        },
        {
            "description": "Name of the MongoDB database accessed.",
            "displayName": "MongoDB Database Name",
            "name": "MONGODB_DATABASE",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Password for the database admin user.",
            "displayName": "MongoDB Admin Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MONGODB_ADMIN_PASSWORD",
            "required": true
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi.",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "1Gi"
        },
        {
            "description": "Version of MongoDB image to be used (3.6 or latest).",
            "displayName": "Version of MongoDB Image",
            "name": "MONGODB_VERSION",
            "required": true,
            "value": "3.6"
        }
    ]
}`)

func examplesDbTemplatesMongodbPersistentTemplateJsonBytes() ([]byte, error) {
	return _examplesDbTemplatesMongodbPersistentTemplateJson, nil
}

func examplesDbTemplatesMongodbPersistentTemplateJson() (*asset, error) {
	bytes, err := examplesDbTemplatesMongodbPersistentTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/db-templates/mongodb-persistent-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesDbTemplatesMysqlEphemeralTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "mysql-ephemeral-template"
    },
    "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${MYSQL_USER}\n       Password: ${MYSQL_PASSWORD}\n  Database Name: ${MYSQL_DATABASE}\n Connection URL: mysql://${DATABASE_SERVICE_NAME}:3306/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.7/root/usr/share/container-scripts/mysql/README.md.",
    "metadata": {
        "annotations": {
            "description": "MySQL database service, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.7/root/usr/share/container-scripts/mysql/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing",
            "iconClass": "icon-mysql-database",
            "openshift.io/display-name": "MySQL (Ephemeral)",
            "openshift.io/documentation-url": "https://docs.okd.io/latest/using_images/db_images/mysql.html",
            "openshift.io/long-description": "This template provides a standalone MySQL server with a database created.  The database is not stored on persistent storage, so any restart of the service will result in all data being lost.  The database name, username, and password are chosen via parameters when provisioning this service.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "database,mysql"
        },
        "name": "mysql-ephemeral"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-database_name": "{.data['database-name']}",
                    "template.openshift.io/expose-password": "{.data['database-password']}",
                    "template.openshift.io/expose-root_password": "{.data['database-root-password']}",
                    "template.openshift.io/expose-username": "{.data['database-user']}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "stringData": {
                "database-name": "${MYSQL_DATABASE}",
                "database-password": "${MYSQL_PASSWORD}",
                "database-root-password": "${MYSQL_ROOT_PASSWORD}",
                "database-user": "${MYSQL_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mysql\")].port}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mysql",
                        "nodePort": 0,
                        "port": 3306,
                        "protocol": "TCP",
                        "targetPort": 3306
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "sessionAffinity": "None",
                "type": "ClusterIP"
            },
            "status": {
                "loadBalancer": {}
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "capabilities": {},
                                "env": [
                                    {
                                        "name": "MYSQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_ROOT_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-root-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_DATABASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-name",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 3306
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mysql",
                                "ports": [
                                    {
                                        "containerPort": 3306,
                                        "protocol": "TCP"
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "securityContext": {
                                    "capabilities": {},
                                    "privileged": false
                                },
                                "terminationMessagePath": "/dev/termination-log",
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mysql/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "dnsPolicy": "ClusterFirst",
                        "restartPolicy": "Always",
                        "volumes": [
                            {
                                "emptyDir": {
                                    "medium": ""
                                },
                                "name": "${DATABASE_SERVICE_NAME}-data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mysql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mysql:${MYSQL_VERSION}",
                                "namespace": "${NAMESPACE}"
                            },
                            "lastTriggeredImage": ""
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            },
            "status": {}
        }
    ],
    "parameters": [
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "The name of the OpenShift Service exposed for the database.",
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "mysql"
        },
        {
            "description": "Username for MySQL user that will be used for accessing the database.",
            "displayName": "MySQL Connection Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "MYSQL_USER",
            "required": true
        },
        {
            "description": "Password for the MySQL connection user.",
            "displayName": "MySQL Connection Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MYSQL_PASSWORD",
            "required": true
        },
        {
            "description": "Password for the MySQL root user.",
            "displayName": "MySQL root user Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MYSQL_ROOT_PASSWORD",
            "required": true
        },
        {
            "description": "Name of the MySQL database accessed.",
            "displayName": "MySQL Database Name",
            "name": "MYSQL_DATABASE",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Version of MySQL image to be used (5.7, or latest).",
            "displayName": "Version of MySQL Image",
            "name": "MYSQL_VERSION",
            "required": true,
            "value": "5.7"
        }
    ]
}`)

func examplesDbTemplatesMysqlEphemeralTemplateJsonBytes() ([]byte, error) {
	return _examplesDbTemplatesMysqlEphemeralTemplateJson, nil
}

func examplesDbTemplatesMysqlEphemeralTemplateJson() (*asset, error) {
	bytes, err := examplesDbTemplatesMysqlEphemeralTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/db-templates/mysql-ephemeral-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesDbTemplatesMysqlPersistentTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "mysql-persistent-template"
    },
    "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${MYSQL_USER}\n       Password: ${MYSQL_PASSWORD}\n  Database Name: ${MYSQL_DATABASE}\n Connection URL: mysql://${DATABASE_SERVICE_NAME}:3306/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.7/root/usr/share/container-scripts/mysql/README.md.",
    "metadata": {
        "annotations": {
            "description": "MySQL database service, with persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.7/root/usr/share/container-scripts/mysql/README.md.\n\nNOTE: Scaling to more than one replica is not supported. You must have persistent volumes available in your cluster to use this template.",
            "iconClass": "icon-mysql-database",
            "openshift.io/display-name": "MySQL",
            "openshift.io/documentation-url": "https://docs.okd.io/latest/using_images/db_images/mysql.html",
            "openshift.io/long-description": "This template provides a standalone MySQL server with a database created.  The database is stored on persistent storage.  The database name, username, and password are chosen via parameters when provisioning this service.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "database,mysql"
        },
        "name": "mysql-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-database_name": "{.data['database-name']}",
                    "template.openshift.io/expose-password": "{.data['database-password']}",
                    "template.openshift.io/expose-root_password": "{.data['database-root-password']}",
                    "template.openshift.io/expose-username": "{.data['database-user']}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "stringData": {
                "database-name": "${MYSQL_DATABASE}",
                "database-password": "${MYSQL_PASSWORD}",
                "database-root-password": "${MYSQL_ROOT_PASSWORD}",
                "database-user": "${MYSQL_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-uri": "mysql://{.spec.clusterIP}:{.spec.ports[?(.name==\"mysql\")].port}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mysql",
                        "port": 3306
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "MYSQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_ROOT_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-root-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_DATABASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-name",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 3306
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mysql",
                                "ports": [
                                    {
                                        "containerPort": 3306
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mysql/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "name": "${DATABASE_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${DATABASE_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mysql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mysql:${MYSQL_VERSION}",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "The name of the OpenShift Service exposed for the database.",
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "mysql"
        },
        {
            "description": "Username for MySQL user that will be used for accessing the database.",
            "displayName": "MySQL Connection Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "MYSQL_USER",
            "required": true
        },
        {
            "description": "Password for the MySQL connection user.",
            "displayName": "MySQL Connection Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MYSQL_PASSWORD",
            "required": true
        },
        {
            "description": "Password for the MySQL root user.",
            "displayName": "MySQL root user Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "MYSQL_ROOT_PASSWORD",
            "required": true
        },
        {
            "description": "Name of the MySQL database accessed.",
            "displayName": "MySQL Database Name",
            "name": "MYSQL_DATABASE",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi.",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "1Gi"
        },
        {
            "description": "Version of MySQL image to be used (5.7, or latest).",
            "displayName": "Version of MySQL Image",
            "name": "MYSQL_VERSION",
            "required": true,
            "value": "5.7"
        }
    ]
}`)

func examplesDbTemplatesMysqlPersistentTemplateJsonBytes() ([]byte, error) {
	return _examplesDbTemplatesMysqlPersistentTemplateJson, nil
}

func examplesDbTemplatesMysqlPersistentTemplateJson() (*asset, error) {
	bytes, err := examplesDbTemplatesMysqlPersistentTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/db-templates/mysql-persistent-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesDbTemplatesPostgresqlEphemeralTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "postgresql-ephemeral-template"
    },
    "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${POSTGRESQL_USER}\n       Password: ${POSTGRESQL_PASSWORD}\n  Database Name: ${POSTGRESQL_DATABASE}\n Connection URL: postgresql://${DATABASE_SERVICE_NAME}:5432/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/.",
    "metadata": {
        "annotations": {
            "description": "PostgreSQL database service, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing",
            "iconClass": "icon-postgresql",
            "openshift.io/display-name": "PostgreSQL (Ephemeral)",
            "openshift.io/documentation-url": "https://docs.okd.io/latest/using_images/db_images/postgresql.html",
            "openshift.io/long-description": "This template provides a standalone PostgreSQL server with a database created.  The database is not stored on persistent storage, so any restart of the service will result in all data being lost.  The database name, username, and password are chosen via parameters when provisioning this service.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "database,postgresql"
        },
        "name": "postgresql-ephemeral"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-database_name": "{.data['database-name']}",
                    "template.openshift.io/expose-password": "{.data['database-password']}",
                    "template.openshift.io/expose-username": "{.data['database-user']}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "stringData": {
                "database-name": "${POSTGRESQL_DATABASE}",
                "database-password": "${POSTGRESQL_PASSWORD}",
                "database-user": "${POSTGRESQL_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-uri": "postgres://{.spec.clusterIP}:{.spec.ports[?(.name==\"postgresql\")].port}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "postgresql",
                        "nodePort": 0,
                        "port": 5432,
                        "protocol": "TCP",
                        "targetPort": 5432
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "sessionAffinity": "None",
                "type": "ClusterIP"
            },
            "status": {
                "loadBalancer": {}
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "capabilities": {},
                                "env": [
                                    {
                                        "name": "POSTGRESQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_DATABASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-name",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container",
                                            "--live"
                                        ]
                                    },
                                    "initialDelaySeconds": 120,
                                    "timeoutSeconds": 10
                                },
                                "name": "postgresql",
                                "ports": [
                                    {
                                        "containerPort": 5432,
                                        "protocol": "TCP"
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "securityContext": {
                                    "capabilities": {},
                                    "privileged": false
                                },
                                "terminationMessagePath": "/dev/termination-log",
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/pgsql/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "dnsPolicy": "ClusterFirst",
                        "restartPolicy": "Always",
                        "volumes": [
                            {
                                "emptyDir": {
                                    "medium": ""
                                },
                                "name": "${DATABASE_SERVICE_NAME}-data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "postgresql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "postgresql:${POSTGRESQL_VERSION}",
                                "namespace": "${NAMESPACE}"
                            },
                            "lastTriggeredImage": ""
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            },
            "status": {}
        }
    ],
    "parameters": [
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "The name of the OpenShift Service exposed for the database.",
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "postgresql"
        },
        {
            "description": "Username for PostgreSQL user that will be used for accessing the database.",
            "displayName": "PostgreSQL Connection Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "POSTGRESQL_USER",
            "required": true
        },
        {
            "description": "Password for the PostgreSQL connection user.",
            "displayName": "PostgreSQL Connection Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "POSTGRESQL_PASSWORD",
            "required": true
        },
        {
            "description": "Name of the PostgreSQL database accessed.",
            "displayName": "PostgreSQL Database Name",
            "name": "POSTGRESQL_DATABASE",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Version of PostgreSQL image to be used (10 or latest).",
            "displayName": "Version of PostgreSQL Image",
            "name": "POSTGRESQL_VERSION",
            "required": true,
            "value": "10"
        }
    ]
}`)

func examplesDbTemplatesPostgresqlEphemeralTemplateJsonBytes() ([]byte, error) {
	return _examplesDbTemplatesPostgresqlEphemeralTemplateJson, nil
}

func examplesDbTemplatesPostgresqlEphemeralTemplateJson() (*asset, error) {
	bytes, err := examplesDbTemplatesPostgresqlEphemeralTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/db-templates/postgresql-ephemeral-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesDbTemplatesPostgresqlPersistentTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "postgresql-persistent-template"
    },
    "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${POSTGRESQL_USER}\n       Password: ${POSTGRESQL_PASSWORD}\n  Database Name: ${POSTGRESQL_DATABASE}\n Connection URL: postgresql://${DATABASE_SERVICE_NAME}:5432/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/.",
    "metadata": {
        "annotations": {
            "description": "PostgreSQL database service, with persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/.\n\nNOTE: Scaling to more than one replica is not supported. You must have persistent volumes available in your cluster to use this template.",
            "iconClass": "icon-postgresql",
            "openshift.io/display-name": "PostgreSQL",
            "openshift.io/documentation-url": "https://docs.okd.io/latest/using_images/db_images/postgresql.html",
            "openshift.io/long-description": "This template provides a standalone PostgreSQL server with a database created.  The database is stored on persistent storage.  The database name, username, and password are chosen via parameters when provisioning this service.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "database,postgresql"
        },
        "name": "postgresql-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-database_name": "{.data['database-name']}",
                    "template.openshift.io/expose-password": "{.data['database-password']}",
                    "template.openshift.io/expose-username": "{.data['database-user']}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "stringData": {
                "database-name": "${POSTGRESQL_DATABASE}",
                "database-password": "${POSTGRESQL_PASSWORD}",
                "database-user": "${POSTGRESQL_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-uri": "postgres://{.spec.clusterIP}:{.spec.ports[?(.name==\"postgresql\")].port}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "postgresql",
                        "nodePort": 0,
                        "port": 5432,
                        "protocol": "TCP",
                        "targetPort": 5432
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "sessionAffinity": "None",
                "type": "ClusterIP"
            },
            "status": {
                "loadBalancer": {}
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "capabilities": {},
                                "env": [
                                    {
                                        "name": "POSTGRESQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_DATABASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-name",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container",
                                            "--live"
                                        ]
                                    },
                                    "initialDelaySeconds": 120,
                                    "timeoutSeconds": 10
                                },
                                "name": "postgresql",
                                "ports": [
                                    {
                                        "containerPort": 5432,
                                        "protocol": "TCP"
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "securityContext": {
                                    "capabilities": {},
                                    "privileged": false
                                },
                                "terminationMessagePath": "/dev/termination-log",
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/pgsql/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "dnsPolicy": "ClusterFirst",
                        "restartPolicy": "Always",
                        "volumes": [
                            {
                                "name": "${DATABASE_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${DATABASE_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "postgresql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "postgresql:${POSTGRESQL_VERSION}",
                                "namespace": "${NAMESPACE}"
                            },
                            "lastTriggeredImage": ""
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            },
            "status": {}
        }
    ],
    "parameters": [
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "The name of the OpenShift Service exposed for the database.",
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "postgresql"
        },
        {
            "description": "Username for PostgreSQL user that will be used for accessing the database.",
            "displayName": "PostgreSQL Connection Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "POSTGRESQL_USER",
            "required": true
        },
        {
            "description": "Password for the PostgreSQL connection user.",
            "displayName": "PostgreSQL Connection Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "POSTGRESQL_PASSWORD",
            "required": true
        },
        {
            "description": "Name of the PostgreSQL database accessed.",
            "displayName": "PostgreSQL Database Name",
            "name": "POSTGRESQL_DATABASE",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi.",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "1Gi"
        },
        {
            "description": "Version of PostgreSQL image to be used (10 or latest).",
            "displayName": "Version of PostgreSQL Image",
            "name": "POSTGRESQL_VERSION",
            "required": true,
            "value": "10"
        }
    ]
}`)

func examplesDbTemplatesPostgresqlPersistentTemplateJsonBytes() ([]byte, error) {
	return _examplesDbTemplatesPostgresqlPersistentTemplateJson, nil
}

func examplesDbTemplatesPostgresqlPersistentTemplateJson() (*asset, error) {
	bytes, err := examplesDbTemplatesPostgresqlPersistentTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/db-templates/postgresql-persistent-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesDbTemplatesRedisEphemeralTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "redis-ephemeral-template"
    },
    "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Password: ${REDIS_PASSWORD}\n Connection URL: redis://${DATABASE_SERVICE_NAME}:6379/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/redis-container/blob/master/3.2.",
    "metadata": {
        "annotations": {
            "description": "Redis in-memory data structure store, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/redis-container/blob/master/3.2.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing",
            "iconClass": "icon-redis",
            "openshift.io/display-name": "Redis (Ephemeral)",
            "openshift.io/documentation-url": "https://github.com/sclorg/redis-container/tree/master/3.2",
            "openshift.io/long-description": "This template provides a standalone Redis server.  The data is not stored on persistent storage, so any restart of the service will result in all data being lost.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "database,redis"
        },
        "name": "redis-ephemeral"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-password": "{.data['database-password']}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "stringData": {
                "database-password": "${REDIS_PASSWORD}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-uri": "redis://{.spec.clusterIP}:{.spec.ports[?(.name==\"redis\")].port}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "redis",
                        "nodePort": 0,
                        "port": 6379,
                        "protocol": "TCP",
                        "targetPort": 6379
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "sessionAffinity": "None",
                "type": "ClusterIP"
            },
            "status": {
                "loadBalancer": {}
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "capabilities": {},
                                "env": [
                                    {
                                        "name": "REDIS_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 6379
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "redis",
                                "ports": [
                                    {
                                        "containerPort": 6379,
                                        "protocol": "TCP"
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "test \"$(redis-cli -h 127.0.0.1 -a $REDIS_PASSWORD ping)\" == \"PONG\""
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "securityContext": {
                                    "capabilities": {},
                                    "privileged": false
                                },
                                "terminationMessagePath": "/dev/termination-log",
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/redis/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "dnsPolicy": "ClusterFirst",
                        "restartPolicy": "Always",
                        "volumes": [
                            {
                                "emptyDir": {
                                    "medium": ""
                                },
                                "name": "${DATABASE_SERVICE_NAME}-data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "redis"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "redis:${REDIS_VERSION}",
                                "namespace": "${NAMESPACE}"
                            },
                            "lastTriggeredImage": ""
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            },
            "status": {}
        }
    ],
    "parameters": [
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "The name of the OpenShift Service exposed for the database.",
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "redis"
        },
        {
            "description": "Password for the Redis connection user.",
            "displayName": "Redis Connection Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "REDIS_PASSWORD",
            "required": true
        },
        {
            "description": "Version of Redis image to be used (3.2 or latest).",
            "displayName": "Version of Redis Image",
            "name": "REDIS_VERSION",
            "required": true,
            "value": "3.2"
        }
    ]
}`)

func examplesDbTemplatesRedisEphemeralTemplateJsonBytes() ([]byte, error) {
	return _examplesDbTemplatesRedisEphemeralTemplateJson, nil
}

func examplesDbTemplatesRedisEphemeralTemplateJson() (*asset, error) {
	bytes, err := examplesDbTemplatesRedisEphemeralTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/db-templates/redis-ephemeral-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesDbTemplatesRedisPersistentTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "redis-persistent-template"
    },
    "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Password: ${REDIS_PASSWORD}\n Connection URL: redis://${DATABASE_SERVICE_NAME}:6379/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/redis-container/blob/master/3.2.",
    "metadata": {
        "annotations": {
            "description": "Redis in-memory data structure store, with persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/redis-container/blob/master/3.2.\n\nNOTE: You must have persistent volumes available in your cluster to use this template.",
            "iconClass": "icon-redis",
            "openshift.io/display-name": "Redis",
            "openshift.io/documentation-url": "https://github.com/sclorg/redis-container/tree/master/3.2",
            "openshift.io/long-description": "This template provides a standalone Redis server.  The data is stored on persistent storage.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "database,redis"
        },
        "name": "redis-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-password": "{.data['database-password']}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "stringData": {
                "database-password": "${REDIS_PASSWORD}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-uri": "redis://{.spec.clusterIP}:{.spec.ports[?(.name==\"redis\")].port}"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "redis",
                        "nodePort": 0,
                        "port": 6379,
                        "protocol": "TCP",
                        "targetPort": 6379
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "sessionAffinity": "None",
                "type": "ClusterIP"
            },
            "status": {
                "loadBalancer": {}
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "capabilities": {},
                                "env": [
                                    {
                                        "name": "REDIS_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${DATABASE_SERVICE_NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 6379
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "redis",
                                "ports": [
                                    {
                                        "containerPort": 6379,
                                        "protocol": "TCP"
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "test \"$(redis-cli -h 127.0.0.1 -a $REDIS_PASSWORD ping)\" == \"PONG\""
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "securityContext": {
                                    "capabilities": {},
                                    "privileged": false
                                },
                                "terminationMessagePath": "/dev/termination-log",
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/redis/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "dnsPolicy": "ClusterFirst",
                        "restartPolicy": "Always",
                        "volumes": [
                            {
                                "name": "${DATABASE_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${DATABASE_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "redis"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "redis:${REDIS_VERSION}",
                                "namespace": "${NAMESPACE}"
                            },
                            "lastTriggeredImage": ""
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            },
            "status": {}
        }
    ],
    "parameters": [
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "The name of the OpenShift Service exposed for the database.",
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "redis"
        },
        {
            "description": "Password for the Redis connection user.",
            "displayName": "Redis Connection Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "REDIS_PASSWORD",
            "required": true
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi.",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "1Gi"
        },
        {
            "description": "Version of Redis image to be used (3.2 or latest).",
            "displayName": "Version of Redis Image",
            "name": "REDIS_VERSION",
            "required": true,
            "value": "3.2"
        }
    ]
}`)

func examplesDbTemplatesRedisPersistentTemplateJsonBytes() ([]byte, error) {
	return _examplesDbTemplatesRedisPersistentTemplateJson, nil
}

func examplesDbTemplatesRedisPersistentTemplateJson() (*asset, error) {
	bytes, err := examplesDbTemplatesRedisPersistentTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/db-templates/redis-persistent-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesImageStreamsImageStreamsCentos7Json = []byte(`{
  "kind": "ImageStreamList",
  "apiVersion": "v1",
  "items": [
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": ".NET Core"
        },
        "name": "dotnet"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run .NET Core applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore/tree/master/2.1/build/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of .NET Core available on OpenShift, including major versions updates.",
              "iconClass": "icon-dotnet",
              "openshift.io/display-name": ".NET Core (Latest)",
              "sampleContextDir": "app",
              "sampleRef": "dotnetcore-2.1",
              "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git",
              "supports": "dotnet",
              "tags": "builder,.net,dotnet,dotnetcore"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "2.1"
            },
            "name": "latest"
          },
          {
            "annotations": {
              "description": "Build and run .NET Core 2.1 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore/tree/master/2.0/build/README.md.",
              "iconClass": "icon-dotnet",
              "openshift.io/display-name": ".NET Core 2.1",
              "sampleContextDir": "app",
              "sampleRef": "dotnetcore-2.1",
              "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git",
              "supports": "dotnet:2.1,dotnet",
              "tags": "builder,.net,dotnet,dotnetcore,rh-dotnet21",
              "version": "2.1"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.centos.org/dotnet/dotnet-21-centos7:latest"
            },
            "name": "2.1"
          },
          {
            "annotations": {
              "description": "RETIRED: Build and run .NET Core 2.0 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore/tree/master/2.0/build/README.md.",
              "iconClass": "icon-dotnet",
              "openshift.io/display-name": ".NET Core 2.0",
              "sampleContextDir": "app",
              "sampleRef": "dotnetcore-2.0",
              "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git",
              "supports": "dotnet:2.0,dotnet",
              "tags": "hidden,builder,.net,dotnet,dotnetcore,rh-dotnet20",
              "version": "2.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.centos.org/dotnet/dotnet-20-centos7:latest"
            },
            "name": "2.0"
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Apache HTTP Server (httpd)"
        },
        "name": "httpd"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and serve static content via Apache HTTP Server (httpd) on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Httpd available on OpenShift, including major versions updates.",
              "iconClass": "icon-apache",
              "openshift.io/display-name": "Apache HTTP Server (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/httpd-ex.git",
              "supports": "httpd",
              "tags": "builder,httpd"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "2.4"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and serve static content via Apache HTTP Server (httpd) 2.4 on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.",
              "iconClass": "icon-apache",
              "openshift.io/display-name": "Apache HTTP Server 2.4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/httpd-ex.git",
              "supports": "httpd",
              "tags": "builder,httpd",
              "version": "2.4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/httpd-24-centos7:latest"
            },
            "name": "2.4",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Jenkins"
        },
        "name": "jenkins"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a Jenkins server on CentOS 7. For more information about using this container image, including OpenShift considerations, see https://github.com/openshift/jenkins/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Jenkins available on OpenShift, including major versions updates.",
              "iconClass": "icon-jenkins",
              "openshift.io/display-name": "Jenkins (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "jenkins"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "2"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a Jenkins v2.x server on CentOS 7. For more information about using this container image, including OpenShift considerations, see https://github.com/openshift/jenkins/blob/master/README.md.",
              "iconClass": "icon-jenkins",
              "openshift.io/display-name": "Jenkins 2.X",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "jenkins",
              "version": "2.x"
            },
            "from": {
              "kind": "DockerImage",
              "name": "quay.io/openshift/origin-jenkins:v4.0"
            },
            "name": "2",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "MariaDB"
        },
        "name": "mariadb"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a MariaDB database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/tree/master/10.2/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MariaDB available on OpenShift, including major versions updates.",
              "iconClass": "icon-mariadb",
              "openshift.io/display-name": "MariaDB (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mariadb"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "10.2"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MariaDB 10.1 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/tree/master/10.1/README.md.",
              "iconClass": "icon-mariadb",
              "openshift.io/display-name": "MariaDB 10.1",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mariadb",
              "version": "10.1"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/mariadb-101-centos7:latest"
            },
            "name": "10.1",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MariaDB 10.2 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/tree/master/10.2/README.md.",
              "iconClass": "icon-mariadb",
              "openshift.io/display-name": "MariaDB 10.2",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mariadb",
              "version": "10.2"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/mariadb-102-centos7:latest"
            },
            "name": "10.2",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "MongoDB"
        },
        "name": "mongodb"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a MongoDB database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MongoDB available on OpenShift, including major versions updates.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mongodb"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "3.6"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MongoDB 2.4 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/2.4/README.md.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB 2.4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,mongodb",
              "version": "2.4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/mongodb-24-centos7:latest"
            },
            "name": "2.4",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MongoDB 2.6 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/2.6/README.md.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB 2.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,database,mongodb",
              "version": "2.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/mongodb-26-centos7:latest"
            },
            "name": "2.6",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MongoDB 3.2 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.2/README.md.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB 3.2",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mongodb",
              "version": "3.2"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/mongodb-32-centos7:latest"
            },
            "name": "3.2",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MongoDB 3.4 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.4/README.md.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB 3.4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mongodb",
              "version": "3.4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/mongodb-34-centos7:latest"
            },
            "name": "3.4",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MongoDB 3.6 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.6/README.md.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB 3.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mongodb",
              "version": "3.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/mongodb-36-centos7:latest"
            },
            "name": "3.6",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "MySQL"
        },
        "name": "mysql"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a MySQL database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MySQL available on OpenShift, including major versions updates.",
              "iconClass": "icon-mysql-database",
              "openshift.io/display-name": "MySQL (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "mysql"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "5.7"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MySQL 5.5 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/README.md.",
              "iconClass": "icon-mysql-database",
              "openshift.io/display-name": "MySQL 5.5",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,mysql",
              "version": "5.5"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/mysql-55-centos7:latest"
            },
            "name": "5.5",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MySQL 5.6 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/README.md.",
              "iconClass": "icon-mysql-database",
              "openshift.io/display-name": "MySQL 5.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,mysql",
              "version": "5.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/mysql-56-centos7:latest"
            },
            "name": "5.6",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MySQL 5.7 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/README.md.",
              "iconClass": "icon-mysql-database",
              "openshift.io/display-name": "MySQL 5.7",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "mysql",
              "version": "5.7"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/mysql-57-centos7:latest"
            },
            "name": "5.7",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Nginx HTTP server and a reverse proxy (nginx)"
        },
        "name": "nginx"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and serve static content via Nginx HTTP Server and a reverse proxy (nginx) on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/nginx-container/blob/master/1.8/README.md.",
              "iconClass": "icon-nginx",
              "openshift.io/display-name": "Nginx HTTP server and a reverse proxy 1.8",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nginx-ex.git",
              "supports": "nginx",
              "tags": "builder,nginx",
              "version": "1.8"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/nginx-18-centos7:latest"
            },
            "name": "1.8",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and serve static content via Nginx HTTP Server and a reverse proxy (nginx) on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/nginx-container/blob/master/1.10/README.md.",
              "iconClass": "icon-nginx",
              "openshift.io/display-name": "Nginx HTTP server and a reverse proxy 1.10",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nginx-ex.git",
              "supports": "nginx",
              "tags": "builder,nginx",
              "version": "1.10"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/nginx-110-centos7:latest"
            },
            "name": "1.10",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and serve static content via Nginx HTTP Server and a reverse proxy (nginx) on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/nginx-container/blob/master/1.12/README.md.",
              "iconClass": "icon-nginx",
              "openshift.io/display-name": "Nginx HTTP server and a reverse proxy 1.12",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nginx-ex.git",
              "supports": "nginx",
              "tags": "builder,nginx",
              "version": "1.12"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/nginx-112-centos7:latest"
            },
            "name": "1.12",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and serve static content via Nginx HTTP Server and a reverse proxy (nginx) on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/nginx-container/blob/master/1.12/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Nginx available on OpenShift, including major versions updates.",
              "iconClass": "icon-nginx",
              "openshift.io/display-name": "Nginx HTTP server and a reverse proxy (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nginx-ex.git",
              "supports": "nginx",
              "tags": "builder,nginx"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "1.12"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Node.js"
        },
        "name": "nodejs"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run Node.js applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/nodeshift/centos7-s2i-nodejs.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Node.js available on OpenShift, including major versions updates.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "supports": "nodejs",
              "tags": "builder,nodejs"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "11"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "DEPRECATED: Build and run Node.js 0.10 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/0.10/README.md.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js 0.10",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "supports": "nodejs:0.10,nodejs:0.1,nodejs",
              "tags": "hidden,nodejs",
              "version": "0.10"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/nodejs-010-centos7:latest"
            },
            "name": "0.10",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Node.js 4 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/4/README.md.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js 4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "supports": "nodejs:4,nodejs",
              "tags": "hidden,builder,nodejs",
              "version": "4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/nodejs-4-centos7:latest"
            },
            "name": "4",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Node.js 6 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/6/README.md.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js 6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "supports": "nodejs:6,nodejs",
              "tags": "builder,nodejs",
              "version": "6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/nodejs-6-centos7:latest"
            },
            "name": "6",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Node.js 8 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/8/README.md.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js 8",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "tags": "builder,nodejs",
              "version": "8"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/nodejs-8-centos7:latest"
            },
            "name": "8",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Node.js 8 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/nodeshift/centos7-s2i-nodejs.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js 8 (RHOAR)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "tags": "builder,nodejs",
              "version": "8"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/nodeshift/centos7-s2i-nodejs:8.x"
            },
            "name": "8-RHOAR",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Node.js 10 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/nodeshift/centos7-s2i-nodejs.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js 10",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "tags": "builder,nodejs",
              "version": "10"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/nodeshift/centos7-s2i-nodejs:10.x"
            },
            "name": "10",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Node.js 11 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/nodeshift/centos7-s2i-nodejs.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js 11",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "tags": "builder,nodejs",
              "version": "11"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/nodeshift/centos7-s2i-nodejs:11.x"
            },
            "name": "11",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Perl"
        },
        "name": "perl"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run Perl applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.20/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Perl available on OpenShift, including major versions updates.",
              "iconClass": "icon-perl",
              "openshift.io/display-name": "Perl (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/dancer-ex.git",
              "supports": "perl",
              "tags": "builder,perl"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "5.26"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Perl 5.16 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.16/README.md.",
              "iconClass": "icon-perl",
              "openshift.io/display-name": "Perl 5.16",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/dancer-ex.git",
              "supports": "perl:5.16,perl",
              "tags": "hidden,builder,perl",
              "version": "5.16"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/perl-516-centos7:latest"
            },
            "name": "5.16",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Perl 5.20 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.20/README.md.",
              "iconClass": "icon-perl",
              "openshift.io/display-name": "Perl 5.20",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/dancer-ex.git",
              "supports": "perl:5.20,perl",
              "tags": "hidden,builder,perl",
              "version": "5.20"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/perl-520-centos7:latest"
            },
            "name": "5.20",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Perl 5.24 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.24/README.md.",
              "iconClass": "icon-perl",
              "openshift.io/display-name": "Perl 5.24",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/dancer-ex.git",
              "supports": "perl:5.24,perl",
              "tags": "builder,perl",
              "version": "5.24"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/perl-524-centos7:latest"
            },
            "name": "5.24",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Perl 5.26 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.26/README.md.",
              "iconClass": "icon-perl",
              "openshift.io/display-name": "Perl 5.26",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/dancer-ex.git",
              "supports": "perl:5.26,perl",
              "tags": "builder,perl",
              "version": "5.26"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/perl-526-centos7:latest"
            },
            "name": "5.26",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "PHP"
        },
        "name": "php"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run PHP applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/7.1/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of PHP available on OpenShift, including major versions updates.",
              "iconClass": "icon-php",
              "openshift.io/display-name": "PHP (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/cakephp-ex.git",
              "supports": "php",
              "tags": "builder,php"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "7.1"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run PHP 5.5 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/5.5/README.md.",
              "iconClass": "icon-php",
              "openshift.io/display-name": "PHP 5.5",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/cakephp-ex.git",
              "supports": "php:5.5,php",
              "tags": "hidden,builder,php",
              "version": "5.5"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/php-55-centos7:latest"
            },
            "name": "5.5",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run PHP 5.6 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/5.6/README.md.",
              "iconClass": "icon-php",
              "openshift.io/display-name": "PHP 5.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/cakephp-ex.git",
              "supports": "php:5.6,php",
              "tags": "hidden,builder,php",
              "version": "5.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/php-56-centos7:latest"
            },
            "name": "5.6",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run PHP 7.0 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/7.0/README.md.",
              "iconClass": "icon-php",
              "openshift.io/display-name": "PHP 7.0",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/cakephp-ex.git",
              "supports": "php:7.0,php",
              "tags": "builder,php",
              "version": "7.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/php-70-centos7:latest"
            },
            "name": "7.0",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run PHP 7.1 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/7.1/README.md.",
              "iconClass": "icon-php",
              "openshift.io/display-name": "PHP 7.1",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/cakephp-ex.git",
              "supports": "php:7.1,php",
              "tags": "builder,php",
              "version": "7.1"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/php-71-centos7:latest"
            },
            "name": "7.1",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "PostgreSQL"
        },
        "name": "postgresql"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a PostgreSQL database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of PostgreSQL available on OpenShift, including major versions updates.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,postgresql"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "10"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a PostgreSQL 9.2 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL 9.2",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,postgresql",
              "version": "9.2"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/postgresql-92-centos7:latest"
            },
            "name": "9.2",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a PostgreSQL 9.4 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL 9.4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,database,postgresql",
              "version": "9.4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/postgresql-94-centos7:latest"
            },
            "name": "9.4",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a PostgreSQL 9.5 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL 9.5",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,postgresql",
              "version": "9.5"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/postgresql-95-centos7:latest"
            },
            "name": "9.5",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a PostgreSQL 9.6 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL 9.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,postgresql",
              "version": "9.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/postgresql-96-centos7:latest"
            },
            "name": "9.6",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a PostgreSQL 10 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL 10",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,postgresql",
              "version": "10"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/postgresql-10-centos7:latest"
            },
            "name": "10",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Python"
        },
        "name": "python"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run Python applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.6/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Python available on OpenShift, including major versions updates.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python",
              "tags": "builder,python"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "3.6"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Python 3.3 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.3/README.md.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python 3.3",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python:3.3,python",
              "tags": "hidden,builder,python",
              "version": "3.3"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/python-33-centos7:latest"
            },
            "name": "3.3",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Python 2.7 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/2.7/README.md.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python 2.7",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python:2.7,python",
              "tags": "builder,python",
              "version": "2.7"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/python-27-centos7:latest"
            },
            "name": "2.7",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Python 3.4 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.4/README.md.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python 3.4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python:3.4,python",
              "tags": "hidden,builder,python",
              "version": "3.4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/python-34-centos7:latest"
            },
            "name": "3.4",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Python 3.5 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.5/README.md.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python 3.5",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python:3.5,python",
              "tags": "builder,python",
              "version": "3.5"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/python-35-centos7:latest"
            },
            "name": "3.5",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Python 3.6 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.6/README.md.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python 3.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python:3.6,python",
              "tags": "builder,python",
              "version": "3.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/python-36-centos7:latest"
            },
            "name": "3.6",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Redis"
        },
        "name": "redis"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a Redis database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/redis-container/tree/master/3.2/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Redis available on OpenShift, including major versions updates.",
              "iconClass": "icon-redis",
              "openshift.io/display-name": "Redis (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "redis"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "3.2"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a Redis 3.2 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/redis-container/tree/master/3.2/README.md.",
              "iconClass": "icon-redis",
              "openshift.io/display-name": "Redis 3.2",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "redis",
              "version": "3.2"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/redis-32-centos7:latest"
            },
            "name": "3.2",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Ruby"
        },
        "name": "ruby"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run Ruby applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-ruby-container/tree/master/2.3/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.",
              "iconClass": "icon-ruby",
              "openshift.io/display-name": "Ruby (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/ruby-ex.git",
              "supports": "ruby",
              "tags": "builder,ruby"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "2.5"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Ruby 2.5 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-ruby-container/blob/master/2.5/README.md.",
              "iconClass": "icon-ruby",
              "openshift.io/display-name": "Ruby 2.5",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/ruby-ex.git",
              "supports": "ruby:2.5,ruby",
              "tags": "builder,ruby",
              "version": "2.5"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/centos/ruby-25-centos7:latest"
            },
            "name": "2.5",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "WildFly"
        },
        "name": "wildfly"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run WildFly applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of WildFly available on OpenShift, including major versions updates.",
              "iconClass": "icon-wildfly",
              "openshift.io/display-name": "WildFly (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git",
              "supports": "jee,java",
              "tags": "builder,wildfly,java"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "15.0"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run WildFly 8.1 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.",
              "iconClass": "icon-wildfly",
              "openshift.io/display-name": "WildFly 8.1",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git",
              "supports": "wildfly:8.1,jee,java",
              "tags": "builder,wildfly,java",
              "version": "8.1"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/wildfly-81-centos7:latest"
            },
            "name": "8.1",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run WildFly 9.0 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.",
              "iconClass": "icon-wildfly",
              "openshift.io/display-name": "WildFly 9.0",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git",
              "supports": "wildfly:9.0,jee,java",
              "tags": "builder,wildfly,java",
              "version": "9.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/wildfly-90-centos7:latest"
            },
            "name": "9.0",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run WildFly 10.0 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.",
              "iconClass": "icon-wildfly",
              "openshift.io/display-name": "WildFly 10.0",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git",
              "supports": "wildfly:10.0,jee,java",
              "tags": "builder,wildfly,java",
              "version": "10.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/wildfly-100-centos7:latest"
            },
            "name": "10.0",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run WildFly 10.1 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.",
              "iconClass": "icon-wildfly",
              "openshift.io/display-name": "WildFly 10.1",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git",
              "supports": "wildfly:10.1,jee,java",
              "tags": "builder,wildfly,java",
              "version": "10.1"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/wildfly-101-centos7:latest"
            },
            "name": "10.1",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run WildFly 11 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.",
              "iconClass": "icon-wildfly",
              "openshift.io/display-name": "WildFly 11",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git",
              "supports": "wildfly:11,jee,java",
              "tags": "builder,wildfly,java",
              "version": "11.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/wildfly-110-centos7:latest"
            },
            "name": "11.0",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run WildFly 12 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.",
              "iconClass": "icon-wildfly",
              "openshift.io/display-name": "WildFly 12",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git",
              "supports": "wildfly:12,jee,java",
              "tags": "builder,wildfly,java",
              "version": "12.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/wildfly-120-centos7:latest"
            },
            "name": "12.0",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run WildFly 13 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.",
              "iconClass": "icon-wildfly",
              "openshift.io/display-name": "WildFly 13",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git",
              "supports": "wildfly:13,jee,java",
              "tags": "builder,wildfly,java",
              "version": "13.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/wildfly-130-centos7:latest"
            },
            "name": "13.0",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run WildFly 14 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.",
              "iconClass": "icon-wildfly",
              "openshift.io/display-name": "WildFly 14",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git",
              "supports": "wildfly:14,jee,java",
              "tags": "builder,wildfly,java",
              "version": "14.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/wildfly-140-centos7:latest"
            },
            "name": "14.0",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run WildFly 15 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.",
              "iconClass": "icon-wildfly",
              "openshift.io/display-name": "WildFly 15",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/openshift/openshift-jee-sample.git",
              "supports": "wildfly:15,jee,java",
              "tags": "builder,wildfly,java",
              "version": "15.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "docker.io/openshift/wildfly-150-centos7:latest"
            },
            "name": "15.0",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    }
  ]
}
`)

func examplesImageStreamsImageStreamsCentos7JsonBytes() ([]byte, error) {
	return _examplesImageStreamsImageStreamsCentos7Json, nil
}

func examplesImageStreamsImageStreamsCentos7Json() (*asset, error) {
	bytes, err := examplesImageStreamsImageStreamsCentos7JsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/image-streams/image-streams-centos7.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesImageStreamsImageStreamsRhel7Json = []byte(`{
  "kind": "ImageStreamList",
  "apiVersion": "v1",
  "items": [
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": ".NET Core"
        },
        "name": "dotnet"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run .NET Core applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore/tree/master/2.2/build/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of .NET Core available on OpenShift, including major versions updates.",
              "iconClass": "icon-dotnet",
              "openshift.io/display-name": ".NET Core (Latest)",
              "sampleContextDir": "app",
              "sampleRef": "dotnetcore-2.2",
              "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git",
              "supports": "dotnet",
              "tags": "builder,.net,dotnet,dotnetcore"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "2.2"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run .NET Core 2.2 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore/tree/master/2.2/build/README.md.",
              "iconClass": "icon-dotnet",
              "openshift.io/display-name": ".NET Core 2.2",
              "sampleContextDir": "app",
              "sampleRef": "dotnetcore-2.2",
              "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git",
              "supports": "dotnet:2.2,dotnet",
              "tags": "builder,.net,dotnet,dotnetcore,rh-dotnet22",
              "version": "2.2"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/dotnet/dotnet-22-rhel7:2.2"
            },
            "name": "2.2",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run .NET Core 2.1 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore/tree/master/2.1/build/README.md.",
              "iconClass": "icon-dotnet",
              "openshift.io/display-name": ".NET Core 2.1",
              "sampleContextDir": "app",
              "sampleRef": "dotnetcore-2.1",
              "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git",
              "supports": "dotnet:2.1,dotnet",
              "tags": "builder,.net,dotnet,dotnetcore,rh-dotnet21",
              "version": "2.1"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/dotnet/dotnet-21-rhel7:2.1"
            },
            "name": "2.1",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "RETIRED: Build and run .NET Core 2.0 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore/tree/master/2.0/build/README.md.",
              "iconClass": "icon-dotnet",
              "openshift.io/display-name": ".NET Core 2.0",
              "sampleContextDir": "app",
              "sampleRef": "dotnetcore-2.0",
              "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git",
              "supports": "dotnet:2.0,dotnet",
              "tags": "hidden,builder,.net,dotnet,dotnetcore,rh-dotnet20",
              "version": "2.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/dotnet/dotnet-20-rhel7:2.0"
            },
            "name": "2.0",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run .NET Core 1.1 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore/tree/master/1.1/README.md.",
              "iconClass": "icon-dotnet",
              "openshift.io/display-name": ".NET Core 1.1",
              "sampleContextDir": "app",
              "sampleRef": "dotnetcore-1.1",
              "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git",
              "supports": "dotnet:1.1,dotnet",
              "tags": "builder,.net,dotnet,dotnetcore,rh-dotnetcore11",
              "version": "1.1"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/dotnet/dotnetcore-11-rhel7:1.1"
            },
            "name": "1.1",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run .NET Core 1.0 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore/tree/master/1.0/README.md.",
              "iconClass": "icon-dotnet",
              "openshift.io/display-name": ".NET Core 1.0",
              "sampleContextDir": "app",
              "sampleRef": "dotnetcore-1.0",
              "sampleRepo": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git",
              "supports": "dotnet:1.0,dotnet",
              "tags": "builder,.net,dotnet,dotnetcore,rh-dotnetcore10",
              "version": "1.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/dotnet/dotnetcore-10-rhel7:1.0"
            },
            "name": "1.0",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Apache HTTP Server (httpd)"
        },
        "name": "httpd"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and serve static content via Apache HTTP Server (httpd) on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Httpd available on OpenShift, including major versions updates.",
              "iconClass": "icon-apache",
              "openshift.io/display-name": "Apache HTTP Server (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/httpd-ex.git",
              "supports": "httpd",
              "tags": "builder,httpd"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "2.4"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and serve static content via Apache HTTP Server (httpd) 2.4 on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/httpd-container/blob/master/2.4/README.md.",
              "iconClass": "icon-apache",
              "openshift.io/display-name": "Apache HTTP Server 2.4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/httpd-ex.git",
              "supports": "httpd",
              "tags": "builder,httpd",
              "version": "2.4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/httpd-24-rhel7"
            },
            "name": "2.4",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Jenkins"
        },
        "name": "jenkins"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a Jenkins server on RHEL 7. For more information about using this container image, including OpenShift considerations, see https://github.com/openshift/jenkins/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Jenkins available on OpenShift, including major versions updates.",
              "iconClass": "icon-jenkins",
              "openshift.io/display-name": "Jenkins (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "jenkins"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "2"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a Jenkins 2.X server on RHEL 7. For more information about using this container image, including OpenShift considerations, see https://github.com/openshift/jenkins/blob/master/README.md.",
              "iconClass": "icon-jenkins",
              "openshift.io/display-name": "Jenkins 2.X",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "jenkins",
              "version": "2.x"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/openshift/jenkins-2-rhel7:v4.0"
            },
            "name": "2",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "MariaDB"
        },
        "name": "mariadb"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a MariaDB database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/tree/master/10.2/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MariaDB available on OpenShift, including major versions updates.",
              "iconClass": "icon-mariadb",
              "openshift.io/display-name": "MariaDB (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mariadb"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "10.2"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MariaDB 10.1 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/tree/master/10.1/README.md.",
              "iconClass": "icon-mariadb",
              "openshift.io/display-name": "MariaDB 10.1",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mariadb",
              "version": "10.1"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/mariadb-101-rhel7:latest"
            },
            "name": "10.1",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MariaDB 10.2 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/tree/master/10.2/README.md.",
              "iconClass": "icon-mariadb",
              "openshift.io/display-name": "MariaDB 10.2",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mariadb",
              "version": "10.2"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/mariadb-102-rhel7:latest"
            },
            "name": "10.2",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "MongoDB"
        },
        "name": "mongodb"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a MongoDB database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MongoDB available on OpenShift, including major versions updates.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "mongodb"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "3.6"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MongoDB 2.4 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/2.4/README.md.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB 2.4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,mongodb",
              "version": "2.4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/openshift3/mongodb-24-rhel7:latest"
            },
            "name": "2.4",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MongoDB 2.6 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/2.6/README.md.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB 2.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,database,mongodb",
              "version": "2.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/mongodb-26-rhel7:latest"
            },
            "name": "2.6",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MongoDB 3.2 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.2/README.md.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB 3.2",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mongodb",
              "version": "3.2"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/mongodb-32-rhel7:latest"
            },
            "name": "3.2",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MongoDB 3.4 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.4/README.md.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB 3.4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mongodb",
              "version": "3.4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/mongodb-34-rhel7:latest"
            },
            "name": "3.4",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MongoDB 3.6 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.6/README.md.",
              "iconClass": "icon-mongodb",
              "openshift.io/display-name": "MongoDB 3.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,mongodb",
              "version": "3.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/mongodb-36-rhel7:latest"
            },
            "name": "3.6",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "MySQL"
        },
        "name": "mysql"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a MySQL database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MySQL available on OpenShift, including major versions updates.",
              "iconClass": "icon-mysql-database",
              "openshift.io/display-name": "MySQL (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "mysql"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "5.7"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MySQL 5.5 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/README.md.",
              "iconClass": "icon-mysql-database",
              "openshift.io/display-name": "MySQL 5.5",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,mysql",
              "version": "5.5"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/openshift3/mysql-55-rhel7:latest"
            },
            "name": "5.5",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MySQL 5.6 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/README.md.",
              "iconClass": "icon-mysql-database",
              "openshift.io/display-name": "MySQL 5.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,mysql",
              "version": "5.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/mysql-56-rhel7:latest"
            },
            "name": "5.6",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a MySQL 5.7 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/README.md.",
              "iconClass": "icon-mysql-database",
              "openshift.io/display-name": "MySQL 5.7",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "mysql",
              "version": "5.7"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/mysql-57-rhel7:latest"
            },
            "name": "5.7",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Nginx HTTP server and a reverse proxy (nginx)"
        },
        "name": "nginx"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and serve static content via Nginx HTTP server and a reverse proxy (nginx) on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/nginx-container/blob/master/1.8/README.md.",
              "iconClass": "icon-nginx",
              "openshift.io/display-name": "Nginx HTTP server and a reverse proxy 1.8",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nginx-ex.git",
              "supports": "nginx",
              "tags": "builder,nginx",
              "version": "1.8"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/nginx-18-rhel7:latest"
            },
            "name": "1.8",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and serve static content via Nginx HTTP server and a reverse proxy (nginx) on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/nginx-container/blob/master/1.10/README.md.",
              "iconClass": "icon-nginx",
              "openshift.io/display-name": "Nginx HTTP server and a reverse proxy 1.10",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nginx-ex.git",
              "supports": "nginx",
              "tags": "builder,nginx",
              "version": "1.10"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/nginx-110-rhel7:latest"
            },
            "name": "1.10",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and serve static content via Nginx HTTP server and a reverse proxy (nginx) on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/nginx-container/blob/master/1.12/README.md.",
              "iconClass": "icon-nginx",
              "openshift.io/display-name": "Nginx HTTP server and a reverse proxy 1.12",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nginx-ex.git",
              "supports": "nginx",
              "tags": "builder,nginx",
              "version": "1.12"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/nginx-112-rhel7:latest"
            },
            "name": "1.12",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and serve static content via Nginx HTTP server and a reverse proxy (nginx) on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/nginx-container/blob/master/1.12/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Nginx available on OpenShift, including major versions updates.",
              "iconClass": "icon-nginx",
              "openshift.io/display-name": "Nginx HTTP server and a reverse proxy (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nginx-ex.git",
              "supports": "nginx",
              "tags": "builder,nginx"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "1.12"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Node.js"
        },
        "name": "nodejs"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run Node.js 10 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/nodeshift/centos7-s2i-nodejs.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Node.js available on OpenShift, including major versions updates.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "supports": "nodejs",
              "tags": "builder,nodejs"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "10"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "DEPRECATED: Build and run Node.js 0.10 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/0.10/README.md.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js 0.10",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "supports": "nodejs:0.10,nodejs:0.1,nodejs",
              "tags": "hidden,nodejs",
              "version": "0.10"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/openshift3/nodejs-010-rhel7:latest"
            },
            "name": "0.10",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Node.js 4 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/4/README.md.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js 4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "supports": "nodejs:4,nodejs",
              "tags": "hidden,builder,nodejs",
              "version": "4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/nodejs-4-rhel7:latest"
            },
            "name": "4",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Node.js 6 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js 6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "supports": "nodejs:6,nodejs",
              "tags": "builder,nodejs",
              "version": "6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/nodejs-6-rhel7:latest"
            },
            "name": "6",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Node.js 8 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "Node.js 8",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "tags": "builder,nodejs",
              "version": "8"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/nodejs-8-rhel7:latest"
            },
            "name": "8",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Node.js 8 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/nodeshift/centos7-s2i-nodejs.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "OpenShift Application Runtimes Node.js 8",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "tags": "builder,nodejs",
              "version": "8"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhoar-nodejs/nodejs-8"
            },
            "name": "8-RHOAR",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Node.js 10 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/nodeshift/centos7-s2i-nodejs.",
              "iconClass": "icon-nodejs",
              "openshift.io/display-name": "OpenShift Application Runtimes Node.js 10",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/nodejs-ex.git",
              "tags": "builder,nodejs",
              "version": "10"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhoar-nodejs/nodejs-10"
            },
            "name": "10",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Perl"
        },
        "name": "perl"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run Perl applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.20/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Perl available on OpenShift, including major versions updates.",
              "iconClass": "icon-perl",
              "openshift.io/display-name": "Perl (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/dancer-ex.git",
              "supports": "perl",
              "tags": "builder,perl"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "5.26"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Perl 5.16 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.16/README.md.",
              "iconClass": "icon-perl",
              "openshift.io/display-name": "Perl 5.16",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/dancer-ex.git",
              "supports": "perl:5.16,perl",
              "tags": "hidden,builder,perl",
              "version": "5.16"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/openshift3/perl-516-rhel7:latest"
            },
            "name": "5.16",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Perl 5.20 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.20/README.md.",
              "iconClass": "icon-perl",
              "openshift.io/display-name": "Perl 5.20",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/dancer-ex.git",
              "supports": "perl:5.20,perl",
              "tags": "hidden,builder,perl",
              "version": "5.20"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/perl-520-rhel7:latest"
            },
            "name": "5.20",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Perl 5.24 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.24/README.md.",
              "iconClass": "icon-perl",
              "openshift.io/display-name": "Perl 5.24",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/dancer-ex.git",
              "supports": "perl:5.24,perl",
              "tags": "builder,perl",
              "version": "5.24"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/perl-524-rhel7:latest"
            },
            "name": "5.24",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Perl 5.26 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.26/README.md.",
              "iconClass": "icon-perl",
              "openshift.io/display-name": "Perl 5.26",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/dancer-ex.git",
              "supports": "perl:5.26,perl",
              "tags": "builder,perl",
              "version": "5.26"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/perl-526-rhel7:latest"
            },
            "name": "5.26",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "PHP"
        },
        "name": "php"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run PHP applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/7.1/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of PHP available on OpenShift, including major versions updates.",
              "iconClass": "icon-php",
              "openshift.io/display-name": "PHP (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/cakephp-ex.git",
              "supports": "php",
              "tags": "builder,php"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "7.1"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run PHP 5.5 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/5.5/README.md.",
              "iconClass": "icon-php",
              "openshift.io/display-name": "PHP 5.5",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/cakephp-ex.git",
              "supports": "php:5.5,php",
              "tags": "hidden,builder,php",
              "version": "5.5"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/openshift3/php-55-rhel7:latest"
            },
            "name": "5.5",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run PHP 5.6 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/5.6/README.md.",
              "iconClass": "icon-php",
              "openshift.io/display-name": "PHP 5.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/cakephp-ex.git",
              "supports": "php:5.6,php",
              "tags": "hidden,builder,php",
              "version": "5.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/php-56-rhel7:latest"
            },
            "name": "5.6",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run PHP 7.0 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/7.0/README.md.",
              "iconClass": "icon-php",
              "openshift.io/display-name": "PHP 7.0",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/cakephp-ex.git",
              "supports": "php:7.0,php",
              "tags": "builder,php",
              "version": "7.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/php-70-rhel7:latest"
            },
            "name": "7.0",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run PHP 7.1 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/7.1/README.md.",
              "iconClass": "icon-php",
              "openshift.io/display-name": "PHP 7.1",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/cakephp-ex.git",
              "supports": "php:7.1,php",
              "tags": "builder,php",
              "version": "7.1"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/php-71-rhel7:latest"
            },
            "name": "7.1",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "PostgreSQL"
        },
        "name": "postgresql"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a PostgreSQL database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of PostgreSQL available on OpenShift, including major versions updates.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,postgresql"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "10"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a PostgreSQL 9.2 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL 9.2",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,postgresql",
              "version": "9.2"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/openshift3/postgresql-92-rhel7:latest"
            },
            "name": "9.2",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a PostgreSQL 9.4 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL 9.4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "hidden,database,postgresql",
              "version": "9.4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/postgresql-94-rhel7:latest"
            },
            "name": "9.4",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a PostgreSQL 9.5 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL 9.5",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,postgresql",
              "version": "9.5"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/postgresql-95-rhel7:latest"
            },
            "name": "9.5",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a PostgreSQL 9.6 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL (Ephemeral) 9.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,postgresql",
              "version": "9.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/postgresql-96-rhel7:latest"
            },
            "name": "9.6",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a PostgreSQL 10 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/README.md.",
              "iconClass": "icon-postgresql",
              "openshift.io/display-name": "PostgreSQL (Ephemeral) 10",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "database,postgresql",
              "version": "10"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/postgresql-10-rhel7:latest"
            },
            "name": "10",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Python"
        },
        "name": "python"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run Python applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.6/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Python available on OpenShift, including major versions updates.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python",
              "tags": "builder,python"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "3.6"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Python 3.3 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.3/README.md.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python 3.3",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python:3.3,python",
              "tags": "hidden,builder,python",
              "version": "3.3"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/openshift3/python-33-rhel7:latest"
            },
            "name": "3.3",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Python 2.7 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/2.7/README.md.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python 2.7",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python:2.7,python",
              "tags": "builder,python",
              "version": "2.7"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/python-27-rhel7:latest"
            },
            "name": "2.7",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Python 3.4 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.4/README.md.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python 3.4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python:3.4,python",
              "tags": "hidden,builder,python",
              "version": "3.4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/python-34-rhel7:latest"
            },
            "name": "3.4",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Python 3.5 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.5/README.md.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python 3.5",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python:3.5,python",
              "tags": "builder,python",
              "version": "3.5"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/python-35-rhel7:latest"
            },
            "name": "3.5",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Python 3.6 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.6/README.md.",
              "iconClass": "icon-python",
              "openshift.io/display-name": "Python 3.6",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/django-ex.git",
              "supports": "python:3.6,python",
              "tags": "builder,python",
              "version": "3.6"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/python-36-rhel7:latest"
            },
            "name": "3.6",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Redis"
        },
        "name": "redis"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Provides a Redis database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/redis-container/tree/master/3.2/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Redis available on OpenShift, including major versions updates.",
              "iconClass": "icon-redis",
              "openshift.io/display-name": "Redis (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "redis"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "3.2"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Provides a Redis 3.2 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/redis-container/tree/master/3.2/README.md.",
              "iconClass": "icon-redis",
              "openshift.io/display-name": "Redis 3.2",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "tags": "redis",
              "version": "3.2"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/redis-32-rhel7:latest"
            },
            "name": "3.2",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ImageStream",
      "metadata": {
        "annotations": {
          "openshift.io/display-name": "Ruby"
        },
        "name": "ruby"
      },
      "spec": {
        "tags": [
          {
            "annotations": {
              "description": "Build and run Ruby applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-ruby-container/tree/master/2.3/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.",
              "iconClass": "icon-ruby",
              "openshift.io/display-name": "Ruby (Latest)",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/ruby-ex.git",
              "supports": "ruby",
              "tags": "builder,ruby"
            },
            "from": {
              "kind": "ImageStreamTag",
              "name": "2.5"
            },
            "name": "latest",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Ruby 2.0 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-ruby-container/tree/master/2.0/README.md.",
              "iconClass": "icon-ruby",
              "openshift.io/display-name": "Ruby 2.0",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/ruby-ex.git",
              "supports": "ruby:2.0,ruby",
              "tags": "hidden,builder,ruby",
              "version": "2.0"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/openshift3/ruby-20-rhel7:latest"
            },
            "name": "2.0",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Ruby 2.2 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-ruby-container/tree/master/2.2/README.md.",
              "iconClass": "icon-ruby",
              "openshift.io/display-name": "Ruby 2.2",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/ruby-ex.git",
              "supports": "ruby:2.2,ruby",
              "tags": "hidden,builder,ruby",
              "version": "2.2"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/ruby-22-rhel7:latest"
            },
            "name": "2.2",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Ruby 2.3 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-ruby-container/blob/master/2.3/README.md.",
              "iconClass": "icon-ruby",
              "openshift.io/display-name": "Ruby 2.3",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/ruby-ex.git",
              "supports": "ruby:2.3,ruby",
              "tags": "builder,ruby",
              "version": "2.3"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/ruby-23-rhel7:latest"
            },
            "name": "2.3",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Ruby 2.4 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-ruby-container/blob/master/2.4/README.md.",
              "iconClass": "icon-ruby",
              "openshift.io/display-name": "Ruby 2.4",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/ruby-ex.git",
              "supports": "ruby:2.4,ruby",
              "tags": "builder,ruby",
              "version": "2.4"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/ruby-24-rhel7:latest"
            },
            "name": "2.4",
            "referencePolicy": {
              "type": "Local"
            }
          },
          {
            "annotations": {
              "description": "Build and run Ruby 2.5 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-ruby-container/blob/master/2.5/README.md.",
              "iconClass": "icon-ruby",
              "openshift.io/display-name": "Ruby 2.5",
              "openshift.io/provider-display-name": "Red Hat, Inc.",
              "sampleRepo": "https://github.com/sclorg/ruby-ex.git",
              "supports": "ruby:2.5,ruby",
              "tags": "builder,ruby",
              "version": "2.5"
            },
            "from": {
              "kind": "DockerImage",
              "name": "registry.redhat.io/rhscl/ruby-25-rhel7:latest"
            },
            "name": "2.5",
            "referencePolicy": {
              "type": "Local"
            }
          }
        ]
      }
    }
  ]
}
`)

func examplesImageStreamsImageStreamsRhel7JsonBytes() ([]byte, error) {
	return _examplesImageStreamsImageStreamsRhel7Json, nil
}

func examplesImageStreamsImageStreamsRhel7Json() (*asset, error) {
	bytes, err := examplesImageStreamsImageStreamsRhel7JsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/image-streams/image-streams-rhel7.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesSampleAppApplicationTemplateDockerbuildJson = []byte(`{
  "kind": "Template",
  "apiVersion": "v1",
  "metadata": {
    "name": "ruby-helloworld-sample",
    "annotations": {
      "description": "This example shows how to create a simple ruby application in openshift origin v3",
      "iconClass": "icon-ruby",
      "tags": "instant-app,ruby,mysql"
    }
  },
  "objects": [
    {
      "kind": "Secret",
      "apiVersion": "v1",
      "metadata": {
        "name": "dbsecret"
      },
      "stringData" : {
        "mysql-user" : "${MYSQL_USER}",
        "mysql-password" : "${MYSQL_PASSWORD}"
      }
    },
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "ports": [
          {
            "name": "web",
            "protocol": "TCP",
            "port": 5432,
            "targetPort": 8080,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "frontend"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {}
      }
    },
    {
      "kind": "Route",
      "apiVersion": "v1",
      "metadata": {
        "name": "route-edge",
        "annotations": {
          "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}"
        }
      },
      "spec": {
        "host": "www.example.com",
        "to": {
          "kind": "Service",
          "name": "frontend"
        },
        "tls": {
          "termination": "edge"
        }
      },
      "status": {}
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-ruby-sample"
      },
      "spec": {},
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-25-centos7"
      },
      "spec": {
        "dockerImageRepository": "centos/ruby-25-centos7"
      },
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-sample-build",
        "labels": {
          "name": "ruby-sample-build"
        },
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "triggers": [
          {
            "type": "GitHub",
            "github": {
              "secret": "secret101"
            }
          },
          {
            "type": "Generic",
            "generic": {
              "secret": "secret101",
              "allowEnv": true
            }
          },
          {
            "type": "ImageChange",
            "imageChange": {}
          },
          {
            "type": "ConfigChange"
          }
        ],
        "source": {
          "type": "Git",
          "git": {
            "uri": "https://github.com/openshift/ruby-hello-world.git"
          }
        },
        "strategy": {
          "type": "Docker",
          "dockerStrategy": {
            "from": {
              "kind": "ImageStreamTag",
              "name": "ruby-25-centos7:latest"
            },
            "env": [
              {
                "name": "EXAMPLE",
                "value": "sample-app"
              }
            ]
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "origin-ruby-sample:latest"
          }
        },
        "postCommit": {
          "script": "bundle exec rake test"
        },
        "resources": {}
      },
      "status": {
        "lastVersion": 0
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend",
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "strategy": {
          "type": "Rolling",
          "rollingParams": {
            "updatePeriodSeconds": 1,
            "intervalSeconds": 1,
            "timeoutSeconds": 120,
            "pre": {
              "failurePolicy": "Abort",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR1",
                    "value": "custom_value1"
                  }
                ],
                "containerName": "ruby-helloworld"
              }
            },
            "post": {
              "failurePolicy": "Ignore",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR2",
                    "value": "custom_value2"
                  }
                ],
                "containerName": "ruby-helloworld"
              }
            }
          },
          "resources": {}
        },
        "triggers": [
          {
            "type": "ImageChange",
            "imageChangeParams": {
              "automatic": true,
              "containerNames": [
                "ruby-helloworld"
              ],
              "from": {
                "kind": "ImageStreamTag",
                "name": "origin-ruby-sample:latest"
              }
            }
          },
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 2,
        "selector": {
          "name": "frontend"
        },
        "template": {
          "metadata": {
            "labels": {
              "name": "frontend"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "ruby-helloworld",
                "image": "origin-ruby-sample",
                "ports": [
                  {
                    "containerPort": 8080,
                    "protocol": "TCP"
                  }
                ],
                "env": [
                  {
                    "name": "MYSQL_USER",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-user"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_PASSWORD",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-password"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_DATABASE",
                    "value": "${MYSQL_DATABASE}"
                  }
                ],
                "resources": {},
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "IfNotPresent",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      },
      "status": {}
    },
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "database"
      },
      "spec": {
        "ports": [
          {
            "name": "db",
            "protocol": "TCP",
            "port": 5434,
            "targetPort": 3306,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "database"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {}
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "database",
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "strategy": {
          "type": "Recreate",
          "resources": {}
        },
        "triggers": [
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 1,
        "selector": {
          "name": "database"
        },
        "template": {
          "metadata": {
            "labels": {
              "name": "database"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "ruby-helloworld-database",
                "image": "centos/mysql-57-centos7:latest",
                "ports": [
                  {
                    "containerPort": 3306,
                    "protocol": "TCP"
                  }
                ],
                "env": [
                  {
                    "name": "MYSQL_USER",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-user"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_PASSWORD",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-password"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_DATABASE",
                    "value": "${MYSQL_DATABASE}"
                  }
                ],
                "resources": {},
                "volumeMounts": [
                  {
                    "name": "ruby-helloworld-data",
                    "mountPath": "/var/lib/mysql/data"
                  }
                ],
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "Always",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "volumes": [
              {
                "name": "ruby-helloworld-data",
                "emptyDir": {
                  "medium": ""
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      },
      "status": {}
    }
  ],
  "parameters": [
    {
      "name": "MYSQL_USER",
      "description": "database username",
      "generate": "expression",
      "from": "user[A-Z0-9]{3}",
      "required": true
    },
    {
      "name": "MYSQL_PASSWORD",
      "description": "database password",
      "generate": "expression",
      "from": "[a-zA-Z0-9]{8}",
      "required": true
    },
    {
      "name": "MYSQL_DATABASE",
      "description": "database name",
      "value": "root",
      "required": true
    }
  ],
  "labels": {
    "template": "application-template-dockerbuild"
  }
}
`)

func examplesSampleAppApplicationTemplateDockerbuildJsonBytes() ([]byte, error) {
	return _examplesSampleAppApplicationTemplateDockerbuildJson, nil
}

func examplesSampleAppApplicationTemplateDockerbuildJson() (*asset, error) {
	bytes, err := examplesSampleAppApplicationTemplateDockerbuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/sample-app/application-template-dockerbuild.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesSampleAppApplicationTemplatePullspecbuildJson = []byte(`{
  "kind": "Template",
  "apiVersion": "v1",
  "metadata": {
    "name": "ruby-helloworld-sample",
    "annotations": {
      "description": "This example shows how to create a simple ruby application in openshift origin v3",
      "iconClass": "icon-ruby",
      "tags": "instant-app,ruby,mysql"
    }
  },
  "objects": [
    {
      "kind": "Secret",
      "apiVersion": "v1",
      "metadata": {
        "name": "dbsecret"
      },
      "stringData" : {
        "mysql-user" : "${MYSQL_USER}",
        "mysql-password" : "${MYSQL_PASSWORD}"
      }
    },
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "ports": [
          {
            "name": "web",
            "protocol": "TCP",
            "port": 5432,
            "targetPort": 8080,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "frontend"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {}
      }
    },
    {
      "kind": "Route",
      "apiVersion": "v1",
      "metadata": {
        "name": "route-edge",
        "annotations": {
          "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}"
        }
      },
      "spec": {
        "host": "www.example.com",
        "to": {
          "kind": "Service",
          "name": "frontend"
        },
        "tls": {
          "termination": "edge"
        }
      },
      "status": {}
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-ruby-sample"
      },
      "spec": {},
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-25-centos7"
      },
      "spec": {
        "dockerImageRepository": "centos/ruby-25-centos7"
      },
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-sample-build",
        "labels": {
          "name": "ruby-sample-build"
        },
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "triggers": [
          {
            "type": "GitHub",
            "github": {
              "secret": "secret101"
            }
          },
          {
            "type": "Generic",
            "generic": {
              "secret": "secret101",
              "allowEnv": true
            }
          },
          {
            "type": "ConfigChange"
          }
        ],
        "source": {
          "type": "Git",
          "git": {
            "uri": "https://github.com/openshift/ruby-hello-world.git"
          }
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "DockerImage",
              "name": "centos/ruby-25-centos7:latest"
            }
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "origin-ruby-sample:latest"
          }
        },
        "postCommit": {
          "script": "bundle exec rake test"
        },
        "resources": {}
      },
      "status": {
        "lastVersion": 0
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend",
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "strategy": {
          "type": "Rolling",
          "rollingParams": {
            "updatePeriodSeconds": 1,
            "intervalSeconds": 1,
            "timeoutSeconds": 120,
            "pre": {
              "failurePolicy": "Abort",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR1",
                    "value": "custom_value1"
                  }
                ],
                "containerName": "ruby-helloworld"
              }
            },
            "post": {
              "failurePolicy": "Ignore",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR2",
                    "value": "custom_value2"
                  }
                ],
                "containerName": "ruby-helloworld"
              }
            }
          },
          "resources": {}
        },
        "triggers": [
          {
            "type": "ImageChange",
            "imageChangeParams": {
              "automatic": true,
              "containerNames": [
                "ruby-helloworld"
              ],
              "from": {
                "kind": "ImageStreamTag",
                "name": "origin-ruby-sample:latest"
              }
            }
          },
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 2,
        "selector": {
          "name": "frontend"
        },
        "template": {
          "metadata": {
            "labels": {
              "name": "frontend"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "ruby-helloworld",
                "image": "origin-ruby-sample",
                "ports": [
                  {
                    "containerPort": 8080,
                    "protocol": "TCP"
                  }
                ],
                "env": [
                  {
                    "name": "MYSQL_USER",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-user"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_PASSWORD",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-password"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_DATABASE",
                    "value": "${MYSQL_DATABASE}"
                  }
                ],
                "resources": {},
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "IfNotPresent",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      },
      "status": {}
    },
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "database"
      },
      "spec": {
        "ports": [
          {
            "name": "db",
            "protocol": "TCP",
            "port": 5434,
            "targetPort": 3306,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "database"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {}
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "database",
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "strategy": {
          "type": "Recreate",
          "recreateParams": {
            "pre": {
              "failurePolicy": "Abort",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR1",
                    "value": "custom_value1"
                  }
                ],
                "containerName": "ruby-helloworld-database",
                "volumes": ["ruby-helloworld-data"]
              }
            },
            "mid": {
              "failurePolicy": "Abort",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR2",
                    "value": "custom_value2"
                  }
                ],
                "containerName": "ruby-helloworld-database",
                "volumes": ["ruby-helloworld-data"]
              }
            },
            "post": {
              "failurePolicy": "Ignore",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR2",
                    "value": "custom_value2"
                  }
                ],
                "containerName": "ruby-helloworld-database",
                "volumes": ["ruby-helloworld-data"]
              }
            }
          },
          "resources": {}
        },
        "triggers": [
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 1,
        "selector": {
          "name": "database"
        },
        "template": {
          "metadata": {
            "labels": {
              "name": "database"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "ruby-helloworld-database",
                "image": "centos/mysql-57-centos7:latest",
                "ports": [
                  {
                    "containerPort": 3306,
                    "protocol": "TCP"
                  }
                ],
                "env": [
                  {
                    "name": "MYSQL_USER",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-user"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_PASSWORD",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-password"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_DATABASE",
                    "value": "${MYSQL_DATABASE}"
                  }
                ],
                "resources": {},
                "volumeMounts": [
                  {
                    "name": "ruby-helloworld-data",
                    "mountPath": "/var/lib/mysql/data"
                  }
                ],
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "Always",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "volumes": [
              {
                "name": "ruby-helloworld-data",
                "emptyDir": {
                  "medium": ""
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      },
      "status": {}
    }
  ],
  "parameters": [
    {
      "name": "MYSQL_USER",
      "description": "database username",
      "generate": "expression",
      "from": "user[A-Z0-9]{3}",
      "required": true
    },
    {
      "name": "MYSQL_PASSWORD",
      "description": "database password",
      "generate": "expression",
      "from": "[a-zA-Z0-9]{8}",
      "required": true
    },
    {
      "name": "MYSQL_DATABASE",
      "description": "database name",
      "value": "root",
      "required": true
    }
  ],
  "labels": {
    "template": "application-template-stibuild"
  }
}
`)

func examplesSampleAppApplicationTemplatePullspecbuildJsonBytes() ([]byte, error) {
	return _examplesSampleAppApplicationTemplatePullspecbuildJson, nil
}

func examplesSampleAppApplicationTemplatePullspecbuildJson() (*asset, error) {
	bytes, err := examplesSampleAppApplicationTemplatePullspecbuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/sample-app/application-template-pullspecbuild.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesSampleAppApplicationTemplateStibuildJson = []byte(`{
  "kind": "Template",
  "apiVersion": "v1",
  "metadata": {
    "name": "ruby-helloworld-sample",
    "annotations": {
      "description": "This example shows how to create a simple ruby application in openshift origin v3",
      "iconClass": "icon-ruby",
      "tags": "instant-app,ruby,mysql"
    }
  },
  "objects": [
    {
      "kind": "Secret",
      "apiVersion": "v1",
      "metadata": {
        "name": "dbsecret"
      },
      "stringData" : {
        "mysql-user" : "${MYSQL_USER}",
        "mysql-password" : "${MYSQL_PASSWORD}"
      }
    },
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "ports": [
          {
            "name": "web",
            "protocol": "TCP",
            "port": 5432,
            "targetPort": 8080,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "frontend"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {}
      }
    },
    {
      "kind": "Route",
      "apiVersion": "v1",
      "metadata": {
        "name": "route-edge",
        "annotations": {
          "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}"
        }
     },
      "spec": {
        "host": "www.example.com",
        "to": {
          "kind": "Service",
          "name": "frontend"
        },
        "tls": {
          "termination": "edge"
        }
      },
      "status": {}
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-ruby-sample"
      },
      "spec": {},
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-25-centos7"
      },
      "spec": {
        "dockerImageRepository": "centos/ruby-25-centos7"
      },
      "status": {
        "dockerImageRepository": ""
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "ruby-sample-build",
        "labels": {
          "name": "ruby-sample-build"
        },
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "triggers": [
          {
            "type": "GitHub",
            "github": {
              "secret": "secret101"
            }
          },
          {
            "type": "Generic",
            "generic": {
              "secret": "secret101",
              "allowEnv": true
            }
          },
          {
            "type": "ImageChange",
            "imageChange": {}
          },
          {
            "type": "ConfigChange"
          }
        ],
        "source": {
          "type": "Git",
          "git": {
            "uri": "https://github.com/openshift/ruby-hello-world.git"
          }
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "ImageStreamTag",
              "name": "ruby-25-centos7:latest"
            },
            "env": [
              {
                "name": "EXAMPLE",
                "value": "sample-app"
              }
            ]
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "origin-ruby-sample:latest"
          }
        },
        "postCommit": {
          "script": "bundle exec rake test"
        },
        "resources": {}
      },
      "status": {
        "lastVersion": 0
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend",
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "strategy": {
          "type": "Rolling",
          "rollingParams": {
            "updatePeriodSeconds": 1,
            "intervalSeconds": 1,
            "timeoutSeconds": 120,
            "pre": {
              "failurePolicy": "Abort",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR1",
                    "value": "custom_value1"
                  }
                ],
                "containerName": "ruby-helloworld"
              }
            },
            "post": {
              "failurePolicy": "Ignore",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR2",
                    "value": "custom_value2"
                  }
                ],
                "containerName": "ruby-helloworld"
              }
            }
          },
          "resources": {}
        },
        "triggers": [
          {
            "type": "ImageChange",
            "imageChangeParams": {
              "automatic": true,
              "containerNames": [
                "ruby-helloworld"
              ],
              "from": {
                "kind": "ImageStreamTag",
                "name": "origin-ruby-sample:latest"
              }
            }
          },
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 2,
        "selector": {
          "name": "frontend"
        },
        "template": {
          "metadata": {
            "labels": {
              "name": "frontend"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "ruby-helloworld",
                "image": "origin-ruby-sample",
                "ports": [
                  {
                    "containerPort": 8080,
                    "protocol": "TCP"
                  }
                ],
                "env": [
                  {
                    "name": "MYSQL_USER",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-user"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_PASSWORD",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-password"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_DATABASE",
                    "value": "${MYSQL_DATABASE}"
                  }
                ],
                "resources": {},
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "IfNotPresent",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      },
      "status": {}
    },
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "database"
      },
      "spec": {
        "ports": [
          {
            "name": "db",
            "protocol": "TCP",
            "port": 5434,
            "targetPort": 3306,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "database"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {}
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "database",
        "annotations": {
          "template.alpha.openshift.io/wait-for-ready": "true"
        }
      },
      "spec": {
        "strategy": {
          "type": "Recreate",
          "recreateParams": {
            "pre": {
              "failurePolicy": "Abort",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR1",
                    "value": "custom_value1"
                  }
                ],
                "containerName": "ruby-helloworld-database",
                "volumes": ["ruby-helloworld-data"]
              }
            },
            "mid": {
              "failurePolicy": "Abort",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR2",
                    "value": "custom_value2"
                  }
                ],
                "containerName": "ruby-helloworld-database",
                "volumes": ["ruby-helloworld-data"]
              }
            },
            "post": {
              "failurePolicy": "Ignore",
              "execNewPod": {
                "command": [
                  "/bin/true"
                ],
                "env": [
                  {
                    "name": "CUSTOM_VAR2",
                    "value": "custom_value2"
                  }
                ],
                "containerName": "ruby-helloworld-database",
                "volumes": ["ruby-helloworld-data"]
              }
            }
          },
          "resources": {}
        },
        "triggers": [
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 1,
        "selector": {
          "name": "database"
        },
        "template": {
          "metadata": {
            "labels": {
              "name": "database"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "ruby-helloworld-database",
                "image": "centos/mysql-57-centos7:latest",
                "ports": [
                  {
                    "containerPort": 3306,
                    "protocol": "TCP"
                  }
                ],
                "env": [
                  {
                    "name": "MYSQL_USER",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-user"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_PASSWORD",
                    "valueFrom": {
                      "secretKeyRef" : {
                        "name" : "dbsecret",
                        "key" : "mysql-password"
                      }
                    }
                  },
                  {
                    "name": "MYSQL_DATABASE",
                    "value": "${MYSQL_DATABASE}"
                  }
                ],
                "resources": {},
                "volumeMounts": [
                  {
                    "name": "ruby-helloworld-data",
                    "mountPath": "/var/lib/mysql/data"
                  }
                ],
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "Always",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "volumes": [
              {
                "name": "ruby-helloworld-data",
                "emptyDir": {
                  "medium": ""
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      },
      "status": {}
    }
  ],
  "parameters": [
    {
      "name": "MYSQL_USER",
      "description": "database username",
      "generate": "expression",
      "from": "user[A-Z0-9]{3}",
      "required": true
    },
    {
      "name": "MYSQL_PASSWORD",
      "description": "database password",
      "generate": "expression",
      "from": "[a-zA-Z0-9]{8}",
      "required": true
    },
    {
      "name": "MYSQL_DATABASE",
      "description": "database name",
      "value": "root",
      "required": true
    }
  ],
  "labels": {
    "template": "application-template-stibuild"
  }
}
`)

func examplesSampleAppApplicationTemplateStibuildJsonBytes() ([]byte, error) {
	return _examplesSampleAppApplicationTemplateStibuildJson, nil
}

func examplesSampleAppApplicationTemplateStibuildJson() (*asset, error) {
	bytes, err := examplesSampleAppApplicationTemplateStibuildJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/sample-app/application-template-stibuild.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesSampleAppCleanupSh = []byte(`#!/bin/sh

echo "Killing openshift all-in-one server ..."
sudo pkill -x openshift

echo "Stopping all k8s docker containers on host ..."
sudo docker ps --format='{{.Names}}' | grep -E '^k8s_' | xargs -l -r sudo docker stop

echo "Unmounting openshift local volumes ..."
mount | grep "openshift.local.volumes" | awk '{ print $3}' | xargs -l -r sudo umount

echo "Cleaning up openshift runtime files ..."
sudo rm -rf openshift.local.*


`)

func examplesSampleAppCleanupShBytes() ([]byte, error) {
	return _examplesSampleAppCleanupSh, nil
}

func examplesSampleAppCleanupSh() (*asset, error) {
	bytes, err := examplesSampleAppCleanupShBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/sample-app/cleanup.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesSampleAppGithubWebhookExampleJson = []byte(`{
  "after": "9bdc3a26ff933b32f3e558636b58aea86a69f051",
  "before": "0000000000000000000000000000000000000000",
  "commits": [
    {
      "added": [
        "LICENSE"
      ],
      "author": {
        "email": "anonUser@example.com",
        "name": "Anonymous User"
      },
      "committer": {
        "email": "anonUser@example.com",
        "name": "Anonymous User"
      },
      "distinct": true,
      "id": "9bdc3a26ff933b32f3e558636b58aea86a69f051",
      "message": "Added license",
      "modified": [],
      "removed": [],
      "timestamp": "2014-08-28T16:55:36+02:00",
      "url": "https://github.com/anonUser/anonRepo/commit/9bdc3a26ff933b32f3e558636b58aea86a69f051"
    }
  ],
  "compare": "https://github.com/anonUser/anonRepo/commit/9bdc3a26ff93",
  "created": true,
  "deleted": false,
  "forced": true,
  "head_commit": {
    "added": [
      "LICENSE"
    ],
    "author": {
      "email": "anonUser@example.com",
      "name": "Anonymous User"
    },
    "committer": {
      "email": "anonUser@example.com",
      "name": "Anonymous User"
    },
    "distinct": true,
    "id": "",
    "message": "Added license",
    "modified": [],
    "removed": [],
    "timestamp": "2014-08-28T16:55:36+02:00",
    "url": "https://github.com/anonUser/anonRepo/commit/9bdc3a26ff933b32f3e558636b58aea86a69f051"
  },
  "pusher": {
    "email": "anonUser@example.com",
    "name": "anonUser"
  },
  "ref": "refs/heads/master",
  "repository": {
    "archive_url": "https://api.github.com/repos/anonUser/anonRepo/{archive_format}{/ref}",
    "assignees_url": "https://api.github.com/repos/anonUser/anonRepo/assignees{/user}",
    "blobs_url": "https://api.github.com/repos/anonUser/anonRepo/git/blobs{/sha}",
    "branches_url": "https://api.github.com/repos/anonUser/anonRepo/branches{/branch}",
    "clone_url": "https://github.com/anonUser/anonRepo.git",
    "collaborators_url": "https://api.github.com/repos/anonUser/anonRepo/collaborators{/collaborator}",
    "comments_url": "https://api.github.com/repos/anonUser/anonRepo/comments{/number}",
    "commits_url": "https://api.github.com/repos/anonUser/anonRepo/commits{/sha}",
    "compare_url": "https://api.github.com/repos/anonUser/anonRepo/compare/{base}...{head}",
    "contents_url": "https://api.github.com/repos/anonUser/anonRepo/contents/{+path}",
    "contributors_url": "https://api.github.com/repos/anonUser/anonRepo/contributors",
    "created_at": 1.409063699e+09,
    "default_branch": "master",
    "description": "Git webhook implementation in Go.",
    "downloads_url": "https://api.github.com/repos/anonUser/anonRepo/downloads",
    "events_url": "https://api.github.com/repos/anonUser/anonRepo/events",
    "fork": false,
    "forks": 0,
    "forks_count": 0,
    "forks_url": "https://api.github.com/repos/anonUser/anonRepo/forks",
    "full_name": "anonUser/anonRepo",
    "git_commits_url": "https://api.github.com/repos/anonUser/anonRepo/git/commits{/sha}",
    "git_refs_url": "https://api.github.com/repos/anonUser/anonRepo/git/refs{/sha}",
    "git_tags_url": "https://api.github.com/repos/anonUser/anonRepo/git/tags{/sha}",
    "git_url": "git://github.com/anonUser/anonRepo.git",
    "has_downloads": true,
    "has_issues": true,
    "has_wiki": true,
    "homepage": null,
    "hooks_url": "https://api.github.com/repos/anonUser/anonRepo/hooks",
    "html_url": "https://github.com/anonUser/anonRepo",
    "id": 2.3354788e+07,
    "issue_comment_url": "https://api.github.com/repos/anonUser/anonRepo/issues/comments/{number}",
    "issue_events_url": "https://api.github.com/repos/anonUser/anonRepo/issues/events{/number}",
    "issues_url": "https://api.github.com/repos/anonUser/anonRepo/issues{/number}",
    "keys_url": "https://api.github.com/repos/anonUser/anonRepo/keys{/key_id}",
    "labels_url": "https://api.github.com/repos/anonUser/anonRepo/labels{/name}",
    "language": null,
    "languages_url": "https://api.github.com/repos/anonUser/anonRepo/languages",
    "master_branch": "master",
    "merges_url": "https://api.github.com/repos/anonUser/anonRepo/merges",
    "milestones_url": "https://api.github.com/repos/anonUser/anonRepo/milestones{/number}",
    "mirror_url": null,
    "name": "anonRepo",
    "notifications_url": "https://api.github.com/repos/anonUser/anonRepo/notifications{?since,all,participating}",
    "open_issues": 0,
    "open_issues_count": 0,
    "owner": {
      "email": "anonUser@example.com",
      "name": "anonUser"
    },
    "private": false,
    "pulls_url": "https://api.github.com/repos/anonUser/anonRepo/pulls{/number}",
    "pushed_at": 1.409238007e+09,
    "releases_url": "https://api.github.com/repos/anonUser/anonRepo/releases{/id}",
    "size": 0,
    "ssh_url": "git@github.com:anonUser/anonRepo.git",
    "stargazers": 0,
    "stargazers_count": 0,
    "stargazers_url": "https://api.github.com/repos/anonUser/anonRepo/stargazers",
    "statuses_url": "https://api.github.com/repos/anonUser/anonRepo/statuses/{sha}",
    "subscribers_url": "https://api.github.com/repos/anonUser/anonRepo/subscribers",
    "subscription_url": "https://api.github.com/repos/anonUser/anonRepo/subscription",
    "svn_url": "https://github.com/anonUser/anonRepo",
    "tags_url": "https://api.github.com/repos/anonUser/anonRepo/tags",
    "teams_url": "https://api.github.com/repos/anonUser/anonRepo/teams",
    "trees_url": "https://api.github.com/repos/anonUser/anonRepo/git/trees{/sha}",
    "updated_at": "2014-08-26T14:34:59Z",
    "url": "https://github.com/anonUser/anonRepo",
    "watchers": 0,
    "watchers_count": 0
  }
}
`)

func examplesSampleAppGithubWebhookExampleJsonBytes() ([]byte, error) {
	return _examplesSampleAppGithubWebhookExampleJson, nil
}

func examplesSampleAppGithubWebhookExampleJson() (*asset, error) {
	bytes, err := examplesSampleAppGithubWebhookExampleJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/sample-app/github-webhook-example.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsCakephpMysqlPersistentJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "cakephp-mysql-persistent",
        "template": "cakephp-mysql-persistent"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/cakephp-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example CakePHP application with a MySQL database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/cakephp-ex/blob/master/README.md.",
            "iconClass": "icon-php",
            "openshift.io/display-name": "CakePHP + MySQL",
            "openshift.io/documentation-url": "https://github.com/sclorg/cakephp-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a CakePHP application, including a build configuration, application deployment configuration, and database deployment configuration.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,php,cakephp",
            "template.openshift.io/bindable": "false"
        },
        "name": "cakephp-mysql-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "cakephp-secret-token": "${CAKEPHP_SECRET_TOKEN}",
                "cakephp-security-salt": "${CAKEPHP_SECURITY_SALT}",
                "database-password": "${DATABASE_PASSWORD}",
                "database-user": "${DATABASE_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {
                    "script": "./vendor/bin/phpunit"
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "COMPOSER_MIRROR",
                                "value": "${COMPOSER_MIRROR}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "php:${PHP_VERSION}",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "recreateParams": {
                        "pre": {
                            "execNewPod": {
                                "command": [
                                    "./migrate-database.sh"
                                ],
                                "containerName": "cakephp-mysql-persistent"
                            },
                            "failurePolicy": "Retry"
                        }
                    },
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "DATABASE_SERVICE_NAME",
                                        "value": "${DATABASE_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "DATABASE_ENGINE",
                                        "value": "${DATABASE_ENGINE}"
                                    },
                                    {
                                        "name": "DATABASE_NAME",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "DATABASE_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "DATABASE_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "CAKEPHP_SECRET_TOKEN",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "cakephp-secret-token",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "CAKEPHP_SECURITY_SALT",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "cakephp-security-salt",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "OPCACHE_REVALIDATE_FREQ",
                                        "value": "${OPCACHE_REVALIDATE_FREQ}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/health.php",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 30,
                                    "periodSeconds": 60,
                                    "timeoutSeconds": 3
                                },
                                "name": "cakephp-mysql-persistent",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/health.php",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "periodSeconds": 60,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "cakephp-mysql-persistent"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mysql",
                        "port": 3306,
                        "targetPort": 3306
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "MYSQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 3306
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mysql",
                                "ports": [
                                    {
                                        "containerPort": 3306
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "MYSQL_PWD='${DATABASE_PASSWORD}' mysql -h 127.0.0.1 -u ${DATABASE_USER} -D ${DATABASE_NAME} -e 'SELECT 1'"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_MYSQL_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mysql/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "name": "${DATABASE_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${DATABASE_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mysql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mysql:5.7",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "cakephp-mysql-persistent"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Version of PHP image to be used (7.1 or latest).",
            "displayName": "PHP Version",
            "name": "PHP_VERSION",
            "required": true,
            "value": "7.1"
        },
        {
            "description": "Maximum amount of memory the CakePHP container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Maximum amount of memory the MySQL container can use.",
            "displayName": "Memory Limit (MySQL)",
            "name": "MEMORY_MYSQL_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "1Gi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/cakephp-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the CakePHP service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "mysql"
        },
        {
            "description": "Database engine: postgresql, mysql or sqlite (default).",
            "displayName": "Database Engine",
            "name": "DATABASE_ENGINE",
            "required": true,
            "value": "mysql"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "default"
        },
        {
            "displayName": "Database User",
            "name": "DATABASE_USER",
            "required": true,
            "value": "cakephp"
        },
        {
            "displayName": "Database Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "description": "Set this to a long random string.",
            "displayName": "CakePHP secret token",
            "from": "[\\w]{50}",
            "generate": "expression",
            "name": "CAKEPHP_SECRET_TOKEN"
        },
        {
            "description": "Security salt for session hash.",
            "displayName": "CakePHP Security Salt",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "CAKEPHP_SECURITY_SALT"
        },
        {
            "description": "How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request.",
            "displayName": "OPcache Revalidation Frequency",
            "name": "OPCACHE_REVALIDATE_FREQ",
            "value": "2"
        },
        {
            "description": "The custom Composer mirror URL",
            "displayName": "Custom Composer Mirror URL",
            "name": "COMPOSER_MIRROR",
            "value": ""
        }
    ]
}`)

func examplesQuickstartsCakephpMysqlPersistentJsonBytes() ([]byte, error) {
	return _examplesQuickstartsCakephpMysqlPersistentJson, nil
}

func examplesQuickstartsCakephpMysqlPersistentJson() (*asset, error) {
	bytes, err := examplesQuickstartsCakephpMysqlPersistentJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/cakephp-mysql-persistent.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsCakephpMysqlJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "cakephp-mysql-example",
        "template": "cakephp-mysql-example"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/cakephp-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example CakePHP application with a MySQL database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/cakephp-ex/blob/master/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.",
            "iconClass": "icon-php",
            "openshift.io/display-name": "CakePHP + MySQL (Ephemeral)",
            "openshift.io/documentation-url": "https://github.com/sclorg/cakephp-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a CakePHP application, including a build configuration, application deployment configuration, and database deployment configuration.  The database is stored in non-persistent storage, so this configuration should be used for experimental purposes only.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,php,cakephp",
            "template.openshift.io/bindable": "false"
        },
        "name": "cakephp-mysql-example"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "cakephp-secret-token": "${CAKEPHP_SECRET_TOKEN}",
                "cakephp-security-salt": "${CAKEPHP_SECURITY_SALT}",
                "database-password": "${DATABASE_PASSWORD}",
                "database-user": "${DATABASE_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {
                    "script": "./vendor/bin/phpunit"
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "COMPOSER_MIRROR",
                                "value": "${COMPOSER_MIRROR}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "php:${PHP_VERSION}",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "recreateParams": {
                        "pre": {
                            "execNewPod": {
                                "command": [
                                    "./migrate-database.sh"
                                ],
                                "containerName": "cakephp-mysql-example"
                            },
                            "failurePolicy": "Retry"
                        }
                    },
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "DATABASE_SERVICE_NAME",
                                        "value": "${DATABASE_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "DATABASE_ENGINE",
                                        "value": "${DATABASE_ENGINE}"
                                    },
                                    {
                                        "name": "DATABASE_NAME",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "DATABASE_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "DATABASE_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "CAKEPHP_SECRET_TOKEN",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "cakephp-secret-token",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "CAKEPHP_SECURITY_SALT",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "cakephp-security-salt",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "OPCACHE_REVALIDATE_FREQ",
                                        "value": "${OPCACHE_REVALIDATE_FREQ}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/health.php",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 30,
                                    "periodSeconds": 60,
                                    "timeoutSeconds": 3
                                },
                                "name": "cakephp-mysql-example",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/health.php",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "periodSeconds": 60,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "cakephp-mysql-example"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mysql",
                        "port": 3306,
                        "targetPort": 3306
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "MYSQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 3306
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mysql",
                                "ports": [
                                    {
                                        "containerPort": 3306
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "MYSQL_PWD='${DATABASE_PASSWORD}' mysql -h 127.0.0.1 -u ${DATABASE_USER} -D ${DATABASE_NAME} -e 'SELECT 1'"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_MYSQL_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mysql/data",
                                        "name": "data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "emptyDir": {},
                                "name": "data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mysql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mysql:5.7",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "cakephp-mysql-example"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Version of PHP image to be used (7.1 or latest).",
            "displayName": "PHP Version",
            "name": "PHP_VERSION",
            "required": true,
            "value": "7.1"
        },
        {
            "description": "Maximum amount of memory the CakePHP container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Maximum amount of memory the MySQL container can use.",
            "displayName": "Memory Limit (MySQL)",
            "name": "MEMORY_MYSQL_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/cakephp-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the CakePHP service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "mysql"
        },
        {
            "description": "Database engine: postgresql, mysql or sqlite (default).",
            "displayName": "Database Engine",
            "name": "DATABASE_ENGINE",
            "required": true,
            "value": "mysql"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "default"
        },
        {
            "displayName": "Database User",
            "name": "DATABASE_USER",
            "required": true,
            "value": "cakephp"
        },
        {
            "displayName": "Database Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "description": "Set this to a long random string.",
            "displayName": "CakePHP secret token",
            "from": "[\\w]{50}",
            "generate": "expression",
            "name": "CAKEPHP_SECRET_TOKEN"
        },
        {
            "description": "Security salt for session hash.",
            "displayName": "CakePHP Security Salt",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "CAKEPHP_SECURITY_SALT"
        },
        {
            "description": "How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request.",
            "displayName": "OPcache Revalidation Frequency",
            "name": "OPCACHE_REVALIDATE_FREQ",
            "value": "2"
        },
        {
            "description": "The custom Composer mirror URL",
            "displayName": "Custom Composer Mirror URL",
            "name": "COMPOSER_MIRROR",
            "value": ""
        }
    ]
}`)

func examplesQuickstartsCakephpMysqlJsonBytes() ([]byte, error) {
	return _examplesQuickstartsCakephpMysqlJson, nil
}

func examplesQuickstartsCakephpMysqlJson() (*asset, error) {
	bytes, err := examplesQuickstartsCakephpMysqlJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/cakephp-mysql.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsDancerMysqlPersistentJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "dancer-mysql-persistent",
        "template": "dancer-mysql-persistent"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/dancer-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example Dancer application with a MySQL database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/dancer-ex/blob/master/README.md.",
            "iconClass": "icon-perl",
            "openshift.io/display-name": "Dancer + MySQL",
            "openshift.io/documentation-url": "https://github.com/sclorg/dancer-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a Dancer based application, including a build configuration, application deployment configuration, and database deployment configuration.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,perl,dancer",
            "template.openshift.io/bindable": "false"
        },
        "name": "dancer-mysql-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "database-password": "${DATABASE_PASSWORD}",
                "database-user": "${DATABASE_USER}",
                "keybase": "${SECRET_KEY_BASE}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {
                    "script": "perl -I extlib/lib/perl5 -I lib t/*"
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "CPAN_MIRROR",
                                "value": "${CPAN_MIRROR}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "perl:5.26",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "DATABASE_SERVICE_NAME",
                                        "value": "${DATABASE_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "MYSQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "SECRET_KEY_BASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "keybase",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "PERL_APACHE2_RELOAD",
                                        "value": "${PERL_APACHE2_RELOAD}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/health",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 30,
                                    "timeoutSeconds": 3
                                },
                                "name": "dancer-mysql-persistent",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/health",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "dancer-mysql-persistent"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mysql",
                        "port": 3306,
                        "targetPort": 3306
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "MYSQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 3306
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mysql",
                                "ports": [
                                    {
                                        "containerPort": 3306
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "MYSQL_PWD='${DATABASE_PASSWORD}' mysql -h 127.0.0.1 -u ${DATABASE_USER} -D ${DATABASE_NAME} -e 'SELECT 1'"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_MYSQL_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mysql/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "name": "${DATABASE_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${DATABASE_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mysql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mysql:5.7",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "dancer-mysql-persistent"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Maximum amount of memory the Perl Dancer container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Maximum amount of memory the MySQL container can use.",
            "displayName": "Memory Limit (MySQL)",
            "name": "MEMORY_MYSQL_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "1Gi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/dancer-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the Dancer service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "database"
        },
        {
            "displayName": "Database Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "DATABASE_USER"
        },
        {
            "displayName": "Database Password",
            "from": "[a-zA-Z0-9]{8}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Set this to \"true\" to enable automatic reloading of modified Perl modules.",
            "displayName": "Perl Module Reload",
            "name": "PERL_APACHE2_RELOAD",
            "value": ""
        },
        {
            "description": "Your secret key for verifying the integrity of signed cookies.",
            "displayName": "Secret Key",
            "from": "[a-z0-9]{127}",
            "generate": "expression",
            "name": "SECRET_KEY_BASE"
        },
        {
            "description": "The custom CPAN mirror URL",
            "displayName": "Custom CPAN Mirror URL",
            "name": "CPAN_MIRROR",
            "value": ""
        }
    ]
}`)

func examplesQuickstartsDancerMysqlPersistentJsonBytes() ([]byte, error) {
	return _examplesQuickstartsDancerMysqlPersistentJson, nil
}

func examplesQuickstartsDancerMysqlPersistentJson() (*asset, error) {
	bytes, err := examplesQuickstartsDancerMysqlPersistentJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/dancer-mysql-persistent.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsDancerMysqlJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "dancer-mysql-example",
        "template": "dancer-mysql-example"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/dancer-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example Dancer application with a MySQL database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/dancer-ex/blob/master/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.",
            "iconClass": "icon-perl",
            "openshift.io/display-name": "Dancer + MySQL (Ephemeral)",
            "openshift.io/documentation-url": "https://github.com/sclorg/dancer-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a Dancer based application, including a build configuration, application deployment configuration, and database deployment configuration.  The database is stored in non-persistent storage, so this configuration should be used for experimental purposes only.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,perl,dancer",
            "template.openshift.io/bindable": "false"
        },
        "name": "dancer-mysql-example"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "database-password": "${DATABASE_PASSWORD}",
                "database-user": "${DATABASE_USER}",
                "keybase": "${SECRET_KEY_BASE}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {
                    "script": "perl -I extlib/lib/perl5 -I lib t/*"
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "CPAN_MIRROR",
                                "value": "${CPAN_MIRROR}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "perl:5.26",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "DATABASE_SERVICE_NAME",
                                        "value": "${DATABASE_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "MYSQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "SECRET_KEY_BASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "keybase",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "PERL_APACHE2_RELOAD",
                                        "value": "${PERL_APACHE2_RELOAD}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/health",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 30,
                                    "timeoutSeconds": 3
                                },
                                "name": "dancer-mysql-example",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/health",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "dancer-mysql-example"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mysql",
                        "port": 3306,
                        "targetPort": 3306
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "MYSQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 3306
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mysql",
                                "ports": [
                                    {
                                        "containerPort": 3306
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "MYSQL_PWD='${DATABASE_PASSWORD}' mysql -h 127.0.0.1 -u ${DATABASE_USER} -D ${DATABASE_NAME} -e 'SELECT 1'"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_MYSQL_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mysql/data",
                                        "name": "data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "emptyDir": {},
                                "name": "data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mysql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mysql:5.7",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "dancer-mysql-example"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Maximum amount of memory the Perl Dancer container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Maximum amount of memory the MySQL container can use.",
            "displayName": "Memory Limit (MySQL)",
            "name": "MEMORY_MYSQL_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/dancer-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the Dancer service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "database"
        },
        {
            "displayName": "Database Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "DATABASE_USER"
        },
        {
            "displayName": "Database Password",
            "from": "[a-zA-Z0-9]{8}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Set this to \"true\" to enable automatic reloading of modified Perl modules.",
            "displayName": "Perl Module Reload",
            "name": "PERL_APACHE2_RELOAD",
            "value": ""
        },
        {
            "description": "Your secret key for verifying the integrity of signed cookies.",
            "displayName": "Secret Key",
            "from": "[a-z0-9]{127}",
            "generate": "expression",
            "name": "SECRET_KEY_BASE"
        },
        {
            "description": "The custom CPAN mirror URL",
            "displayName": "Custom CPAN Mirror URL",
            "name": "CPAN_MIRROR",
            "value": ""
        }
    ]
}`)

func examplesQuickstartsDancerMysqlJsonBytes() ([]byte, error) {
	return _examplesQuickstartsDancerMysqlJson, nil
}

func examplesQuickstartsDancerMysqlJson() (*asset, error) {
	bytes, err := examplesQuickstartsDancerMysqlJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/dancer-mysql.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsDjangoPostgresqlPersistentJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "django-psql-persistent",
        "template": "django-psql-persistent"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/django-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example Django application with a PostgreSQL database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/django-ex/blob/master/README.md.",
            "iconClass": "icon-python",
            "openshift.io/display-name": "Django + PostgreSQL",
            "openshift.io/documentation-url": "https://github.com/sclorg/django-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a Django based application, including a build configuration, application deployment configuration, and database deployment configuration.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,python,django",
            "template.openshift.io/bindable": "false"
        },
        "name": "django-psql-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "database-password": "${DATABASE_PASSWORD}",
                "database-user": "${DATABASE_USER}",
                "django-secret-key": "${DJANGO_SECRET_KEY}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {
                    "script": "./manage.py test"
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "PIP_INDEX_URL",
                                "value": "${PIP_INDEX_URL}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "python:${PYTHON_VERSION}",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "DATABASE_SERVICE_NAME",
                                        "value": "${DATABASE_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "DATABASE_ENGINE",
                                        "value": "${DATABASE_ENGINE}"
                                    },
                                    {
                                        "name": "DATABASE_NAME",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "DATABASE_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "DATABASE_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "APP_CONFIG",
                                        "value": "${APP_CONFIG}"
                                    },
                                    {
                                        "name": "DJANGO_SECRET_KEY",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "django-secret-key",
                                                "name": "${NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/health",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 30,
                                    "timeoutSeconds": 3
                                },
                                "name": "django-psql-persistent",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/health",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "django-psql-persistent"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "postgresql",
                        "port": 5432,
                        "targetPort": 5432
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "POSTGRESQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container",
                                            "--live"
                                        ]
                                    },
                                    "initialDelaySeconds": 120,
                                    "timeoutSeconds": 10
                                },
                                "name": "postgresql",
                                "ports": [
                                    {
                                        "containerPort": 5432
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_POSTGRESQL_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/pgsql/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "name": "${DATABASE_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${DATABASE_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "postgresql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "postgresql:${POSTGRESQL_VERSION}",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "django-psql-persistent"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Version of Python image to be used (3.6 or latest).",
            "displayName": "Version of Python Image",
            "name": "PYTHON_VERSION",
            "required": true,
            "value": "3.6"
        },
        {
            "description": "Version of PostgreSQL image to be used (10 or latest).",
            "displayName": "Version of PostgreSQL Image",
            "name": "POSTGRESQL_VERSION",
            "required": true,
            "value": "10"
        },
        {
            "description": "Maximum amount of memory the Django container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Maximum amount of memory the PostgreSQL container can use.",
            "displayName": "Memory Limit (PostgreSQL)",
            "name": "MEMORY_POSTGRESQL_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "1Gi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/django-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the Django service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "postgresql"
        },
        {
            "description": "Database engine: postgresql, mysql or sqlite (default).",
            "displayName": "Database Engine",
            "name": "DATABASE_ENGINE",
            "required": true,
            "value": "postgresql"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "default"
        },
        {
            "displayName": "Database Username",
            "name": "DATABASE_USER",
            "required": true,
            "value": "django"
        },
        {
            "displayName": "Database User Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "description": "Relative path to Gunicorn configuration file (optional).",
            "displayName": "Application Configuration File Path",
            "name": "APP_CONFIG"
        },
        {
            "description": "Set this to a long random string.",
            "displayName": "Django Secret Key",
            "from": "[\\w]{50}",
            "generate": "expression",
            "name": "DJANGO_SECRET_KEY"
        },
        {
            "description": "The custom PyPi index URL",
            "displayName": "Custom PyPi Index URL",
            "name": "PIP_INDEX_URL",
            "value": ""
        }
    ]
}`)

func examplesQuickstartsDjangoPostgresqlPersistentJsonBytes() ([]byte, error) {
	return _examplesQuickstartsDjangoPostgresqlPersistentJson, nil
}

func examplesQuickstartsDjangoPostgresqlPersistentJson() (*asset, error) {
	bytes, err := examplesQuickstartsDjangoPostgresqlPersistentJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/django-postgresql-persistent.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsDjangoPostgresqlJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "django-psql-example",
        "template": "django-psql-example"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/django-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example Django application with a PostgreSQL database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/django-ex/blob/master/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.",
            "iconClass": "icon-python",
            "openshift.io/display-name": "Django + PostgreSQL (Ephemeral)",
            "openshift.io/documentation-url": "https://github.com/sclorg/django-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a Django based application, including a build configuration, application deployment configuration, and database deployment configuration.  The database is stored in non-persistent storage, so this configuration should be used for experimental purposes only.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,python,django",
            "template.openshift.io/bindable": "false"
        },
        "name": "django-psql-example"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "database-password": "${DATABASE_PASSWORD}",
                "database-user": "${DATABASE_USER}",
                "django-secret-key": "${DJANGO_SECRET_KEY}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {
                    "script": "./manage.py test"
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "PIP_INDEX_URL",
                                "value": "${PIP_INDEX_URL}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "python:${PYTHON_VERSION}",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "DATABASE_SERVICE_NAME",
                                        "value": "${DATABASE_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "DATABASE_ENGINE",
                                        "value": "${DATABASE_ENGINE}"
                                    },
                                    {
                                        "name": "DATABASE_NAME",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "DATABASE_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "DATABASE_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "APP_CONFIG",
                                        "value": "${APP_CONFIG}"
                                    },
                                    {
                                        "name": "DJANGO_SECRET_KEY",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "django-secret-key",
                                                "name": "${NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/health",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 30,
                                    "timeoutSeconds": 3
                                },
                                "name": "django-psql-example",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/health",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "django-psql-example"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "postgresql",
                        "port": 5432,
                        "targetPort": 5432
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "POSTGRESQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container",
                                            "--live"
                                        ]
                                    },
                                    "initialDelaySeconds": 120,
                                    "timeoutSeconds": 10
                                },
                                "name": "postgresql",
                                "ports": [
                                    {
                                        "containerPort": 5432
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_POSTGRESQL_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/pgsql/data",
                                        "name": "data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "emptyDir": {},
                                "name": "data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "postgresql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "postgresql:${POSTGRESQL_VERSION}",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "django-psql-example"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Version of Python image to be used (3.6 or latest).",
            "displayName": "Version of Python Image",
            "name": "PYTHON_VERSION",
            "required": true,
            "value": "3.6"
        },
        {
            "description": "Version of PostgreSQL image to be used (10 or latest).",
            "displayName": "Version of PostgreSQL Image",
            "name": "POSTGRESQL_VERSION",
            "required": true,
            "value": "10"
        },
        {
            "description": "Maximum amount of memory the Django container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Maximum amount of memory the PostgreSQL container can use.",
            "displayName": "Memory Limit (PostgreSQL)",
            "name": "MEMORY_POSTGRESQL_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/django-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the Django service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "postgresql"
        },
        {
            "description": "Database engine: postgresql, mysql or sqlite (default).",
            "displayName": "Database Engine",
            "name": "DATABASE_ENGINE",
            "required": true,
            "value": "postgresql"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "default"
        },
        {
            "displayName": "Database Username",
            "name": "DATABASE_USER",
            "required": true,
            "value": "django"
        },
        {
            "displayName": "Database User Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "description": "Relative path to Gunicorn configuration file (optional).",
            "displayName": "Application Configuration File Path",
            "name": "APP_CONFIG"
        },
        {
            "description": "Set this to a long random string.",
            "displayName": "Django Secret Key",
            "from": "[\\w]{50}",
            "generate": "expression",
            "name": "DJANGO_SECRET_KEY"
        },
        {
            "description": "The custom PyPi index URL",
            "displayName": "Custom PyPi Index URL",
            "name": "PIP_INDEX_URL",
            "value": ""
        }
    ]
}`)

func examplesQuickstartsDjangoPostgresqlJsonBytes() ([]byte, error) {
	return _examplesQuickstartsDjangoPostgresqlJson, nil
}

func examplesQuickstartsDjangoPostgresqlJson() (*asset, error) {
	bytes, err := examplesQuickstartsDjangoPostgresqlJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/django-postgresql.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsDotnetPgsqlPersistentJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "dotnet-pgsql-persistent"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore.",
    "metadata": {
        "annotations": {
            "description": "An example .NET Core application with a PostgreSQL database. For more information about using this template, including OpenShift considerations, see https://github.com/redhat-developer/s2i-dotnetcore.",
            "iconClass": "icon-dotnet",
            "openshift.io/display-name": ".NET Core + PostgreSQL (Persistent)",
            "tags": "quickstart,dotnet",
            "template.openshift.io/documentation-url": "https://github.com/redhat-developer/s2i-dotnetcore",
            "template.openshift.io/provider-display-name": "Red Hat, Inc.",
            "template.openshift.io/support-url": "https://access.redhat.com"
        },
        "name": "dotnet-pgsql-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "connect-string": "Host=${DATABASE_SERVICE_NAME};Database=${DATABASE_NAME};Username=${DATABASE_USER};Password=${DATABASE_PASSWORD}",
                "database-password": "${DATABASE_PASSWORD}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {},
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "DOTNET_STARTUP_PROJECT",
                                "value": "${DOTNET_STARTUP_PROJECT}"
                            },
                            {
                                "name": "DOTNET_SDK_VERSION",
                                "value": "${DOTNET_SDK_VERSION}"
                            },
                            {
                                "name": "DOTNET_ASSEMBLY_NAME",
                                "value": "${DOTNET_ASSEMBLY_NAME}"
                            },
                            {
                                "name": "DOTNET_NPM_TOOLS",
                                "value": "${DOTNET_NPM_TOOLS}"
                            },
                            {
                                "name": "DOTNET_TEST_PROJECTS",
                                "value": "${DOTNET_TEST_PROJECTS}"
                            },
                            {
                                "name": "DOTNET_CONFIGURATION",
                                "value": "${DOTNET_CONFIGURATION}"
                            },
                            {
                                "name": "DOTNET_RESTORE_SOURCES",
                                "value": "${DOTNET_RESTORE_SOURCES}"
                            },
                            {
                                "name": "DOTNET_TOOLS",
                                "value": "${DOTNET_TOOLS}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "${DOTNET_IMAGE_STREAM_TAG}",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "resources": {},
                    "rollingParams": {
                        "intervalSeconds": 1,
                        "maxSurge": "25%",
                        "maxUnavailable": "25%",
                        "timeoutSeconds": 600,
                        "updatePeriodSeconds": 1
                    },
                    "type": "Rolling"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "ConnectionString",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "connect-string",
                                                "name": "${NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080,
                                        "scheme": "HTTP"
                                    },
                                    "initialDelaySeconds": 40,
                                    "timeoutSeconds": 10
                                },
                                "name": "dotnet-pgsql-persistent",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080,
                                        "scheme": "HTTP"
                                    },
                                    "initialDelaySeconds": 10,
                                    "timeoutSeconds": 30
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "dotnet-pgsql-persistent"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "postgresql",
                        "port": 5432,
                        "targetPort": 5432
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "POSTGRESQL_USER",
                                        "value": "${DATABASE_USER}"
                                    },
                                    {
                                        "name": "POSTGRESQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "POSTGRESQL_MAX_CONNECTIONS",
                                        "value": "${POSTGRESQL_MAX_CONNECTIONS}"
                                    },
                                    {
                                        "name": "POSTGRESQL_SHARED_BUFFERS",
                                        "value": "${POSTGRESQL_SHARED_BUFFERS}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 5432
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "postgresql",
                                "ports": [
                                    {
                                        "containerPort": 5432
                                    }
                                ],
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_POSTGRESQL_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/pgsql/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "name": "${DATABASE_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${DATABASE_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "postgresql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "postgresql:9.5",
                                "namespace": "openshift"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "musicstore"
        },
        {
            "description": "Maximum amount of memory the .NET Core container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "128Mi"
        },
        {
            "description": "Maximum amount of memory the PostgreSQL container can use.",
            "displayName": "Memory Limit (PostgreSQL)",
            "name": "MEMORY_POSTGRESQL_LIMIT",
            "required": true,
            "value": "128Mi"
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "256Mi"
        },
        {
            "description": "The image stream tag which is used to build the code.",
            "displayName": ".NET builder",
            "name": "DOTNET_IMAGE_STREAM_TAG",
            "required": true,
            "value": "dotnet:2.1"
        },
        {
            "description": "The OpenShift Namespace where the .NET builder ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/redhat-developer/s2i-aspnet-musicstore-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF",
            "value": "rel/2.1-example"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "Set this to a project file (e.g. csproj) or a folder containing a single project file.",
            "displayName": "Startup Project",
            "name": "DOTNET_STARTUP_PROJECT",
            "value": "samples/MusicStore"
        },
        {
            "description": "Set this to configure the default SDK version. This can be set to a specific version, '' (lowest version) or 'latest' (highest version).",
            "displayName": "SDK Version",
            "name": "DOTNET_SDK_VERSION",
            "value": ""
        },
        {
            "description": "Set this when the assembly name is overridden in the project file.",
            "displayName": "Startup Assembly",
            "name": "DOTNET_ASSEMBLY_NAME"
        },
        {
            "description": "Set this to a space separated list of .NET tools needed to publish.",
            "displayName": ".NET Tools",
            "name": "DOTNET_TOOLS"
        },
        {
            "description": "Set this to a space separated list of npm tools needed to publish.",
            "displayName": "Npm Tools",
            "name": "DOTNET_NPM_TOOLS"
        },
        {
            "description": "Set this to a space separated list of test projects to run before publishing.",
            "displayName": "Test projects",
            "name": "DOTNET_TEST_PROJECTS"
        },
        {
            "description": "Set this to configuration (Release/Debug).",
            "displayName": "Configuration",
            "name": "DOTNET_CONFIGURATION",
            "value": "Release"
        },
        {
            "description": "Set this to override the NuGet.config sources.",
            "displayName": "NuGet package sources",
            "name": "DOTNET_RESTORE_SOURCES"
        },
        {
            "description": "The exposed hostname that will route to the .NET Core service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "A secret string used to configure the GitHub webhook.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "postgresql"
        },
        {
            "displayName": "Database Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "DATABASE_USER"
        },
        {
            "displayName": "Database Password",
            "from": "[a-zA-Z0-9]{8}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "musicstore"
        },
        {
            "displayName": "Maximum Database Connections",
            "name": "POSTGRESQL_MAX_CONNECTIONS",
            "value": "100"
        },
        {
            "displayName": "Shared Buffer Amount",
            "name": "POSTGRESQL_SHARED_BUFFERS",
            "value": "12MB"
        }
    ]
}`)

func examplesQuickstartsDotnetPgsqlPersistentJsonBytes() ([]byte, error) {
	return _examplesQuickstartsDotnetPgsqlPersistentJson, nil
}

func examplesQuickstartsDotnetPgsqlPersistentJson() (*asset, error) {
	bytes, err := examplesQuickstartsDotnetPgsqlPersistentJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/dotnet-pgsql-persistent.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsDotnetJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "metadata": {
        "annotations": {
            "description": "An example .NET Core application.",
            "iconClass": "icon-dotnet",
            "openshift.io/display-name": ".NET Core Example",
            "tags": "quickstart,dotnet,.net",
            "template.openshift.io/documentation-url": "https://github.com/redhat-developer/s2i-dotnetcore",
            "template.openshift.io/provider-display-name": "Red Hat, Inc.",
            "template.openshift.io/support-url": "https://access.redhat.com"
        },
        "name": "dotnet-example"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "DOTNET_STARTUP_PROJECT",
                                "value": "${DOTNET_STARTUP_PROJECT}"
                            },
                            {
                                "name": "DOTNET_SDK_VERSION",
                                "value": "${DOTNET_SDK_VERSION}"
                            },
                            {
                                "name": "DOTNET_ASSEMBLY_NAME",
                                "value": "${DOTNET_ASSEMBLY_NAME}"
                            },
                            {
                                "name": "DOTNET_NPM_TOOLS",
                                "value": "${DOTNET_NPM_TOOLS}"
                            },
                            {
                                "name": "DOTNET_TEST_PROJECTS",
                                "value": "${DOTNET_TEST_PROJECTS}"
                            },
                            {
                                "name": "DOTNET_CONFIGURATION",
                                "value": "${DOTNET_CONFIGURATION}"
                            },
                            {
                                "name": "DOTNET_RESTORE_SOURCES",
                                "value": "${DOTNET_RESTORE_SOURCES}"
                            },
                            {
                                "name": "DOTNET_TOOLS",
                                "value": "${DOTNET_TOOLS}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "${DOTNET_IMAGE_STREAM_TAG}",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    },
                    {
                        "generic": {
                            "secret": "${GENERIC_WEBHOOK_SECRET}"
                        },
                        "type": "Generic"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "type": "Rolling"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080,
                                        "scheme": "HTTP"
                                    },
                                    "initialDelaySeconds": 40,
                                    "timeoutSeconds": 15
                                },
                                "name": "dotnet-app",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080,
                                        "scheme": "HTTP"
                                    },
                                    "initialDelaySeconds": 10,
                                    "timeoutSeconds": 30
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "dotnet-app"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "dotnet-example"
        },
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "128Mi"
        },
        {
            "description": "The image stream tag which is used to build the code.",
            "displayName": ".NET builder",
            "name": "DOTNET_IMAGE_STREAM_TAG",
            "required": true,
            "value": "dotnet:2.2"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/redhat-developer/s2i-dotnetcore-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF",
            "value": "dotnetcore-2.2"
        },
        {
            "description": "Set this to use a subdirectory of the source code repository",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the .NET Core service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "A secret string used to configure the GitHub webhook.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "description": "A secret string used to configure the Generic webhook.",
            "displayName": "Generic Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GENERIC_WEBHOOK_SECRET"
        },
        {
            "description": "Set this to configure the default SDK version. This can be set to a specific version, '' (lowest version) or 'latest' (highest version).",
            "displayName": "SDK Version",
            "name": "DOTNET_SDK_VERSION",
            "value": ""
        },
        {
            "description": "Set this to a project file (e.g. csproj) or a folder containing a single project file.",
            "displayName": "Startup Project",
            "name": "DOTNET_STARTUP_PROJECT",
            "value": "app"
        },
        {
            "description": "Set this when the assembly name is overridden in the project file.",
            "displayName": "Startup Assembly",
            "name": "DOTNET_ASSEMBLY_NAME"
        },
        {
            "description": "Set this to a space separated list of .NET tools needed to publish.",
            "displayName": ".NET Tools",
            "name": "DOTNET_TOOLS"
        },
        {
            "description": "Set this to a space separated list of npm tools needed to publish.",
            "displayName": "Npm Tools",
            "name": "DOTNET_NPM_TOOLS"
        },
        {
            "description": "Set this to a space separated list of test projects to run before publishing.",
            "displayName": "Test projects",
            "name": "DOTNET_TEST_PROJECTS"
        },
        {
            "description": "Set this to configuration (Release/Debug).",
            "displayName": "Configuration",
            "name": "DOTNET_CONFIGURATION",
            "value": "Release"
        },
        {
            "description": "Set this to override the NuGet.config sources.",
            "displayName": "NuGet package sources",
            "name": "DOTNET_RESTORE_SOURCES"
        }
    ]
}`)

func examplesQuickstartsDotnetJsonBytes() ([]byte, error) {
	return _examplesQuickstartsDotnetJson, nil
}

func examplesQuickstartsDotnetJson() (*asset, error) {
	bytes, err := examplesQuickstartsDotnetJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/dotnet.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsHttpdJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "httpd-example",
        "template": "httpd-example"
    },
    "message": "The following service(s) have been created in your project: ${NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/httpd-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example Apache HTTP Server (httpd) application that serves static content. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/httpd-ex/blob/master/README.md.",
            "iconClass": "icon-apache",
            "openshift.io/display-name": "Apache HTTP Server",
            "openshift.io/documentation-url": "https://github.com/sclorg/httpd-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a static application served by Apache HTTP Server (httpd), including a build configuration and application deployment configuration.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,httpd",
            "template.openshift.io/bindable": "false"
        },
        "name": "httpd-example"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "httpd:2.4",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    },
                    {
                        "generic": {
                            "secret": "${GENERIC_WEBHOOK_SECRET}"
                        },
                        "type": "Generic"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "type": "Rolling"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 30,
                                    "timeoutSeconds": 3
                                },
                                "name": "httpd-example",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "httpd-example"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "httpd-example"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/httpd-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the httpd service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "description": "A secret string used to configure the Generic webhook.",
            "displayName": "Generic Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GENERIC_WEBHOOK_SECRET"
        }
    ]
}`)

func examplesQuickstartsHttpdJsonBytes() ([]byte, error) {
	return _examplesQuickstartsHttpdJson, nil
}

func examplesQuickstartsHttpdJson() (*asset, error) {
	bytes, err := examplesQuickstartsHttpdJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/httpd.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsNginxJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "nginx-example"
    },
    "message": "The following service(s) have been created in your project: ${NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/nginx-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example Nginx HTTP server and a reverse proxy (nginx) application that serves static content. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/nginx-ex/blob/master/README.md.",
            "iconClass": "icon-nginx",
            "openshift.io/display-name": "Nginx HTTP server and a reverse proxy",
            "openshift.io/documentation-url": "https://github.com/sclorg/nginx-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a static application served by Nginx HTTP server and a reverse proxy (nginx), including a build configuration and application deployment configuration.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,nginx"
        },
        "name": "nginx-example"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "annotations": {
                    "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}"
                },
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "nginx:${NGINX_VERSION}",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    },
                    {
                        "generic": {
                            "secret": "${GENERIC_WEBHOOK_SECRET}"
                        },
                        "type": "Generic"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "type": "Rolling"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 30,
                                    "timeoutSeconds": 3
                                },
                                "name": "nginx-example",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "nginx-example"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "nginx-example"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Version of NGINX image to be used (1.12 by default).",
            "displayName": "NGINX Version",
            "name": "NGINX_VERSION",
            "required": true,
            "value": "1.12"
        },
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/nginx-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the nginx service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "description": "A secret string used to configure the Generic webhook.",
            "displayName": "Generic Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GENERIC_WEBHOOK_SECRET"
        }
    ]
}`)

func examplesQuickstartsNginxJsonBytes() ([]byte, error) {
	return _examplesQuickstartsNginxJson, nil
}

func examplesQuickstartsNginxJson() (*asset, error) {
	bytes, err := examplesQuickstartsNginxJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/nginx.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsNodejsMongodbPersistentJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "template": "nodejs-mongo-persistent"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/nodejs-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example Node.js application with a MongoDB database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/nodejs-ex/blob/master/README.md.",
            "iconClass": "icon-nodejs",
            "openshift.io/display-name": "Node.js + MongoDB",
            "openshift.io/documentation-url": "https://github.com/sclorg/nodejs-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a NodeJS application, including a build configuration, application deployment configuration, and database deployment configuration.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,nodejs",
            "template.openshift.io/bindable": "false"
        },
        "name": "nodejs-mongo-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "database-admin-password": "${DATABASE_ADMIN_PASSWORD}",
                "database-password": "${DATABASE_PASSWORD}",
                "database-user": "${DATABASE_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {
                    "script": "npm test"
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "NPM_MIRROR",
                                "value": "${NPM_MIRROR}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "nodejs:${NODEJS_VERSION}",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    },
                    {
                        "generic": {
                            "secret": "${GENERIC_WEBHOOK_SECRET}"
                        },
                        "type": "Generic"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "DATABASE_SERVICE_NAME",
                                        "value": "${DATABASE_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "MONGODB_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "MONGODB_ADMIN_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-admin-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 30,
                                    "timeoutSeconds": 3
                                },
                                "name": "nodejs-mongo-persistent",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "nodejs-mongo-persistent"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mongodb",
                        "port": 27017,
                        "targetPort": 27017
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "MONGODB_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "MONGODB_ADMIN_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-admin-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 27017
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mongodb",
                                "ports": [
                                    {
                                        "containerPort": 27017
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""
                                        ]
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_MONGODB_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mongodb/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "name": "${DATABASE_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${DATABASE_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mongodb"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mongodb:${MONGODB_VERSION}",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "nodejs-mongo-persistent"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Version of NodeJS image to be used (6, 8, or latest).",
            "displayName": "Version of NodeJS Image",
            "name": "NODEJS_VERSION",
            "required": true,
            "value": "8"
        },
        {
            "description": "Version of MongoDB image to be used (3.6 or latest).",
            "displayName": "Version of MongoDB Image",
            "name": "MONGODB_VERSION",
            "required": true,
            "value": "3.6"
        },
        {
            "description": "Maximum amount of memory the Node.js container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Maximum amount of memory the MongoDB container can use.",
            "displayName": "Memory Limit (MongoDB)",
            "name": "MEMORY_MONGODB_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "1Gi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/nodejs-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the Node.js service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "description": "A secret string used to configure the Generic webhook.",
            "displayName": "Generic Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GENERIC_WEBHOOK_SECRET"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "mongodb"
        },
        {
            "description": "Username for MongoDB user that will be used for accessing the database.",
            "displayName": "MongoDB Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "DATABASE_USER"
        },
        {
            "description": "Password for the MongoDB user.",
            "displayName": "MongoDB Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Password for the database admin user.",
            "displayName": "Database Administrator Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "DATABASE_ADMIN_PASSWORD"
        },
        {
            "description": "The custom NPM mirror URL",
            "displayName": "Custom NPM Mirror URL",
            "name": "NPM_MIRROR",
            "value": ""
        }
    ]
}`)

func examplesQuickstartsNodejsMongodbPersistentJsonBytes() ([]byte, error) {
	return _examplesQuickstartsNodejsMongodbPersistentJson, nil
}

func examplesQuickstartsNodejsMongodbPersistentJson() (*asset, error) {
	bytes, err := examplesQuickstartsNodejsMongodbPersistentJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/nodejs-mongodb-persistent.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsNodejsMongodbJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "nodejs-mongodb-example",
        "template": "nodejs-mongodb-example"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/nodejs-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example Node.js application with a MongoDB database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/nodejs-ex/blob/master/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.",
            "iconClass": "icon-nodejs",
            "openshift.io/display-name": "Node.js + MongoDB (Ephemeral)",
            "openshift.io/documentation-url": "https://github.com/sclorg/nodejs-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a NodeJS application, including a build configuration, application deployment configuration, and database deployment configuration.  The database is stored in non-persistent storage, so this configuration should be used for experimental purposes only.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,nodejs",
            "template.openshift.io/bindable": "false"
        },
        "name": "nodejs-mongodb-example"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "database-admin-password": "${DATABASE_ADMIN_PASSWORD}",
                "database-password": "${DATABASE_PASSWORD}",
                "database-user": "${DATABASE_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {
                    "script": "npm test"
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "NPM_MIRROR",
                                "value": "${NPM_MIRROR}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "nodejs:${NODEJS_VERSION}",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    },
                    {
                        "generic": {
                            "secret": "${GENERIC_WEBHOOK_SECRET}"
                        },
                        "type": "Generic"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "DATABASE_SERVICE_NAME",
                                        "value": "${DATABASE_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "MONGODB_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "MONGODB_ADMIN_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-admin-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 30,
                                    "timeoutSeconds": 3
                                },
                                "name": "nodejs-mongodb-example",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "nodejs-mongodb-example"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mongodb",
                        "port": 27017,
                        "targetPort": 27017
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "MONGODB_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MONGODB_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "MONGODB_ADMIN_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-admin-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 27017
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mongodb",
                                "ports": [
                                    {
                                        "containerPort": 27017
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""
                                        ]
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_MONGODB_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mongodb/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "emptyDir": {
                                    "medium": ""
                                },
                                "name": "${DATABASE_SERVICE_NAME}-data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mongodb"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mongodb:${MONGODB_VERSION}",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "nodejs-mongodb-example"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Version of NodeJS image to be used (6, 8, or latest).",
            "displayName": "Version of NodeJS Image",
            "name": "NODEJS_VERSION",
            "required": true,
            "value": "8"
        },
        {
            "description": "Version of MongoDB image to be used (3.6 or latest).",
            "displayName": "Version of MongoDB Image",
            "name": "MONGODB_VERSION",
            "required": true,
            "value": "3.6"
        },
        {
            "description": "Maximum amount of memory the Node.js container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Maximum amount of memory the MongoDB container can use.",
            "displayName": "Memory Limit (MongoDB)",
            "name": "MEMORY_MONGODB_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/nodejs-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the Node.js service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "description": "A secret string used to configure the Generic webhook.",
            "displayName": "Generic Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GENERIC_WEBHOOK_SECRET"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "mongodb"
        },
        {
            "description": "Username for MongoDB user that will be used for accessing the database.",
            "displayName": "MongoDB Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "DATABASE_USER"
        },
        {
            "description": "Password for the MongoDB user.",
            "displayName": "MongoDB Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "sampledb"
        },
        {
            "description": "Password for the database admin user.",
            "displayName": "Database Administrator Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "DATABASE_ADMIN_PASSWORD"
        },
        {
            "description": "The custom NPM mirror URL",
            "displayName": "Custom NPM Mirror URL",
            "name": "NPM_MIRROR",
            "value": ""
        }
    ]
}`)

func examplesQuickstartsNodejsMongodbJsonBytes() ([]byte, error) {
	return _examplesQuickstartsNodejsMongodbJson, nil
}

func examplesQuickstartsNodejsMongodbJson() (*asset, error) {
	bytes, err := examplesQuickstartsNodejsMongodbJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/nodejs-mongodb.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsRailsPostgresqlPersistentJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "rails-pgsql-persistent",
        "template": "rails-pgsql-persistent"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/rails-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example Rails application with a PostgreSQL database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/rails-ex/blob/master/README.md.",
            "iconClass": "icon-ruby",
            "openshift.io/display-name": "Rails + PostgreSQL",
            "openshift.io/documentation-url": "https://github.com/sclorg/rails-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a Rails application, including a build configuration, application deployment configuration, and database deployment configuration.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,ruby,rails",
            "template.openshift.io/bindable": "false"
        },
        "name": "rails-pgsql-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "application-password": "${APPLICATION_PASSWORD}",
                "application-user": "${APPLICATION_USER}",
                "database-password": "${DATABASE_PASSWORD}",
                "database-user": "${DATABASE_USER}",
                "keybase": "${SECRET_KEY_BASE}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {
                    "script": "bundle exec rake test"
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "RUBYGEM_MIRROR",
                                "value": "${RUBYGEM_MIRROR}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "ruby:2.5",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "recreateParams": {
                        "pre": {
                            "execNewPod": {
                                "command": [
                                    "./migrate-database.sh"
                                ],
                                "containerName": "${NAME}"
                            },
                            "failurePolicy": "Abort"
                        }
                    },
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "DATABASE_SERVICE_NAME",
                                        "value": "${DATABASE_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "POSTGRESQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "SECRET_KEY_BASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "keybase",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "POSTGRESQL_MAX_CONNECTIONS",
                                        "value": "${POSTGRESQL_MAX_CONNECTIONS}"
                                    },
                                    {
                                        "name": "POSTGRESQL_SHARED_BUFFERS",
                                        "value": "${POSTGRESQL_SHARED_BUFFERS}"
                                    },
                                    {
                                        "name": "APPLICATION_DOMAIN",
                                        "value": "${APPLICATION_DOMAIN}"
                                    },
                                    {
                                        "name": "APPLICATION_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "application-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "APPLICATION_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "application-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "RAILS_ENV",
                                        "value": "${RAILS_ENV}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/articles",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 10,
                                    "timeoutSeconds": 3
                                },
                                "name": "${NAME}",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/articles",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "${NAME}"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "postgresql",
                        "port": 5432,
                        "targetPort": 5432
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "POSTGRESQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "POSTGRESQL_MAX_CONNECTIONS",
                                        "value": "${POSTGRESQL_MAX_CONNECTIONS}"
                                    },
                                    {
                                        "name": "POSTGRESQL_SHARED_BUFFERS",
                                        "value": "${POSTGRESQL_SHARED_BUFFERS}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container",
                                            "--live"
                                        ]
                                    },
                                    "initialDelaySeconds": 120,
                                    "timeoutSeconds": 10
                                },
                                "name": "postgresql",
                                "ports": [
                                    {
                                        "containerPort": 5432
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_POSTGRESQL_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/pgsql/data",
                                        "name": "${DATABASE_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "name": "${DATABASE_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${DATABASE_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "postgresql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "postgresql:10",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "rails-pgsql-persistent"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Maximum amount of memory the Rails container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Maximum amount of memory the PostgreSQL container can use.",
            "displayName": "Memory Limit (PostgreSQL)",
            "name": "MEMORY_POSTGRESQL_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "1Gi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/rails-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the Rails service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "description": "Your secret key for verifying the integrity of signed cookies.",
            "displayName": "Secret Key",
            "from": "[a-z0-9]{127}",
            "generate": "expression",
            "name": "SECRET_KEY_BASE"
        },
        {
            "description": "The application user that is used within the sample application to authorize access on pages.",
            "displayName": "Application Username",
            "name": "APPLICATION_USER",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "The application password that is used within the sample application to authorize access on pages.",
            "displayName": "Application Password",
            "name": "APPLICATION_PASSWORD",
            "required": true,
            "value": "secret"
        },
        {
            "description": "Environment under which the sample application will run. Could be set to production, development or test.",
            "displayName": "Rails Environment",
            "name": "RAILS_ENV",
            "required": true,
            "value": "production"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "postgresql"
        },
        {
            "displayName": "Database Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "DATABASE_USER"
        },
        {
            "displayName": "Database Password",
            "from": "[a-zA-Z0-9]{8}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "root"
        },
        {
            "displayName": "Maximum Database Connections",
            "name": "POSTGRESQL_MAX_CONNECTIONS",
            "value": "100"
        },
        {
            "displayName": "Shared Buffer Amount",
            "name": "POSTGRESQL_SHARED_BUFFERS",
            "value": "12MB"
        },
        {
            "description": "The custom RubyGems mirror URL",
            "displayName": "Custom RubyGems Mirror URL",
            "name": "RUBYGEM_MIRROR",
            "value": ""
        }
    ]
}`)

func examplesQuickstartsRailsPostgresqlPersistentJsonBytes() ([]byte, error) {
	return _examplesQuickstartsRailsPostgresqlPersistentJson, nil
}

func examplesQuickstartsRailsPostgresqlPersistentJson() (*asset, error) {
	bytes, err := examplesQuickstartsRailsPostgresqlPersistentJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/rails-postgresql-persistent.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsRailsPostgresqlJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "rails-postgresql-example",
        "template": "rails-postgresql-example"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/rails-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example Rails application with a PostgreSQL database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/rails-ex/blob/master/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.",
            "iconClass": "icon-ruby",
            "openshift.io/display-name": "Rails + PostgreSQL (Ephemeral)",
            "openshift.io/documentation-url": "https://github.com/sclorg/rails-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a Rails application, including a build configuration, application deployment configuration, and database deployment configuration.  The database is stored in non-persistent storage, so this configuration should be used for experimental purposes only.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,ruby,rails",
            "template.openshift.io/bindable": "false"
        },
        "name": "rails-postgresql-example"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "application-password": "${APPLICATION_PASSWORD}",
                "application-user": "${APPLICATION_USER}",
                "database-password": "${DATABASE_PASSWORD}",
                "database-user": "${DATABASE_USER}",
                "keybase": "${SECRET_KEY_BASE}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {
                    "script": "bundle exec rake test"
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "RUBYGEM_MIRROR",
                                "value": "${RUBYGEM_MIRROR}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "ruby:2.5",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "recreateParams": {
                        "pre": {
                            "execNewPod": {
                                "command": [
                                    "./migrate-database.sh"
                                ],
                                "containerName": "${NAME}"
                            },
                            "failurePolicy": "Abort"
                        }
                    },
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "DATABASE_SERVICE_NAME",
                                        "value": "${DATABASE_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "POSTGRESQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "SECRET_KEY_BASE",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "keybase",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_MAX_CONNECTIONS",
                                        "value": "${POSTGRESQL_MAX_CONNECTIONS}"
                                    },
                                    {
                                        "name": "POSTGRESQL_SHARED_BUFFERS",
                                        "value": "${POSTGRESQL_SHARED_BUFFERS}"
                                    },
                                    {
                                        "name": "APPLICATION_DOMAIN",
                                        "value": "${APPLICATION_DOMAIN}"
                                    },
                                    {
                                        "name": "APPLICATION_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "application-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "APPLICATION_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "application-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "RAILS_ENV",
                                        "value": "${RAILS_ENV}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/articles",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 10,
                                    "timeoutSeconds": 3
                                },
                                "name": "${NAME}",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/articles",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "${NAME}"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "postgresql",
                        "port": 5432,
                        "targetPort": 5432
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "POSTGRESQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "POSTGRESQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "POSTGRESQL_MAX_CONNECTIONS",
                                        "value": "${POSTGRESQL_MAX_CONNECTIONS}"
                                    },
                                    {
                                        "name": "POSTGRESQL_SHARED_BUFFERS",
                                        "value": "${POSTGRESQL_SHARED_BUFFERS}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container",
                                            "--live"
                                        ]
                                    },
                                    "initialDelaySeconds": 120,
                                    "timeoutSeconds": 10
                                },
                                "name": "postgresql",
                                "ports": [
                                    {
                                        "containerPort": 5432
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/usr/libexec/check-container"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_POSTGRESQL_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/pgsql/data",
                                        "name": "data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "emptyDir": {},
                                "name": "data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "postgresql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "postgresql:10",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "rails-postgresql-example"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Maximum amount of memory the Rails container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Maximum amount of memory the PostgreSQL container can use.",
            "displayName": "Memory Limit (PostgreSQL)",
            "name": "MEMORY_POSTGRESQL_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/rails-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the Rails service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "description": "Your secret key for verifying the integrity of signed cookies.",
            "displayName": "Secret Key",
            "from": "[a-z0-9]{127}",
            "generate": "expression",
            "name": "SECRET_KEY_BASE"
        },
        {
            "description": "The application user that is used within the sample application to authorize access on pages.",
            "displayName": "Application Username",
            "name": "APPLICATION_USER",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "The application password that is used within the sample application to authorize access on pages.",
            "displayName": "Application Password",
            "name": "APPLICATION_PASSWORD",
            "required": true,
            "value": "secret"
        },
        {
            "description": "Environment under which the sample application will run. Could be set to production, development or test.",
            "displayName": "Rails Environment",
            "name": "RAILS_ENV",
            "required": true,
            "value": "production"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "postgresql"
        },
        {
            "displayName": "Database Username",
            "from": "user[A-Z0-9]{3}",
            "generate": "expression",
            "name": "DATABASE_USER"
        },
        {
            "displayName": "Database Password",
            "from": "[a-zA-Z0-9]{8}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "root"
        },
        {
            "displayName": "Maximum Database Connections",
            "name": "POSTGRESQL_MAX_CONNECTIONS",
            "value": "100"
        },
        {
            "displayName": "Shared Buffer Amount",
            "name": "POSTGRESQL_SHARED_BUFFERS",
            "value": "12MB"
        },
        {
            "description": "The custom RubyGems mirror URL",
            "displayName": "Custom RubyGems Mirror URL",
            "name": "RUBYGEM_MIRROR",
            "value": ""
        }
    ]
}`)

func examplesQuickstartsRailsPostgresqlJsonBytes() ([]byte, error) {
	return _examplesQuickstartsRailsPostgresqlJson, nil
}

func examplesQuickstartsRailsPostgresqlJson() (*asset, error) {
	bytes, err := examplesQuickstartsRailsPostgresqlJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/rails-postgresql.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesPrometheusPrometheusYaml = []byte(`apiVersion: template.openshift.io/v1
kind: Template
metadata:
  name: prometheus
  annotations:
    "openshift.io/display-name": Prometheus
    description: |
      A monitoring solution for an OpenShift cluster - collect and gather metrics and alerts from nodes, services, and the infrastructure. This is a tech preview feature.
    iconClass: fa fa-cogs
    tags: "monitoring,prometheus, alertmanager,time-series"
parameters:
- description: The namespace to instantiate prometheus under. Defaults to 'kube-system'.
  name: NAMESPACE
  value: kube-system
- description: The location of the proxy image
  name: IMAGE_PROXY
  value: openshift/oauth-proxy:v1.0.0
- description: The location of the prometheus image
  name: IMAGE_PROMETHEUS
  value: openshift/prometheus:v2.3.2
- description: The location of the alertmanager image
  name: IMAGE_ALERTMANAGER
  value: openshift/prometheus-alertmanager:v0.15.1
- description: The location of alert-buffer image
  name: IMAGE_ALERT_BUFFER
  value: openshift/prometheus-alert-buffer:v0.0.2
- description: The session secret for the proxy
  name: SESSION_SECRET
  generate: expression
  from: "[a-zA-Z0-9]{43}"

objects:
# Authorize the prometheus service account to read data about the cluster
- apiVersion: v1
  kind: ServiceAccount
  metadata:
    name: prometheus
    namespace: "${NAMESPACE}"
    annotations:
      serviceaccounts.openshift.io/oauth-redirectreference.prom: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"prometheus"}}'
      serviceaccounts.openshift.io/oauth-redirectreference.alerts: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"alerts"}}'
      serviceaccounts.openshift.io/oauth-redirectreference.alertmanager: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"alertmanager"}}'

# Create a service account for accessing prometheus data
- apiVersion: v1
  kind: ServiceAccount
  metadata:
    name: prometheus-reader
    namespace: "${NAMESPACE}"

# Create a service account for prometheus to use to scrape other infrastructure components
- apiVersion: v1
  kind: ServiceAccount
  metadata:
    name: prometheus-scraper
    namespace: "${NAMESPACE}"

- apiVersion: v1
  kind: Secret
  metadata:
    name: prometheus-scraper
    namespace: "${NAMESPACE}"
    annotations:
      kubernetes.io/service-account.name: prometheus-scraper
  type: kubernetes.io/service-account-token

- apiVersion: rbac.authorization.k8s.io/v1
  kind: ClusterRole
  metadata:
    name: prometheus-scraper
  rules:
  - apiGroups:
    - route.openshift.io
    resources:
    - routers/metrics
    verbs:
    - get
  - apiGroups:
    - image.openshift.io
    resources:
    - registry/metrics
    verbs:
    - get

- apiVersion: authorization.openshift.io/v1
  kind: ClusterRoleBinding
  metadata:
    name: prometheus-scraper
  roleRef:
    name: prometheus-scraper
  subjects:
  - kind: ServiceAccount
    name: prometheus-scraper
    namespace: "${NAMESPACE}"

- apiVersion: authorization.openshift.io/v1
  kind: ClusterRoleBinding
  metadata:
    name: prometheus-cluster-reader
  roleRef:
    name: cluster-reader
  subjects:
  - kind: ServiceAccount
    name: prometheus
    namespace: "${NAMESPACE}"

- apiVersion: authorization.openshift.io/v1
  kind: RoleBinding
  metadata:
    name: prometheus-reader
    namespace: "${NAMESPACE}"
  roleRef:
    name: view
  subjects:
  - kind: ServiceAccount
    name: prometheus-reader
    namespace: "${NAMESPACE}"

# Create a fully end-to-end TLS connection to the prometheus proxy
- apiVersion: route.openshift.io/v1
  kind: Route
  metadata:
    name: prometheus
    namespace: "${NAMESPACE}"
  spec:
    to:
      name: prometheus
    tls:
      termination: Reencrypt
      insecureEdgeTerminationPolicy: Redirect
- apiVersion: v1
  kind: Service
  metadata:
    annotations:
      prometheus.io/scrape: "true"
      prometheus.io/scheme: https
      service.alpha.openshift.io/serving-cert-secret-name: prometheus-tls
    labels:
      name: prometheus
    name: prometheus
    namespace: "${NAMESPACE}"
  spec:
    ports:
    - name: prometheus
      port: 443
      protocol: TCP
      targetPort: 8443
    selector:
      app: prometheus
- apiVersion: v1
  kind: Secret
  metadata:
    name: prometheus-proxy
    namespace: "${NAMESPACE}"
  stringData:
    session_secret: "${SESSION_SECRET}="

# Create a fully end-to-end TLS connection to the alert proxy
- apiVersion: route.openshift.io/v1
  kind: Route
  metadata:
    name: alerts
    namespace: "${NAMESPACE}"
  spec:
    to:
      name: alerts
    tls:
      termination: Reencrypt
      insecureEdgeTerminationPolicy: Redirect
- apiVersion: v1
  kind: Service
  metadata:
    annotations:
      service.alpha.openshift.io/serving-cert-secret-name: alerts-tls
    labels:
      name: alerts
    name: alerts
    namespace: "${NAMESPACE}"
  spec:
    ports:
    - name: alerts
      port: 443
      protocol: TCP
      targetPort: 9443
    selector:
      app: prometheus
- apiVersion: v1
  kind: Secret
  metadata:
    name: alerts-proxy
    namespace: "${NAMESPACE}"
  stringData:
    session_secret: "${SESSION_SECRET}="

# Create a fully end-to-end TLS connection to the alertmanager proxy
- apiVersion: route.openshift.io/v1
  kind: Route
  metadata:
    name: alertmanager
    namespace: "${NAMESPACE}"
  spec:
    to:
      name: alertmanager
    tls:
      termination: Reencrypt
      insecureEdgeTerminationPolicy: Redirect
- apiVersion: v1
  kind: Service
  metadata:
    annotations:
      service.alpha.openshift.io/serving-cert-secret-name: alertmanager-tls
    labels:
      name: alertmanager
    name: alertmanager
    namespace: "${NAMESPACE}"
  spec:
    ports:
    - name: alertmanager
      port: 443
      protocol: TCP
      targetPort: 10443
    selector:
      app: prometheus
- apiVersion: v1
  kind: Secret
  metadata:
    name: alertmanager-proxy
    namespace: "${NAMESPACE}"
  stringData:
    session_secret: "${SESSION_SECRET}="

- apiVersion: apps/v1beta1
  kind: StatefulSet
  metadata:
    labels:
      app: prometheus
    name: prometheus
    namespace: "${NAMESPACE}"
  spec:
    updateStrategy:
      type: RollingUpdate
    podManagementPolicy: Parallel
    selector:
      matchLabels:
        app: prometheus
    template:
      metadata:
        labels:
          app: prometheus
        name: prometheus
      spec:
        serviceAccountName: prometheus
        containers:
        # Deploy Prometheus behind an oauth proxy
        - name: prom-proxy
          image: ${IMAGE_PROXY}
          imagePullPolicy: IfNotPresent
          ports:
          - containerPort: 8443
            name: web
          args:
          - -provider=openshift
          - -https-address=:8443
          - -http-address=
          - -email-domain=*
          - -upstream=http://localhost:9090
          - -client-id=system:serviceaccount:${NAMESPACE}:prometheus
          - -openshift-ca=/etc/pki/tls/cert.pem
          - -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
          - '-openshift-sar={"resource": "namespaces", "verb": "get", "resourceName": "${NAMESPACE}", "namespace": "${NAMESPACE}"}'
          - '-openshift-delegate-urls={"/": {"resource": "namespaces", "verb": "get", "resourceName": "${NAMESPACE}", "namespace": "${NAMESPACE}"}}'
          - -tls-cert=/etc/tls/private/tls.crt
          - -tls-key=/etc/tls/private/tls.key
          - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token
          - -cookie-secret-file=/etc/proxy/secrets/session_secret
          - -skip-auth-regex=^/metrics
          volumeMounts:
          - mountPath: /etc/tls/private
            name: prometheus-tls-secret
          - mountPath: /etc/proxy/secrets
            name: prometheus-proxy-secret
          - mountPath: /prometheus
            name: prometheus-data

        - name: prometheus
          args:
          - --storage.tsdb.retention=6h
          - --config.file=/etc/prometheus/prometheus.yml
          - --web.listen-address=localhost:9090
          image: ${IMAGE_PROMETHEUS}
          imagePullPolicy: IfNotPresent
          livenessProbe:
            exec:
              command:
              - /bin/bash
              - -c
              - |-
                set -euo pipefail;
                touch /tmp/prometheusconfig.hash;
                if [[ $(find /etc/prometheus -type f | sort | xargs md5sum | md5sum) != $(cat /tmp/prometheusconfig.hash) ]]; then
                  find /etc/prometheus -type f | sort | xargs md5sum | md5sum > /tmp/prometheusconfig.hash;
                  kill -HUP 1;
                fi
            initialDelaySeconds: 60
            periodSeconds: 60
          volumeMounts:
          - mountPath: /etc/prometheus
            name: prometheus-config
          - mountPath: /prometheus
            name: prometheus-data
          - mountPath: /var/run/secrets/kubernetes.io/scraper
            name: prometheus-scraper-secret

        # Deploy alertmanager behind prometheus-alert-buffer behind an oauth proxy
        # use http port=4190 and https port=9943 to differ from prom-proxy
        - name: alerts-proxy
          image: ${IMAGE_PROXY}
          imagePullPolicy: IfNotPresent
          ports:
          - containerPort: 9443
            name: web
          args:
          - -provider=openshift
          - -https-address=:9443
          - -http-address=
          - -email-domain=*
          - -upstream=http://localhost:9099
          - -client-id=system:serviceaccount:${NAMESPACE}:prometheus
          - -openshift-ca=/etc/pki/tls/cert.pem
          - -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
          - '-openshift-sar={"resource": "namespaces", "verb": "get", "resourceName": "${NAMESPACE}", "namespace": "${NAMESPACE}"}'
          - '-openshift-delegate-urls={"/": {"resource": "namespaces", "verb": "get", "resourceName": "${NAMESPACE}", "namespace": "${NAMESPACE}"}}'
          - -tls-cert=/etc/tls/private/tls.crt
          - -tls-key=/etc/tls/private/tls.key
          - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token
          - -cookie-secret-file=/etc/proxy/secrets/session_secret
          - -skip-auth-regex=^/metrics
          volumeMounts:
          - mountPath: /etc/tls/private
            name: alerts-tls-secret
          - mountPath: /etc/proxy/secrets
            name: alerts-proxy-secrets

        - name: alert-buffer
          args:
          - --storage-path=/alert-buffer/messages.db
          image: ${IMAGE_ALERT_BUFFER}
          imagePullPolicy: IfNotPresent
          volumeMounts:
          - mountPath: /alert-buffer
            name: alerts-data

        - name: alertmanager-proxy
          image: ${IMAGE_PROXY}
          imagePullPolicy: IfNotPresent
          ports:
          - containerPort: 10443
            name: web
          args:
          - -provider=openshift
          - -https-address=:10443
          - -http-address=
          - -email-domain=*
          - -upstream=http://localhost:9093
          - -client-id=system:serviceaccount:${NAMESPACE}:prometheus
          - -openshift-ca=/etc/pki/tls/cert.pem
          - -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
          - '-openshift-sar={"resource": "namespaces", "verb": "get", "resourceName": "${NAMESPACE}", "namespace": "${NAMESPACE}"}'
          - '-openshift-delegate-urls={"/": {"resource": "namespaces", "verb": "get", "resourceName": "${NAMESPACE}", "namespace": "${NAMESPACE}"}}'
          - -tls-cert=/etc/tls/private/tls.crt
          - -tls-key=/etc/tls/private/tls.key
          - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token
          - -cookie-secret-file=/etc/proxy/secrets/session_secret
          - -skip-auth-regex=^/metrics
          volumeMounts:
          - mountPath: /etc/tls/private
            name: alertmanager-tls-secret
          - mountPath: /etc/proxy/secrets
            name: alertmanager-proxy-secret

        - name: alertmanager
          args:
          - --config.file=/etc/alertmanager/alertmanager.yml
          image: ${IMAGE_ALERTMANAGER}
          imagePullPolicy: IfNotPresent
          volumeMounts:
          - mountPath: /etc/alertmanager
            name: alertmanager-config
          - mountPath: /alertmanager
            name: alertmanager-data

        restartPolicy: Always
        volumes:

        - name: prometheus-config
          configMap:
            defaultMode: 420
            name: prometheus
        - name: prometheus-scraper-secret
          secret:
            secretName: prometheus-scraper
        - name: prometheus-proxy-secret
          secret:
            secretName: prometheus-proxy
        - name: prometheus-tls-secret
          secret:
            secretName: prometheus-tls
        - name: prometheus-data
          emptyDir: {}

        - name: alertmanager-config
          configMap:
            defaultMode: 420
            name: alertmanager
        - name: alertmanager-tls-secret
          secret:
            secretName: alertmanager-tls
        - name: alertmanager-proxy-secret
          secret:
            secretName: alertmanager-proxy

        - name: alerts-proxy-secrets
          secret:
            secretName: alerts-proxy
        - name: alerts-tls-secret
          secret:
            secretName: alerts-tls
        - name: alertmanager-data
          emptyDir: {}
        - name: alerts-data
          emptyDir: {}

- apiVersion: v1
  kind: ConfigMap
  metadata:
    name: prometheus
    namespace: "${NAMESPACE}"
  data:
    alerting.rules: |
      groups:
      - name: example-rules
        interval: 30s # defaults to global interval
        rules:
        - alert: Node Down
          expr: up{job="kubernetes-nodes"} == 0
          annotations:
            miqTarget: "ContainerNode"
            severity: "HIGH"
            message: "{{$labels.instance}} is down"

    recording.rules: |
      groups:
      - name: aggregate_container_resources
        rules:
        - record: container_cpu_usage_rate
          expr: sum without (cpu) (rate(container_cpu_usage_seconds_total[5m]))
        - record: container_memory_rss_by_type
          expr: container_memory_rss{id=~"/|/system.slice|/kubepods.slice"} > 0
        - record: container_cpu_usage_percent_by_host
          expr: sum(rate(container_cpu_usage_seconds_total{id="/"}[5m])) BY(kubernetes_io_hostname) / ON(kubernetes_io_hostname) machine_cpu_cores
        - record: apiserver_request_count_rate_by_resources
          expr: sum without (client,instance,contentType) (rate(apiserver_request_count[5m]))

    prometheus.yml: |
      rule_files:
        - '*.rules'

      # A scrape configuration for running Prometheus on a Kubernetes cluster.
      # This uses separate scrape configs for cluster components (i.e. API server, node)
      # and services to allow each to use different authentication configs.
      #
      # Kubernetes labels will be added as Prometheus labels on metrics via the
      # `+"`"+`labelmap`+"`"+` relabeling action.

      # Scrape config for API servers.
      #
      # Kubernetes exposes API servers as endpoints to the default/kubernetes
      # service so this uses `+"`"+`endpoints`+"`"+` role and uses relabelling to only keep
      # the endpoints associated with the default/kubernetes service using the
      # default named port `+"`"+`https`+"`"+`. This works for single API server deployments as
      # well as HA API server deployments.
      scrape_configs:
      - job_name: 'kubernetes-apiservers'

        kubernetes_sd_configs:
        - role: endpoints
          namespaces:
            names:
            - default

        scheme: https
        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token

        # Keep only the default/kubernetes service endpoints for the https port. This
        # will add targets for each API server which Kubernetes adds an endpoint to
        # the default/kubernetes service.
        relabel_configs:
        - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
          action: keep
          regex: kubernetes;https

      # Scrape config for controllers.
      #
      # Each master node exposes a /metrics endpoint on :8444 that contains operational metrics for
      # the controllers.
      #
      # TODO: move this to a pure endpoints based metrics gatherer when controllers are exposed via
      #       endpoints.
      - job_name: 'kubernetes-controllers'

        scheme: https
        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token

        kubernetes_sd_configs:
        - role: endpoints
          namespaces:
            names:
            - default

        # Keep only the default/kubernetes service endpoints for the https port, and then
        # set the port to 8444. This is the default configuration for the controllers on OpenShift
        # masters.
        relabel_configs:
        - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
          action: keep
          regex: kubernetes;https
        - source_labels: [__address__]
          action: replace
          target_label: __address__
          regex: (.+)(?::\d+)
          replacement: $1:8444

      # Scrape config for nodes.
      #
      # Each node exposes a /metrics endpoint that contains operational metrics for
      # the Kubelet and other components.
      - job_name: 'kubernetes-nodes'

        scheme: https
        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token

        kubernetes_sd_configs:
        - role: node

        # Drop a very high cardinality metric that is incorrect in 3.7. It will be
        # fixed in 3.9.
        metric_relabel_configs:
        - source_labels: [__name__]
          action: drop
          regex: 'openshift_sdn_pod_(setup|teardown)_latency(.*)'

        relabel_configs:
        - action: labelmap
          regex: __meta_kubernetes_node_label_(.+)

      # Scrape config for cAdvisor.
      #
      # Beginning in Kube 1.7, each node exposes a /metrics/cadvisor endpoint that
      # reports container metrics for each running pod. Scrape those by default.
      - job_name: 'kubernetes-cadvisor'

        scheme: https
        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token

        metrics_path: /metrics/cadvisor

        kubernetes_sd_configs:
        - role: node

        # Exclude a set of high cardinality metrics that can contribute to significant
        # memory use in large clusters. These can be selectively enabled as necessary
        # for medium or small clusters.
        metric_relabel_configs:
        - source_labels: [__name__]
          action: drop
          regex: 'container_(cpu_user_seconds_total|cpu_cfs_periods_total|memory_usage_bytes|memory_swap|memory_cache|last_seen|fs_(read_seconds_total|write_seconds_total|sector_(.*)|io_(.*)|reads_merged_total|writes_merged_total)|tasks_state|memory_failcnt|memory_failures_total|spec_memory_swap_limit_bytes|fs_(.*)_bytes_total|spec_(.*))'

        relabel_configs:
        - action: labelmap
          regex: __meta_kubernetes_node_label_(.+)

      # Scrape config for service endpoints.
      #
      # The relabeling allows the actual service scrape endpoint to be configured
      # via the following annotations:
      #
      # * `+"`"+`prometheus.io/scrape`+"`"+`: Only scrape services that have a value of `+"`"+`true`+"`"+`
      # * `+"`"+`prometheus.io/scheme`+"`"+`: If the metrics endpoint is secured then you will need
      # to set this to `+"`"+`https`+"`"+` & most likely set the `+"`"+`tls_config`+"`"+` of the scrape config.
      # * `+"`"+`prometheus.io/path`+"`"+`: If the metrics path is not `+"`"+`/metrics`+"`"+` override this.
      # * `+"`"+`prometheus.io/port`+"`"+`: If the metrics are exposed on a different port to the
      # service then set this appropriately.
      - job_name: 'kubernetes-service-endpoints'

        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
          # TODO: this should be per target
          insecure_skip_verify: true

        kubernetes_sd_configs:
        - role: endpoints

        relabel_configs:
        # only scrape infrastructure components
        - source_labels: [__meta_kubernetes_namespace]
          action: keep
          regex: 'default|logging|metrics|kube-.+|openshift|openshift-.+'
        # drop infrastructure components managed by other scrape targets
        - source_labels: [__meta_kubernetes_service_name]
          action: drop
          regex: 'prometheus-node-exporter'
        # only those that have requested scraping
        - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
          action: keep
          regex: true
        - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
          action: replace
          target_label: __scheme__
          regex: (https?)
        - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
          action: replace
          target_label: __metrics_path__
          regex: (.+)
        - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
          action: replace
          target_label: __address__
          regex: (.+)(?::\d+);(\d+)
          replacement: $1:$2
        - action: labelmap
          regex: __meta_kubernetes_service_label_(.+)
        - source_labels: [__meta_kubernetes_namespace]
          action: replace
          target_label: kubernetes_namespace
        - source_labels: [__meta_kubernetes_service_name]
          action: replace
          target_label: kubernetes_name

      # Scrape config for node-exporter, which is expected to be running on port 9100.
      - job_name: 'kubernetes-nodes-exporter'

        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt

        kubernetes_sd_configs:
        - role: node

        metric_relabel_configs:
        - source_labels: [__name__]
          action: drop
          regex: 'node_cpu|node_(disk|scrape_collector)_.+'
        # preserve a subset of the network, netstat, vmstat, and filesystem series
        - source_labels: [__name__]
          action: replace
          regex: '(node_(netstat_Ip_.+|vmstat_(nr|thp)_.+|filesystem_(free|size|device_error)|network_(transmit|receive)_(drop|errs)))'
          target_label: __name__
          replacement: renamed_$1
        - source_labels: [__name__]
          action: drop
          regex: 'node_(netstat|vmstat|filesystem|network)_.+'
        - source_labels: [__name__]
          action: replace
          regex: 'renamed_(.+)'
          target_label: __name__
          replacement: $1
        # drop any partial expensive series
        - source_labels: [__name__, device]
          action: drop
          regex: 'node_network_.+;veth.+'
        - source_labels: [__name__, mountpoint]
          action: drop
          regex: 'node_filesystem_(free|size|device_error);([^/].*|/.+)'

        relabel_configs:
        - source_labels: [__address__]
          regex: '(.*):10250'
          replacement: '${1}:9100'
          target_label: __address__
        - source_labels: [__meta_kubernetes_node_label_kubernetes_io_hostname]
          target_label: __instance__
        - action: labelmap
          regex: __meta_kubernetes_node_label_(.+)

      # TODO: auto-generate these sections, or add a dynamic infrastructure scraper
      # Scrape config for the template service broker
      - job_name: 'openshift-template-service-broker'
        scheme: https
        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
          server_name: apiserver.openshift-template-service-broker.svc
        bearer_token_file: /var/run/secrets/kubernetes.io/scraper/token
        kubernetes_sd_configs:
        - role: endpoints
          namespaces:
            names:
            - openshift-template-service-broker

        relabel_configs:
        - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
          action: keep
          regex: api-server;https

      # Scrape config for the router
      - job_name: 'openshift-router'
        scheme: https
        tls_config:
          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
          server_name: router.default.svc
        bearer_token_file: /var/run/secrets/kubernetes.io/scraper/token
        kubernetes_sd_configs:
        - role: endpoints
          namespaces:
            names:
            - default
        relabel_configs:
        - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
          action: keep
          regex: router;1936-tcp

      alerting:
        alertmanagers:
        - scheme: http
          static_configs:
          - targets:
            - "localhost:9093"

- apiVersion: v1
  kind: ConfigMap
  metadata:
    name: alertmanager
    namespace: "${NAMESPACE}"
  data:
    alertmanager.yml: |
      global:

      # The root route on which each incoming alert enters.
      route:
        # default route if none match
        receiver: alert-buffer-wh

        # The labels by which incoming alerts are grouped together. For example,
        # multiple alerts coming in for cluster=A and alertname=LatencyHigh would
        # be batched into a single group.
        # TODO:
        group_by: []

        # All the above attributes are inherited by all child routes and can
        # overwritten on each.

      receivers:
      - name: alert-buffer-wh
        webhook_configs:
        - url: http://localhost:9099/topics/alerts
`)

func examplesPrometheusPrometheusYamlBytes() ([]byte, error) {
	return _examplesPrometheusPrometheusYaml, nil
}

func examplesPrometheusPrometheusYaml() (*asset, error) {
	bytes, err := examplesPrometheusPrometheusYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/prometheus/prometheus.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesHelloOpenshiftDockerfile = []byte(`FROM scratch
MAINTAINER Jessica Forrester <jforrest@redhat.com>
COPY bin/hello-openshift /hello-openshift
EXPOSE 8080 8888
USER 1001
ENTRYPOINT ["/hello-openshift"]
`)

func examplesHelloOpenshiftDockerfileBytes() ([]byte, error) {
	return _examplesHelloOpenshiftDockerfile, nil
}

func examplesHelloOpenshiftDockerfile() (*asset, error) {
	bytes, err := examplesHelloOpenshiftDockerfileBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/hello-openshift/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesHelloOpenshiftHelloPodJson = []byte(`{
  "kind": "Pod",
  "apiVersion": "v1",
  "metadata": {
    "name": "hello-openshift",
    "creationTimestamp": null,
    "labels": {
      "name": "hello-openshift"
    }
  },
  "spec": {
    "containers": [
      {
        "name": "hello-openshift",
        "image": "openshift/hello-openshift",
        "ports": [
          {
            "containerPort": 8080,
            "protocol": "TCP"
          }
        ],
        "resources": {},
        "volumeMounts": [
          {
            "name":"tmp",
            "mountPath":"/tmp"
          }
        ],
        "terminationMessagePath": "/dev/termination-log",
        "imagePullPolicy": "IfNotPresent",
        "capabilities": {},
        "securityContext": {
          "capabilities": {},
          "privileged": false
        }
      }
    ],
    "volumes": [
      {
        "name":"tmp",
        "emptyDir": {}
      }
    ],
    "restartPolicy": "Always",
    "dnsPolicy": "ClusterFirst",
    "serviceAccount": ""
  },
  "status": {}
}
`)

func examplesHelloOpenshiftHelloPodJsonBytes() ([]byte, error) {
	return _examplesHelloOpenshiftHelloPodJson, nil
}

func examplesHelloOpenshiftHelloPodJson() (*asset, error) {
	bytes, err := examplesHelloOpenshiftHelloPodJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/hello-openshift/hello-pod.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesHelloOpenshiftHelloProjectJson = []byte(`{
  "kind": "Project",
  "apiVersion": "v1",
  "metadata": {
    "name": "hello-openshift-project",
    "creationTimestamp": null,
    "labels": {
      "name": "hello-openshift-project"
    },
    "annotations": {
      "openshift.io/description": "This is an example project to demonstrate OpenShift v3",
      "openshift.io/display-name": "Hello OpenShift"
    }
  },
  "spec": {},
  "status": {}
}
`)

func examplesHelloOpenshiftHelloProjectJsonBytes() ([]byte, error) {
	return _examplesHelloOpenshiftHelloProjectJson, nil
}

func examplesHelloOpenshiftHelloProjectJson() (*asset, error) {
	bytes, err := examplesHelloOpenshiftHelloProjectJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/hello-openshift/hello-project.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesJenkinsApplicationTemplateJson = []byte(`{
  "kind": "Template",
  "apiVersion": "v1",
  "metadata": {
    "name": "nodejs-helloworld-sample",
    "annotations": {
      "description": "This example shows how to create a simple nodejs application in openshift origin v3",
      "iconClass": "icon-nodejs",
      "tags": "instant-app,nodejs"
    }
  },
  "objects": [
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend-prod"
      },
      "spec": {
        "ports": [
          {
            "name": "web",
            "protocol": "TCP",
            "port": 8080,
            "targetPort": 8080,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "frontend-prod"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {}
      }
    },
    {
      "kind": "Route",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "to": {
          "kind": "Service",
          "name": "frontend"
        },
        "tls": {
          "termination": "edge"
        }
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend-prod"
      },
      "spec": {
        "strategy": {
          "type": "Rolling",
          "rollingParams": {
            "updatePeriodSeconds": 1,
            "intervalSeconds": 1,
            "timeoutSeconds": 120
          }
        },
        "triggers": [
          {
            "type": "ImageChange",
            "imageChangeParams": {
              "automatic": true,
              "containerNames": [
                "nodejs-helloworld"
              ],
              "from": {
                "kind": "ImageStreamTag",
                "name": "origin-nodejs-sample:prod"
              }
            }
          },
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 1,
        "selector": {
          "name":"frontend-prod"
        },
        "template": {
          "metadata": {
            "labels": {
              "name": "frontend-prod"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "nodejs-helloworld",
                "image": " ",
                "ports": [
                  {
                    "containerPort": 8080,
                    "protocol": "TCP"
                  }
                ],
                "resources": {
                  "limits": {
                    "memory": "${MEMORY_LIMIT}"
                  }
                },
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "IfNotPresent",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      }
    },
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "ports": [
          {
            "name": "web",
            "protocol": "TCP",
            "port": 8080,
            "targetPort": 8080,
            "nodePort": 0
          }
        ],
        "selector": {
          "name": "frontend"
        },
        "type": "ClusterIP",
        "sessionAffinity": "None"
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-nodejs-sample"
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-nodejs-sample2"
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "origin-nodejs-sample3"
      }
    },
    {
      "kind": "ImageStream",
      "apiVersion": "v1",
      "metadata": {
        "name": "nodejs-010-centos7"
      },
      "spec": {
        "dockerImageRepository": "${NAMESPACE}/nodejs-010-centos7"
      }
    },
    {
      "kind": "BuildConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend",
        "labels": {
          "name": "nodejs-sample-build"
        }
      },
      "spec": {
        "triggers": [
          {
            "type": "GitHub",
            "github": {
              "secret": "secret101"
            }
          },
          {
            "type": "Generic",
            "generic": {
              "secret": "secret101"
            }
          }
        ],
        "source": {
          "type": "Git",
          "git": {
            "uri": "https://github.com/openshift/nodejs-ex.git"
          }
        },
        "strategy": {
          "type": "Source",
          "sourceStrategy": {
            "from": {
              "kind": "ImageStreamTag",
              "name": "nodejs-010-centos7:latest"
            }
          }
        },
        "output": {
          "to": {
            "kind": "ImageStreamTag",
            "name": "origin-nodejs-sample:latest"
          }
        },
        "resources": {}
      }
    },
    {
      "kind": "DeploymentConfig",
      "apiVersion": "v1",
      "metadata": {
        "name": "frontend"
      },
      "spec": {
        "strategy": {
          "type": "Rolling",
          "rollingParams": {
            "updatePeriodSeconds": 1,
            "intervalSeconds": 1,
            "timeoutSeconds": 120
          }
        },
        "triggers": [
          {
            "type": "ImageChange",
            "imageChangeParams": {
              "automatic": false,
              "containerNames": [
                "nodejs-helloworld"
              ],
              "from": {
                "kind": "ImageStreamTag",
                "name": "origin-nodejs-sample:latest"
              }
            }
          },
          {
            "type": "ConfigChange"
          }
        ],
        "replicas": 1,
        "selector": {
          "name":"frontend"
          },
        "template": {
          "metadata": {
            "labels": {
              "name": "frontend"
            }
          },
          "spec": {
            "containers": [
              {
                "name": "nodejs-helloworld",
                "image": " ",
                "ports": [
                  {
                    "containerPort": 8080,
                    "protocol": "TCP"
                  }
                ],
                "resources": {
                  "limits": {
                    "memory": "${MEMORY_LIMIT}"
                  }
                },
                "terminationMessagePath": "/dev/termination-log",
                "imagePullPolicy": "IfNotPresent",
                "securityContext": {
                  "capabilities": {},
                  "privileged": false
                }
              }
            ],
            "restartPolicy": "Always",
            "dnsPolicy": "ClusterFirst"
          }
        }
      }
    }
  ],
  "parameters": [
    {
      "name": "MEMORY_LIMIT",
      "displayName": "Memory Limit",
      "description": "Maximum amount of memory the container can use.",
      "value": "512Mi"
    },
    {
      "name": "NAMESPACE",
      "displayName": "Namespace",
      "description": "The OpenShift Namespace where the ImageStream resides.",
      "value": "openshift"
    },
   {
      "name": "ADMIN_USERNAME",
      "displayName": "Administrator Username",
      "description": "Username for the administrator of this application.",
      "generate": "expression",
      "from": "admin[A-Z0-9]{3}"
    },
    {
      "name": "ADMIN_PASSWORD",
      "displayName": "Administrator Password",
      "description": "Password for the administrator of this application.",
      "generate": "expression",
      "from": "[a-zA-Z0-9]{8}"
    }
  ],
  "labels": {
    "template": "application-template-stibuild"
  }
}
`)

func examplesJenkinsApplicationTemplateJsonBytes() ([]byte, error) {
	return _examplesJenkinsApplicationTemplateJson, nil
}

func examplesJenkinsApplicationTemplateJson() (*asset, error) {
	bytes, err := examplesJenkinsApplicationTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/jenkins/application-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesJenkinsJenkinsEphemeralTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "jenkins-ephemeral",
        "template": "jenkins-ephemeral-template"
    },
    "message": "A Jenkins service has been created in your project.  Log into Jenkins with your OpenShift account.  The tutorial at https://github.com/openshift/origin/blob/master/examples/jenkins/README.md contains more information about using this template.",
    "metadata": {
        "annotations": {
            "description": "Jenkins service, without persistent storage.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.",
            "iconClass": "icon-jenkins",
            "openshift.io/display-name": "Jenkins (Ephemeral)",
            "openshift.io/documentation-url": "https://docs.okd.io/latest/using_images/other_images/jenkins.html",
            "openshift.io/long-description": "This template deploys a Jenkins server capable of managing OpenShift Pipeline builds and supporting OpenShift-based oauth login.  The Jenkins configuration is stored in non-persistent storage, so this configuration should be used for experimental purposes only.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "instant-app,jenkins"
        },
        "name": "jenkins-ephemeral"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "annotations": {
                    "haproxy.router.openshift.io/timeout": "4m",
                    "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}"
                },
                "name": "${JENKINS_SERVICE_NAME}"
            },
            "spec": {
                "tls": {
                    "insecureEdgeTerminationPolicy": "Redirect",
                    "termination": "edge"
                },
                "to": {
                    "kind": "Service",
                    "name": "${JENKINS_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${JENKINS_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${JENKINS_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${JENKINS_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "capabilities": {},
                                "env": [
                                    {
                                        "name": "OPENSHIFT_ENABLE_OAUTH",
                                        "value": "${ENABLE_OAUTH}"
                                    },
                                    {
                                        "name": "OPENSHIFT_ENABLE_REDIRECT_PROMPT",
                                        "value": "true"
                                    },
                                    {
                                        "name": "DISABLE_ADMINISTRATIVE_MONITORS",
                                        "value": "${DISABLE_ADMINISTRATIVE_MONITORS}"
                                    },
                                    {
                                        "name": "KUBERNETES_MASTER",
                                        "value": "https://kubernetes.default:443"
                                    },
                                    {
                                        "name": "KUBERNETES_TRUST_CERTIFICATES",
                                        "value": "true"
                                    },
                                    {
                                        "name": "JENKINS_SERVICE_NAME",
                                        "value": "${JENKINS_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "JNLP_SERVICE_NAME",
                                        "value": "${JNLP_SERVICE_NAME}"
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "failureThreshold": 2,
                                    "httpGet": {
                                        "path": "/login",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 420,
                                    "periodSeconds": 360,
                                    "timeoutSeconds": 240
                                },
                                "name": "jenkins",
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/login",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 240
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "securityContext": {
                                    "capabilities": {},
                                    "privileged": false
                                },
                                "terminationMessagePath": "/dev/termination-log",
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/jenkins",
                                        "name": "${JENKINS_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "dnsPolicy": "ClusterFirst",
                        "restartPolicy": "Always",
                        "serviceAccountName": "${JENKINS_SERVICE_NAME}",
                        "volumes": [
                            {
                                "emptyDir": {
                                    "medium": ""
                                },
                                "name": "${JENKINS_SERVICE_NAME}-data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "jenkins"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${JENKINS_IMAGE_STREAM_TAG}",
                                "namespace": "${NAMESPACE}"
                            },
                            "lastTriggeredImage": ""
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ServiceAccount",
            "metadata": {
                "annotations": {
                    "serviceaccounts.openshift.io/oauth-redirectreference.jenkins": "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"${JENKINS_SERVICE_NAME}\"}}"
                },
                "name": "${JENKINS_SERVICE_NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "groupNames": null,
            "kind": "RoleBinding",
            "metadata": {
                "name": "${JENKINS_SERVICE_NAME}_edit"
            },
            "roleRef": {
                "name": "edit"
            },
            "subjects": [
                {
                    "kind": "ServiceAccount",
                    "name": "${JENKINS_SERVICE_NAME}"
                }
            ]
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "name": "${JNLP_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "agent",
                        "nodePort": 0,
                        "port": 50000,
                        "protocol": "TCP",
                        "targetPort": 50000
                    }
                ],
                "selector": {
                    "name": "${JENKINS_SERVICE_NAME}"
                },
                "sessionAffinity": "None",
                "type": "ClusterIP"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${JNLP_SERVICE_NAME}\", \"namespace\": \"\", \"kind\": \"Service\"}]",
                    "service.openshift.io/infrastructure": "true"
                },
                "name": "${JENKINS_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "nodePort": 0,
                        "port": 80,
                        "protocol": "TCP",
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${JENKINS_SERVICE_NAME}"
                },
                "sessionAffinity": "None",
                "type": "ClusterIP"
            }
        }
    ],
    "parameters": [
        {
            "description": "The name of the OpenShift Service exposed for the Jenkins container.",
            "displayName": "Jenkins Service Name",
            "name": "JENKINS_SERVICE_NAME",
            "value": "jenkins"
        },
        {
            "description": "The name of the service used for master/slave communication.",
            "displayName": "Jenkins JNLP Service Name",
            "name": "JNLP_SERVICE_NAME",
            "value": "jenkins-jnlp"
        },
        {
            "description": "Whether to enable OAuth OpenShift integration. If false, the static account 'admin' will be initialized with the password 'password'.",
            "displayName": "Enable OAuth in Jenkins",
            "name": "ENABLE_OAUTH",
            "value": "true"
        },
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "value": "512Mi"
        },
        {
            "description": "The OpenShift Namespace where the Jenkins ImageStream resides.",
            "displayName": "Jenkins ImageStream Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "Whether to perform memory intensive, possibly slow, synchronization with the Jenkins Update Center on start.  If true, the Jenkins core update monitor and site warnings monitor are disabled.",
            "displayName": "Disable memory intensive administrative monitors",
            "name": "DISABLE_ADMINISTRATIVE_MONITORS",
            "value": "false"
        },
        {
            "description": "Name of the ImageStreamTag to be used for the Jenkins image.",
            "displayName": "Jenkins ImageStreamTag",
            "name": "JENKINS_IMAGE_STREAM_TAG",
            "value": "jenkins:2"
        }
    ]
}`)

func examplesJenkinsJenkinsEphemeralTemplateJsonBytes() ([]byte, error) {
	return _examplesJenkinsJenkinsEphemeralTemplateJson, nil
}

func examplesJenkinsJenkinsEphemeralTemplateJson() (*asset, error) {
	bytes, err := examplesJenkinsJenkinsEphemeralTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/jenkins/jenkins-ephemeral-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesJenkinsJenkinsPersistentTemplateJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "jenkins-persistent",
        "template": "jenkins-persistent-template"
    },
    "message": "A Jenkins service has been created in your project.  Log into Jenkins with your OpenShift account.  The tutorial at https://github.com/openshift/origin/blob/master/examples/jenkins/README.md contains more information about using this template.",
    "metadata": {
        "annotations": {
            "description": "Jenkins service, with persistent storage.\n\nNOTE: You must have persistent volumes available in your cluster to use this template.",
            "iconClass": "icon-jenkins",
            "openshift.io/display-name": "Jenkins",
            "openshift.io/documentation-url": "https://docs.okd.io/latest/using_images/other_images/jenkins.html",
            "openshift.io/long-description": "This template deploys a Jenkins server capable of managing OpenShift Pipeline builds and supporting OpenShift-based oauth login.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "instant-app,jenkins"
        },
        "name": "jenkins-persistent"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "annotations": {
                    "haproxy.router.openshift.io/timeout": "4m",
                    "template.openshift.io/expose-uri": "http://{.spec.host}{.spec.path}"
                },
                "name": "${JENKINS_SERVICE_NAME}"
            },
            "spec": {
                "tls": {
                    "insecureEdgeTerminationPolicy": "Redirect",
                    "termination": "edge"
                },
                "to": {
                    "kind": "Service",
                    "name": "${JENKINS_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "PersistentVolumeClaim",
            "metadata": {
                "name": "${JENKINS_SERVICE_NAME}"
            },
            "spec": {
                "accessModes": [
                    "ReadWriteOnce"
                ],
                "resources": {
                    "requests": {
                        "storage": "${VOLUME_CAPACITY}"
                    }
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${JENKINS_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${JENKINS_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${JENKINS_SERVICE_NAME}"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "capabilities": {},
                                "env": [
                                    {
                                        "name": "OPENSHIFT_ENABLE_OAUTH",
                                        "value": "${ENABLE_OAUTH}"
                                    },
                                    {
                                        "name": "OPENSHIFT_ENABLE_REDIRECT_PROMPT",
                                        "value": "true"
                                    },
                                    {
                                        "name": "DISABLE_ADMINISTRATIVE_MONITORS",
                                        "value": "${DISABLE_ADMINISTRATIVE_MONITORS}"
                                    },
                                    {
                                        "name": "KUBERNETES_MASTER",
                                        "value": "https://kubernetes.default:443"
                                    },
                                    {
                                        "name": "KUBERNETES_TRUST_CERTIFICATES",
                                        "value": "true"
                                    },
                                    {
                                        "name": "JENKINS_SERVICE_NAME",
                                        "value": "${JENKINS_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "JNLP_SERVICE_NAME",
                                        "value": "${JNLP_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "ENABLE_FATAL_ERROR_LOG_FILE",
                                        "value": "${ENABLE_FATAL_ERROR_LOG_FILE}"
                                    }
                                ],
                                "image": " ",
                                "imagePullPolicy": "IfNotPresent",
                                "livenessProbe": {
                                    "failureThreshold": 2,
                                    "httpGet": {
                                        "path": "/login",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 420,
                                    "periodSeconds": 360,
                                    "timeoutSeconds": 240
                                },
                                "name": "jenkins",
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/login",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "timeoutSeconds": 240
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                },
                                "securityContext": {
                                    "capabilities": {},
                                    "privileged": false
                                },
                                "terminationMessagePath": "/dev/termination-log",
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/jenkins",
                                        "name": "${JENKINS_SERVICE_NAME}-data"
                                    }
                                ]
                            }
                        ],
                        "dnsPolicy": "ClusterFirst",
                        "restartPolicy": "Always",
                        "serviceAccountName": "${JENKINS_SERVICE_NAME}",
                        "volumes": [
                            {
                                "name": "${JENKINS_SERVICE_NAME}-data",
                                "persistentVolumeClaim": {
                                    "claimName": "${JENKINS_SERVICE_NAME}"
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "jenkins"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${JENKINS_IMAGE_STREAM_TAG}",
                                "namespace": "${NAMESPACE}"
                            },
                            "lastTriggeredImage": ""
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ServiceAccount",
            "metadata": {
                "annotations": {
                    "serviceaccounts.openshift.io/oauth-redirectreference.jenkins": "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"${JENKINS_SERVICE_NAME}\"}}"
                },
                "name": "${JENKINS_SERVICE_NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "groupNames": null,
            "kind": "RoleBinding",
            "metadata": {
                "name": "${JENKINS_SERVICE_NAME}_edit"
            },
            "roleRef": {
                "name": "edit"
            },
            "subjects": [
                {
                    "kind": "ServiceAccount",
                    "name": "${JENKINS_SERVICE_NAME}"
                }
            ]
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "name": "${JNLP_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "agent",
                        "nodePort": 0,
                        "port": 50000,
                        "protocol": "TCP",
                        "targetPort": 50000
                    }
                ],
                "selector": {
                    "name": "${JENKINS_SERVICE_NAME}"
                },
                "sessionAffinity": "None",
                "type": "ClusterIP"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${JNLP_SERVICE_NAME}\", \"namespace\": \"\", \"kind\": \"Service\"}]",
                    "service.openshift.io/infrastructure": "true"
                },
                "name": "${JENKINS_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "nodePort": 0,
                        "port": 80,
                        "protocol": "TCP",
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${JENKINS_SERVICE_NAME}"
                },
                "sessionAffinity": "None",
                "type": "ClusterIP"
            }
        }
    ],
    "parameters": [
        {
            "description": "The name of the OpenShift Service exposed for the Jenkins container.",
            "displayName": "Jenkins Service Name",
            "name": "JENKINS_SERVICE_NAME",
            "value": "jenkins"
        },
        {
            "description": "The name of the service used for master/slave communication.",
            "displayName": "Jenkins JNLP Service Name",
            "name": "JNLP_SERVICE_NAME",
            "value": "jenkins-jnlp"
        },
        {
            "description": "Whether to enable OAuth OpenShift integration. If false, the static account 'admin' will be initialized with the password 'password'.",
            "displayName": "Enable OAuth in Jenkins",
            "name": "ENABLE_OAUTH",
            "value": "true"
        },
        {
            "description": "Maximum amount of memory the container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "value": "512Mi"
        },
        {
            "description": "Volume space available for data, e.g. 512Mi, 2Gi.",
            "displayName": "Volume Capacity",
            "name": "VOLUME_CAPACITY",
            "required": true,
            "value": "1Gi"
        },
        {
            "description": "The OpenShift Namespace where the Jenkins ImageStream resides.",
            "displayName": "Jenkins ImageStream Namespace",
            "name": "NAMESPACE",
            "value": "openshift"
        },
        {
            "description": "Whether to perform memory intensive, possibly slow, synchronization with the Jenkins Update Center on start.  If true, the Jenkins core update monitor and site warnings monitor are disabled.",
            "displayName": "Disable memory intensive administrative monitors",
            "name": "DISABLE_ADMINISTRATIVE_MONITORS",
            "value": "false"
        },
        {
            "description": "Name of the ImageStreamTag to be used for the Jenkins image.",
            "displayName": "Jenkins ImageStreamTag",
            "name": "JENKINS_IMAGE_STREAM_TAG",
            "value": "jenkins:2"
        },
        {
            "description": "When a fatal error occurs, an error log is created with information and the state obtained at the time of the fatal error.",
            "displayName": "Fatal Error Log File",
            "name": "ENABLE_FATAL_ERROR_LOG_FILE",
            "value": "false"
        }
    ]
}`)

func examplesJenkinsJenkinsPersistentTemplateJsonBytes() ([]byte, error) {
	return _examplesJenkinsJenkinsPersistentTemplateJson, nil
}

func examplesJenkinsJenkinsPersistentTemplateJson() (*asset, error) {
	bytes, err := examplesJenkinsJenkinsPersistentTemplateJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/jenkins/jenkins-persistent-template.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesJenkinsPipelineBluegreenPipelineYaml = []byte(`apiVersion: v1
kind: Template
labels:
  template: bluegreen-pipeline
message: A Jenkins server must be instantiated in this project to manage
  the Pipeline BuildConfig created by this template.  You will be able to log in to
  it using your OpenShift user credentials.
metadata:
  annotations:
    description: This example showcases a blue green deployment using a Jenkins
      pipeline that pauses for approval.
    iconClass: icon-jenkins
    tags: instant-app,jenkins
  name: bluegreen-pipeline
objects:
- apiVersion: v1
  kind: BuildConfig
  metadata:
    annotations:
      pipeline.alpha.openshift.io/uses: '[{"name": "${NAME}", "namespace": "", "kind": "DeploymentConfig"}]'
    creationTimestamp: null
    labels:
      name: bluegreen-pipeline
    name: bluegreen-pipeline
  spec:
    strategy:
      jenkinsPipelineStrategy:
        jenkinsfile: |-
          try {
             timeout(time: 20, unit: 'MINUTES') {
                def appName="${NAME}"
                def project=""
                def tag="blue"
                def altTag="green"
                def verbose="${VERBOSE}"
        
                node {
                  project = env.PROJECT_NAME
                  stage("Initialize") {
                    sh "oc get route ${appName} -n ${project} -o jsonpath='{ .spec.to.name }' --loglevel=4 > activeservice"
                    activeService = readFile('activeservice').trim()
                    if (activeService == "${appName}-blue") {
                      tag = "green"
                      altTag = "blue"
                    }
                    sh "oc get route ${tag}-${appName} -n ${project} -o jsonpath='{ .spec.host }' --loglevel=4 > routehost"
                    routeHost = readFile('routehost').trim()
                  }
        
                  openshift.withCluster() {
                    openshift.withProject() {
                      stage("Build") {
                        echo "building tag ${tag}"
                        def bld = openshift.startBuild("${appName}")
                        bld.untilEach {
                          return it.object().status.phase == "Running"
                        }
                        bld.logs('-f')                        
                      }
            
                      stage("Deploy Test") {
                        openshift.tag("${appName}:latest", "${appName}:${tag}")
                        def dc = openshift.selector('dc', "${appName}-${tag}")
                        dc.rollout().status()
                      }
            
                      stage("Test") {
                        input message: "Test deployment: http://${routeHost}. Approve?", id: "approval"
                      }
            
                      stage("Go Live") {
                        sh "oc set -n ${project} route-backends ${appName} ${appName}-${tag}=100 ${appName}-${altTag}=0 --loglevel=4"
                      }

                    }
                  }
                }
             }
          } catch (err) {
             echo "in catch block"
             echo "Caught: ${err}"
             currentBuild.result = 'FAILURE'
             throw err
          }          
      type: JenkinsPipeline
    triggers:
    - github:
        secret: "${GITHUB_WEBHOOK_SECRET}"
      type: GitHub
    - generic:
        secret: "${GENERIC_WEBHOOK_SECRET}"
      type: Generic
- apiVersion: v1
  kind: Route
  metadata:
    name: blue-${NAME}
  spec:
    to:
      kind: Service
      name: ${NAME}-blue
- apiVersion: v1
  kind: Route
  metadata:
    name: green-${NAME}
  spec:
    to:
      kind: Service
      name: ${NAME}-green
- apiVersion: v1
  kind: Route
  metadata:
    name: ${NAME}
  spec:
    alternateBackends:
    - name: ${NAME}-green
      weight: 0
    to:
      kind: Service
      name: ${NAME}-blue
      weight: 100
- apiVersion: v1
  kind: ImageStream
  metadata:
    annotations:
      description: Keeps track of changes in the application image
    name: ${NAME}
- apiVersion: v1
  kind: BuildConfig
  metadata:
    annotations:
      description: Defines how to build the application
    name: ${NAME}
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: ${NAME}:latest
    postCommit:
      script: npm test
    source:
      contextDir: ${CONTEXT_DIR}
      git:
        ref: ${SOURCE_REPOSITORY_REF}
        uri: ${SOURCE_REPOSITORY_URL}
      type: Git
    strategy:
      sourceStrategy:
        env:
        - name: NPM_MIRROR
          value: ${NPM_MIRROR}
        from:
          kind: ImageStreamTag
          name: nodejs:4
          namespace: ${NAMESPACE}
      type: Source
    triggers:
    - github:
        secret: ${GITHUB_WEBHOOK_SECRET}
      type: GitHub
    - generic:
        secret: ${GENERIC_WEBHOOK_SECRET}
      type: Generic
- apiVersion: v1
  kind: Service
  metadata:
    annotations:
      service.alpha.openshift.io/dependencies: '[{"name": "${DATABASE_SERVICE_NAME}", "namespace": "", "kind": "Service"}]'
    name: ${NAME}-blue
  spec:
    ports:
    - name: web
      port: 8080
      targetPort: 8080
    selector:
      name: ${NAME}-blue
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    annotations:
      description: Defines how to deploy the application server
    name: ${NAME}-blue
  spec:
    replicas: 1
    selector:
      name: ${NAME}-blue
    strategy:
      type: Rolling
    template:
      metadata:
        labels:
          name: ${NAME}-blue
        name: ${NAME}-blue
      spec:
        containers:
        - env:
          - name: DATABASE_SERVICE_NAME
            value: ${DATABASE_SERVICE_NAME}
          - name: MONGODB_USER
            value: ${DATABASE_USER}
          - name: MONGODB_PASSWORD
            value: ${DATABASE_PASSWORD}
          - name: MONGODB_DATABASE
            value: ${DATABASE_NAME}
          - name: MONGODB_ADMIN_PASSWORD
            value: ${DATABASE_ADMIN_PASSWORD}
          image: ' '
          livenessProbe:
            httpGet:
              path: /pagecount
              port: 8080
            initialDelaySeconds: 30
            timeoutSeconds: 3
          name: nodejs-mongodb-example
          ports:
          - containerPort: 8080
          readinessProbe:
            httpGet:
              path: /pagecount
              port: 8080
            initialDelaySeconds: 3
            timeoutSeconds: 3
          resources:
            limits:
              memory: ${MEMORY_LIMIT}
    triggers:
    - imageChangeParams:
        automatic: true
        containerNames:
        - nodejs-mongodb-example
        from:
          kind: ImageStreamTag
          name: ${NAME}:blue
      type: ImageChange
    - type: ConfigChange
- apiVersion: v1
  kind: Service
  metadata:
    annotations:
      service.alpha.openshift.io/dependencies: '[{"name": "${DATABASE_SERVICE_NAME}", "namespace": "", "kind": "Service"}]'
    name: ${NAME}-green
  spec:
    ports:
    - name: web
      port: 8080
      targetPort: 8080
    selector:
      name: ${NAME}-green
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    annotations:
      description: Defines how to deploy the application server
    name: ${NAME}-green
  spec:
    replicas: 1
    selector:
      name: ${NAME}-green
    strategy:
      type: Rolling
    template:
      metadata:
        labels:
          name: ${NAME}-green
        name: ${NAME}-green
      spec:
        containers:
        - env:
          - name: DATABASE_SERVICE_NAME
            value: ${DATABASE_SERVICE_NAME}
          - name: MONGODB_USER
            value: ${DATABASE_USER}
          - name: MONGODB_PASSWORD
            value: ${DATABASE_PASSWORD}
          - name: MONGODB_DATABASE
            value: ${DATABASE_NAME}
          - name: MONGODB_ADMIN_PASSWORD
            value: ${DATABASE_ADMIN_PASSWORD}
          image: ' '
          livenessProbe:
            httpGet:
              path: /pagecount
              port: 8080
            initialDelaySeconds: 30
            timeoutSeconds: 3
          name: nodejs-mongodb-example
          ports:
          - containerPort: 8080
          readinessProbe:
            httpGet:
              path: /pagecount
              port: 8080
            initialDelaySeconds: 3
            timeoutSeconds: 3
          resources:
            limits:
              memory: ${MEMORY_LIMIT}
    triggers:
    - imageChangeParams:
        automatic: true
        containerNames:
        - nodejs-mongodb-example
        from:
          kind: ImageStreamTag
          name: ${NAME}:green
      type: ImageChange
    - type: ConfigChange
- apiVersion: v1
  kind: Service
  metadata:
    annotations:
      description: Exposes the database server
    name: ${DATABASE_SERVICE_NAME}
  spec:
    ports:
    - name: mongodb
      port: 27017
      targetPort: 27017
    selector:
      name: ${DATABASE_SERVICE_NAME}
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    annotations:
      description: Defines how to deploy the database
    name: ${DATABASE_SERVICE_NAME}
  spec:
    replicas: 1
    selector:
      name: ${DATABASE_SERVICE_NAME}
    strategy:
      type: Recreate
    template:
      metadata:
        labels:
          name: ${DATABASE_SERVICE_NAME}
        name: ${DATABASE_SERVICE_NAME}
      spec:
        containers:
        - env:
          - name: MONGODB_USER
            value: ${DATABASE_USER}
          - name: MONGODB_PASSWORD
            value: ${DATABASE_PASSWORD}
          - name: MONGODB_DATABASE
            value: ${DATABASE_NAME}
          - name: MONGODB_ADMIN_PASSWORD
            value: ${DATABASE_ADMIN_PASSWORD}
          image: ' '
          livenessProbe:
            initialDelaySeconds: 30
            tcpSocket:
              port: 27017
            timeoutSeconds: 1
          name: mongodb
          ports:
          - containerPort: 27017
          readinessProbe:
            exec:
              command:
              - /bin/sh
              - -i
              - -c
              - mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD
                --eval="quit()"
            initialDelaySeconds: 3
            timeoutSeconds: 1
          resources:
            limits:
              memory: ${MEMORY_MONGODB_LIMIT}
          volumeMounts:
          - mountPath: /var/lib/mongodb/data
            name: ${DATABASE_SERVICE_NAME}-data
        volumes:
        - emptyDir:
            medium: ""
          name: ${DATABASE_SERVICE_NAME}-data
    triggers:
    - imageChangeParams:
        automatic: true
        containerNames:
        - mongodb
        from:
          kind: ImageStreamTag
          name: mongodb:3.2
          namespace: ${NAMESPACE}
      type: ImageChange
    - type: ConfigChange
parameters:
- description: The name assigned to all of the frontend objects defined in this template.
  displayName: Name
  name: NAME
  required: true
  value: nodejs-mongodb-example
- description: The exposed hostname that will route to the Node.js service, if left
    blank a value will be defaulted.
  displayName: Application Hostname
  name: APPLICATION_DOMAIN
- description: The URL of the repository with your application source code.
  displayName: Git Repository URL
  name: SOURCE_REPOSITORY_URL
  required: true
  value: https://github.com/openshift/nodejs-ex.git
- description: The reference of the repository with your application source code.
  displayName: Git Repository Ref
  name: SOURCE_REPOSITORY_REF
  required: true
  value: master
- displayName: Database Name
  name: DATABASE_NAME
  required: true
  value: sampledb
- description: Username for MongoDB user that will be used for accessing the database.
  displayName: MongoDB Username
  from: user[A-Z0-9]{3}
  generate: expression
  name: DATABASE_USER
- description: Password for the MongoDB user.
  displayName: MongoDB Password
  from: '[a-zA-Z0-9]{16}'
  generate: expression
  name: DATABASE_PASSWORD
- description: Maximum amount of memory the Node.js container can use.
  displayName: Memory Limit
  name: MEMORY_LIMIT
  required: true
  value: 512Mi
- description: Maximum amount of memory the MongoDB container can use.
  displayName: Memory Limit (MongoDB)
  name: MEMORY_MONGODB_LIMIT
  required: true
  value: 512Mi
- displayName: Database Service Name
  name: DATABASE_SERVICE_NAME
  required: true
  value: mongodb
- description: Password for the database admin user.
  displayName: Database Administrator Password
  from: '[a-zA-Z0-9]{16}'
  generate: expression
  name: DATABASE_ADMIN_PASSWORD
- description: Set this to the relative path to your project if it is not in the root
    of your repository.
  displayName: Context Directory
  name: CONTEXT_DIR
- description: Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.
  displayName: GitHub Webhook Secret
  from: '[a-zA-Z0-9]{40}'
  generate: expression
  name: GITHUB_WEBHOOK_SECRET
- description: A secret string used to configure the Generic webhook.
  displayName: Generic Webhook Secret
  from: '[a-zA-Z0-9]{40}'
  generate: expression
  name: GENERIC_WEBHOOK_SECRET
- description: The custom NPM mirror URL
  displayName: Custom NPM Mirror URL
  name: NPM_MIRROR
- description: The OpenShift Namespace where the NodeJS and MongoDB ImageStreams reside.
  displayName: Namespace
  name: NAMESPACE
  required: true
  value: openshift
- description: Whether to enable verbose logging of Jenkinsfile steps in pipeline
  displayName: Verbose
  name: VERBOSE
  required: true
  value: "false"
`)

func examplesJenkinsPipelineBluegreenPipelineYamlBytes() ([]byte, error) {
	return _examplesJenkinsPipelineBluegreenPipelineYaml, nil
}

func examplesJenkinsPipelineBluegreenPipelineYaml() (*asset, error) {
	bytes, err := examplesJenkinsPipelineBluegreenPipelineYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/jenkins/pipeline/bluegreen-pipeline.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesJenkinsPipelineMavenPipelineYaml = []byte(`apiVersion: v1
kind: Template
metadata:
  name: maven-pipeline
parameters:
- name: APP_NAME
  description: The name assigned to all of the application objects defined in this template.
  displayName: Application Name
  required: true
  value: openshift-jee-sample
- name: GIT_SOURCE_URL
  description: The source URL for the application
  displayName: Source URL
  required: true
  value: https://github.com/openshift/openshift-jee-sample.git
- name: GIT_SOURCE_REF
  description: The source Ref for the application
  displayName: Source Ref
  required: true
  value: master
- description: Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.
  displayName: GitHub Webhook Secret
  from: '[a-zA-Z0-9]{40}'
  generate: expression
  name: GITHUB_WEBHOOK_SECRET
  required: true
- description: A secret string used to configure the Generic webhook.
  displayName: Generic Webhook Secret
  from: '[a-zA-Z0-9]{40}'
  generate: expression
  name: GENERIC_WEBHOOK_SECRET
  required: true
objects:
- apiVersion: v1
  kind: ImageStream
  metadata:
    labels:
      app: ${APP_NAME}
    name: ${APP_NAME}
  spec: {}
  status:
    dockerImageRepository: ""
- apiVersion: v1
  kind: ImageStream
  metadata:
    name: wildfly
  spec:
    tags:
    - annotations:
        supports: wildfly:10.1,jee,java
        tags: builder,wildfly,java
        version: "10.1"
      from:
        kind: DockerImage
        name: openshift/wildfly-101-centos7:latest
      name: "10.1"
    - annotations:
        supports: jee,java
        tags: builder,wildfly,java
      from:
        kind: ImageStreamTag
        name: "10.1"
      name: latest
- apiVersion: v1
  kind: BuildConfig
  metadata:
    annotations:
      pipeline.alpha.openshift.io/uses: '[{"name": "${NAME}", "namespace": "", "kind": "DeploymentConfig"}]'
    creationTimestamp: null
    labels:
      name: ${APP_NAME}
    name: ${APP_NAME}
  spec:
    strategy:
      jenkinsPipelineStrategy:
        jenkinsfile: |-
          try {
             timeout(time: 20, unit: 'MINUTES') {
                def appName="${APP_NAME}"
                def project=""

                node {
                  stage("Initialize") {
                    project = env.PROJECT_NAME
                  }
                }

                node("maven") {
                  stage("Checkout") {
                    git url: "${GIT_SOURCE_URL}", branch: "${GIT_SOURCE_REF}"
                  }
                  stage("Build WAR") {
                    sh "mvn clean package -Popenshift"
                    stash name:"war", includes:"target/ROOT.war"
                  }
                }

                node {
                  stage("Build Image") {
                    unstash name:"war"
                    sh "oc start-build ${appName}-docker --from-file=target/ROOT.war -n ${project}"
                    timeout(time: 20, unit: 'MINUTES') {
                      openshift.withCluster() {
                        openshift.withProject() {
                          def bc = openshift.selector('bc', "${appName}-docker")
                          echo "Found 1 ${bc.count()} buildconfig"
                          def blds = bc.related('builds')
                          blds.untilEach {
                            return it.object().status.phase == "Complete"
                          }
                        }
                      }  
                    }
                  }
                  stage("Deploy") {
                    openshift.withCluster() {
                      openshift.withProject() {
                        def dc = openshift.selector('dc', "${appName}")
                        dc.rollout().status()
                      }
                    }
                  }
                }
             }
          } catch (err) {
             echo "in catch block"
             echo "Caught: ${err}"
             currentBuild.result = 'FAILURE'
             throw err
          }
      type: JenkinsPipeline
    triggers:
    - github:
        secret: "${GITHUB_WEBHOOK_SECRET}"
      type: GitHub
    - generic:
        secret: "${GENERIC_WEBHOOK_SECRET}"
      type: Generic
- apiVersion: v1
  kind: BuildConfig
  metadata:
    labels:
      app: ${APP_NAME}-docker
    name: ${APP_NAME}-docker
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: ${APP_NAME}:latest
    postCommit: {}
    resources: {}
    runPolicy: Serial
    source:
      dockerfile: |-
        FROM wildfly
        COPY ROOT.war /wildfly/standalone/deployments/ROOT.war
        CMD $STI_SCRIPTS_PATH/run
      binary:
        asFile: ROOT.war
      type: Docker
    strategy:
      dockerStrategy:
        from:
          kind: ImageStreamTag
          name: wildfly:latest
      type: Docker
    triggers: []
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    labels:
      app: ${APP_NAME}
    name: ${APP_NAME}
  spec:
    replicas: 1
    selector:
      app: ${APP_NAME}
      deploymentconfig: ${APP_NAME}
    strategy:
      rollingParams:
        intervalSeconds: 1
        maxSurge: 25%
        maxUnavailable: 25%
        timeoutSeconds: 600
        updatePeriodSeconds: 1
      type: Rolling
    template:
      metadata:
        labels:
          app: ${APP_NAME}
          deploymentconfig: ${APP_NAME}
      spec:
        containers:
        - image: ${APP_NAME}:latest
          imagePullPolicy: Always
          name: ${APP_NAME}
          ports:
          - containerPort: 8080
            protocol: TCP
          resources: {}
          terminationMessagePath: /dev/termination-log
          livenessProbe:
            httpGet:
              path: /
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 10
            timeoutSeconds: 2
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3
          readinessProbe:
            httpGet:
              path: /
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 30
            timeoutSeconds: 2
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3
        dnsPolicy: ClusterFirst
        restartPolicy: Always
        securityContext: {}
        terminationGracePeriodSeconds: 30
    test: false
    triggers:
    - type: ConfigChange
    - imageChangeParams:
        automatic: true
        containerNames:
        - ${APP_NAME}
        from:
          kind: ImageStreamTag
          name: ${APP_NAME}:latest
      type: ImageChange
  status: {}
- apiVersion: v1
  kind: Service
  metadata:
    annotations:
      openshift.io/generated-by: OpenShiftNewApp
    labels:
      app: ${APP_NAME}
    name: ${APP_NAME}
  spec:
    ports:
    - name: 8080-tcp
      port: 8080
      protocol: TCP
      targetPort: 8080
    selector:
      app: ${APP_NAME}
      deploymentconfig: ${APP_NAME}
    sessionAffinity: None
    type: ClusterIP
  status:
    loadBalancer: {}
- apiVersion: v1
  kind: Route
  metadata:
    name: ${APP_NAME}
    labels:
      app: ${APP_NAME}
  spec:
    to:
      kind: Service
      name: ${APP_NAME}
      weight: 100
    port:
      targetPort: 8080-tcp
    wildcardPolicy: None
`)

func examplesJenkinsPipelineMavenPipelineYamlBytes() ([]byte, error) {
	return _examplesJenkinsPipelineMavenPipelineYaml, nil
}

func examplesJenkinsPipelineMavenPipelineYaml() (*asset, error) {
	bytes, err := examplesJenkinsPipelineMavenPipelineYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/jenkins/pipeline/maven-pipeline.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesJenkinsPipelineNodejsSamplePipelineYaml = []byte(`kind: "BuildConfig"
apiVersion: "v1"
metadata:
  name: "nodejs-sample-pipeline"
spec:
  strategy:
    jenkinsPipelineStrategy:
      jenkinsfile: |-
        // path of the template to use
        def templatePath = 'https://raw.githubusercontent.com/openshift/nodejs-ex/master/openshift/templates/nodejs-mongodb.json'
        // name of the template that will be created
        def templateName = 'nodejs-mongodb-example'
        // NOTE, the "pipeline" directive/closure from the declarative pipeline syntax needs to include, or be nested outside,
        // and "openshift" directive/closure from the OpenShift Client Plugin for Jenkins.  Otherwise, the declarative pipeline engine
        // will not be fully engaged.
        pipeline {
            agent {
              node {
                // spin up a node.js slave pod to run this build on
                label 'nodejs'
              }
            }
            options {
                // set a timeout of 20 minutes for this pipeline
                timeout(time: 20, unit: 'MINUTES')
            }

            stages {
                stage('preamble') {
                    steps {
                        script {
                            openshift.withCluster() {
                                openshift.withProject() {
                                    echo "Using project: ${openshift.project()}"
                                }
                            }
                        }
                    }
                }
                stage('cleanup') {
                    steps {
                        script {
                            openshift.withCluster() {
                                openshift.withProject() {
                                    // delete everything with this template label
                                    openshift.selector("all", [ template : templateName ]).delete()
                                    // delete any secrets with this template label
                                    if (openshift.selector("secrets", templateName).exists()) {
                                        openshift.selector("secrets", templateName).delete()
                                    }
                                }
                            }
                        } // script
                    } // steps
                } // stage
                stage('create') {
                    steps {
                        script {
                            openshift.withCluster() {
                                openshift.withProject() {
                                    // create a new application from the templatePath
                                    openshift.newApp(templatePath)
                                }
                            }
                        } // script
                    } // steps
                } // stage
                stage('build') {
                    steps {
                        script {
                            openshift.withCluster() {
                                openshift.withProject() {
                                    def builds = openshift.selector("bc", templateName).related('builds')
                                    builds.untilEach(1) {
                                        return (it.object().status.phase == "Complete")
                                    }
                                }
                            }
                        } // script
                    } // steps
                } // stage
                stage('deploy') {
                    steps {
                        script {
                            openshift.withCluster() {
                                openshift.withProject() {
                                    def rm = openshift.selector("dc", templateName).rollout()
                                    openshift.selector("dc", templateName).related('pods').untilEach(1) {
                                        return (it.object().status.phase == "Running")
                                    }
                                }
                            }
                        } // script
                    } // steps
                } // stage
                stage('tag') {
                    steps {
                        script {
                            openshift.withCluster() {
                                openshift.withProject() {
                                    // if everything else succeeded, tag the ${templateName}:latest image as ${templateName}-staging:latest
                                    // a pipeline build config for the staging environment can watch for the ${templateName}-staging:latest
                                    // image to change and then deploy it to the staging environment
                                    openshift.tag("${templateName}:latest", "${templateName}-staging:latest")
                                }
                            }
                        } // script
                    } // steps
                } // stage
            } // stages
        } // pipeline
      type: JenkinsPipeline
`)

func examplesJenkinsPipelineNodejsSamplePipelineYamlBytes() ([]byte, error) {
	return _examplesJenkinsPipelineNodejsSamplePipelineYaml, nil
}

func examplesJenkinsPipelineNodejsSamplePipelineYaml() (*asset, error) {
	bytes, err := examplesJenkinsPipelineNodejsSamplePipelineYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/jenkins/pipeline/nodejs-sample-pipeline.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesJenkinsPipelineOpenshiftClientPluginPipelineYaml = []byte(`apiVersion: v1
kind: BuildConfig
metadata:
  labels:
    name: sample-pipeline-openshift-client-plugin
  name: sample-pipeline-openshift-client-plugin
spec:
  source:
    type: Git
    git:
      uri: https://github.com/openshift/jenkins-client-plugin.git
  strategy:
    type: JenkinsPipeline
    jenkinsPipelineStrategy:
      jenkinsfilePath: examples/jenkins-image-sample.groovy
`)

func examplesJenkinsPipelineOpenshiftClientPluginPipelineYamlBytes() ([]byte, error) {
	return _examplesJenkinsPipelineOpenshiftClientPluginPipelineYaml, nil
}

func examplesJenkinsPipelineOpenshiftClientPluginPipelineYaml() (*asset, error) {
	bytes, err := examplesJenkinsPipelineOpenshiftClientPluginPipelineYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/jenkins/pipeline/openshift-client-plugin-pipeline.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesJenkinsPipelineSamplepipelineYaml = []byte(`apiVersion: v1
kind: Template
labels:
  template: application-template-sample-pipeline
message: |-
  A Jenkins server must be instantiated in this project to manage
  the Pipeline BuildConfig created by this template.  You will be able to log in to
  it using your OpenShift user credentials.
metadata:
  annotations:
    openshift.io/display-name: Pipeline Build Example
    description: |-
      This example showcases the new Jenkins Pipeline integration in OpenShift,
      which performs continuous integration and deployment right on the platform.
      The template contains a Jenkinsfile - a definition of a multi-stage CI/CD process - that
      leverages the underlying OpenShift platform for dynamic and scalable
      builds. OpenShift integrates the status of your pipeline builds into the web
      console allowing you to see your entire application lifecycle in a single view.
    iconClass: icon-jenkins
    tags: instant-app,jenkins
  name: jenkins-pipeline-example
parameters:
- description: The name assigned to all of the frontend objects defined in this template.
  displayName: Name
  name: NAME
  required: true
  value: nodejs-mongodb-example
- description: The exposed hostname that will route to the Node.js service, if left
    blank a value will be defaulted.
  displayName: Application Hostname
  name: APPLICATION_DOMAIN
- description: The URL of the repository with your application source code.
  displayName: Git Repository URL
  name: SOURCE_REPOSITORY_URL
  required: true
  value: https://github.com/openshift/nodejs-ex.git
- displayName: Database Name
  name: DATABASE_NAME
  required: true
  value: sampledb
- description: Username for MongoDB user that will be used for accessing the database.
  displayName: MongoDB Username
  from: user[A-Z0-9]{3}
  generate: expression
  name: DATABASE_USER
- description: Password for the MongoDB user.
  displayName: MongoDB Password
  from: '[a-zA-Z0-9]{16}'
  generate: expression
  name: DATABASE_PASSWORD
- description: Maximum amount of memory the Node.js container can use.
  displayName: Memory Limit
  name: MEMORY_LIMIT
  required: true
  value: 512Mi
- description: Maximum amount of memory the MongoDB container can use.
  displayName: Memory Limit (MongoDB)
  name: MEMORY_MONGODB_LIMIT
  required: true
  value: 512Mi
- displayName: Database Service Name
  name: DATABASE_SERVICE_NAME
  required: true
  value: mongodb
- description: Password for the database admin user.
  displayName: Database Administrator Password
  from: '[a-zA-Z0-9]{16}'
  generate: expression
  name: DATABASE_ADMIN_PASSWORD
- description: Set this to a branch name, tag or other ref of your repository if you
    are not using the default branch.
  displayName: Git Reference
  name: SOURCE_REPOSITORY_REF
- description: Set this to the relative path to your project if it is not in the root
    of your repository.
  displayName: Context Directory
  name: CONTEXT_DIR
- description: Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.
  displayName: GitHub Webhook Secret
  from: '[a-zA-Z0-9]{40}'
  generate: expression
  name: GITHUB_WEBHOOK_SECRET
- description: A secret string used to configure the Generic webhook.
  displayName: Generic Webhook Secret
  from: '[a-zA-Z0-9]{40}'
  generate: expression
  name: GENERIC_WEBHOOK_SECRET
- description: The custom NPM mirror URL
  displayName: Custom NPM Mirror URL
  name: NPM_MIRROR
- description: The OpenShift Namespace where the NodeJS and MongoDB ImageStreams reside.
  displayName: Namespace
  name: NAMESPACE
  required: true
  value: openshift
objects:
- apiVersion: v1
  kind: BuildConfig
  metadata:
    annotations:
      pipeline.alpha.openshift.io/uses: '[{"name": "${NAME}", "namespace": "", "kind": "DeploymentConfig"}]'
    labels:
      name: sample-pipeline
    name: sample-pipeline
  spec:
    strategy:
      jenkinsPipelineStrategy:
        jenkinsfile: |-
          try {
             timeout(time: 20, unit: 'MINUTES') {
                node('nodejs') {
                    stage('build') {
                      openshift.withCluster() {
                         openshift.withProject() {
                            def bld = openshift.startBuild('${NAME}')
                            bld.untilEach {
                              return it.object().status.phase == "Running"
                            }
                            bld.logs('-f')
                         }  
                      }
                    }
                    stage('deploy') {
                      openshift.withCluster() {
                        openshift.withProject() {
                          def dc = openshift.selector('dc', '${NAME}')
                          dc.rollout().latest()
                        }
                      }
                    }
                  }
             }
          } catch (err) {
             echo "in catch block"
             echo "Caught: ${err}"
             currentBuild.result = 'FAILURE'
             throw err
          }          
      type: JenkinsPipeline
    triggers:
    - github:
        secret: secret101
      type: GitHub
    - generic:
        secret: secret101
      type: Generic
- apiVersion: v1
  kind: Service
  metadata:
    annotations:
      service.alpha.openshift.io/dependencies: '[{"name": "${DATABASE_SERVICE_NAME}", "namespace": "", "kind": "Service"}]'
    name: ${NAME}
  spec:
    ports:
    - name: web
      port: 8080
      targetPort: 8080
    selector:
      name: ${NAME}
- apiVersion: v1
  kind: Route
  metadata:
    name: ${NAME}
  spec:
    host: ${APPLICATION_DOMAIN}
    to:
      kind: Service
      name: ${NAME}
- apiVersion: v1
  kind: ImageStream
  metadata:
    annotations:
      description: Keeps track of changes in the application image
    name: ${NAME}
- apiVersion: v1
  kind: BuildConfig
  metadata:
    annotations:
      description: Defines how to build the application
    name: ${NAME}
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: ${NAME}:latest
    postCommit:
      script: npm test
    source:
      contextDir: ${CONTEXT_DIR}
      git:
        ref: ${SOURCE_REPOSITORY_REF}
        uri: ${SOURCE_REPOSITORY_URL}
      type: Git
    strategy:
      sourceStrategy:
        env:
        - name: NPM_MIRROR
          value: ${NPM_MIRROR}
        from:
          kind: ImageStreamTag
          name: nodejs:4
          namespace: ${NAMESPACE}
      type: Source
    triggers:
    - github:
        secret: ${GITHUB_WEBHOOK_SECRET}
      type: GitHub
    - generic:
        secret: ${GENERIC_WEBHOOK_SECRET}
      type: Generic
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    annotations:
      description: Defines how to deploy the application server
    name: ${NAME}
  spec:
    replicas: 1
    selector:
      name: ${NAME}
    strategy:
      type: Rolling
    template:
      metadata:
        labels:
          name: ${NAME}
        name: ${NAME}
      spec:
        containers:
        - env:
          - name: DATABASE_SERVICE_NAME
            value: ${DATABASE_SERVICE_NAME}
          - name: MONGODB_USER
            value: ${DATABASE_USER}
          - name: MONGODB_PASSWORD
            value: ${DATABASE_PASSWORD}
          - name: MONGODB_DATABASE
            value: ${DATABASE_NAME}
          - name: MONGODB_ADMIN_PASSWORD
            value: ${DATABASE_ADMIN_PASSWORD}
          image: ' '
          livenessProbe:
            httpGet:
              path: /pagecount
              port: 8080
            initialDelaySeconds: 30
            timeoutSeconds: 3
          name: nodejs-mongodb-example
          ports:
          - containerPort: 8080
          readinessProbe:
            httpGet:
              path: /pagecount
              port: 8080
            initialDelaySeconds: 3
            timeoutSeconds: 3
          resources:
            limits:
              memory: ${MEMORY_LIMIT}
    triggers:
    - imageChangeParams:
        automatic: false
        containerNames:
        - nodejs-mongodb-example
        from:
          kind: ImageStreamTag
          name: ${NAME}:latest
      type: ImageChange
    - type: ConfigChange
- apiVersion: v1
  kind: Service
  metadata:
    annotations:
      description: Exposes the database server
    name: ${DATABASE_SERVICE_NAME}
  spec:
    ports:
    - name: mongodb
      port: 27017
      targetPort: 27017
    selector:
      name: ${DATABASE_SERVICE_NAME}
- apiVersion: v1
  kind: DeploymentConfig
  metadata:
    annotations:
      description: Defines how to deploy the database
    name: ${DATABASE_SERVICE_NAME}
  spec:
    replicas: 1
    selector:
      name: ${DATABASE_SERVICE_NAME}
    strategy:
      type: Recreate
    template:
      metadata:
        labels:
          name: ${DATABASE_SERVICE_NAME}
        name: ${DATABASE_SERVICE_NAME}
      spec:
        containers:
        - env:
          - name: MONGODB_USER
            value: ${DATABASE_USER}
          - name: MONGODB_PASSWORD
            value: ${DATABASE_PASSWORD}
          - name: MONGODB_DATABASE
            value: ${DATABASE_NAME}
          - name: MONGODB_ADMIN_PASSWORD
            value: ${DATABASE_ADMIN_PASSWORD}
          image: ' '
          livenessProbe:
            initialDelaySeconds: 30
            tcpSocket:
              port: 27017
            timeoutSeconds: 1
          name: mongodb
          ports:
          - containerPort: 27017
          readinessProbe:
            exec:
              command:
              - /bin/sh
              - -i
              - -c
              - mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD
                --eval="quit()"
            initialDelaySeconds: 3
            timeoutSeconds: 1
          resources:
            limits:
              memory: ${MEMORY_MONGODB_LIMIT}
          volumeMounts:
          - mountPath: /var/lib/mongodb/data
            name: ${DATABASE_SERVICE_NAME}-data
        volumes:
        - emptyDir:
            medium: ""
          name: ${DATABASE_SERVICE_NAME}-data
    triggers:
    - imageChangeParams:
        automatic: true
        containerNames:
        - mongodb
        from:
          kind: ImageStreamTag
          name: mongodb:3.2
          namespace: ${NAMESPACE}
      type: ImageChange
    - type: ConfigChange
`)

func examplesJenkinsPipelineSamplepipelineYamlBytes() ([]byte, error) {
	return _examplesJenkinsPipelineSamplepipelineYaml, nil
}

func examplesJenkinsPipelineSamplepipelineYaml() (*asset, error) {
	bytes, err := examplesJenkinsPipelineSamplepipelineYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/jenkins/pipeline/samplepipeline.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _examplesQuickstartsCakephpMysqlJsonCakephpMysqlJson = []byte(`{
    "apiVersion": "v1",
    "kind": "Template",
    "labels": {
        "app": "cakephp-mysql-example",
        "template": "cakephp-mysql-example"
    },
    "message": "The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/cakephp-ex/blob/master/README.md.",
    "metadata": {
        "annotations": {
            "description": "An example CakePHP application with a MySQL database. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/cakephp-ex/blob/master/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.",
            "iconClass": "icon-php",
            "openshift.io/display-name": "CakePHP + MySQL (Ephemeral)",
            "openshift.io/documentation-url": "https://github.com/sclorg/cakephp-ex",
            "openshift.io/long-description": "This template defines resources needed to develop a CakePHP application, including a build configuration, application deployment configuration, and database deployment configuration.  The database is stored in non-persistent storage, so this configuration should be used for experimental purposes only.",
            "openshift.io/provider-display-name": "Red Hat, Inc.",
            "openshift.io/support-url": "https://access.redhat.com",
            "tags": "quickstart,php,cakephp",
            "template.openshift.io/bindable": "false"
        },
        "name": "cakephp-mysql-example"
    },
    "objects": [
        {
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
                "name": "${NAME}"
            },
            "stringData": {
                "cakephp-secret-token": "${CAKEPHP_SECRET_TOKEN}",
                "cakephp-security-salt": "${CAKEPHP_SECURITY_SALT}",
                "database-password": "${DATABASE_PASSWORD}",
                "database-user": "${DATABASE_USER}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes and load balances the application pods",
                    "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]"
                },
                "name": "${NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "web",
                        "port": 8080,
                        "targetPort": 8080
                    }
                ],
                "selector": {
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Route",
            "metadata": {
                "name": "${NAME}"
            },
            "spec": {
                "host": "${APPLICATION_DOMAIN}",
                "to": {
                    "kind": "Service",
                    "name": "${NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "ImageStream",
            "metadata": {
                "annotations": {
                    "description": "Keeps track of changes in the application image"
                },
                "name": "${NAME}"
            }
        },
        {
            "apiVersion": "v1",
            "kind": "BuildConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to build the application",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "output": {
                    "to": {
                        "kind": "ImageStreamTag",
                        "name": "${NAME}:latest"
                    }
                },
                "postCommit": {
                    "script": "./vendor/bin/phpunit"
                },
                "source": {
                    "contextDir": "${CONTEXT_DIR}",
                    "git": {
                        "ref": "${SOURCE_REPOSITORY_REF}",
                        "uri": "${SOURCE_REPOSITORY_URL}"
                    },
                    "type": "Git"
                },
                "strategy": {
                    "sourceStrategy": {
                        "env": [
                            {
                                "name": "COMPOSER_MIRROR",
                                "value": "${COMPOSER_MIRROR}"
                            }
                        ],
                        "from": {
                            "kind": "ImageStreamTag",
                            "name": "php:${PHP_VERSION}",
                            "namespace": "${NAMESPACE}"
                        }
                    },
                    "type": "Source"
                },
                "triggers": [
                    {
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "github": {
                            "secret": "${GITHUB_WEBHOOK_SECRET}"
                        },
                        "type": "GitHub"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the application server",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${NAME}"
                },
                "strategy": {
                    "recreateParams": {
                        "pre": {
                            "execNewPod": {
                                "command": [
                                    "./migrate-database.sh"
                                ],
                                "containerName": "cakephp-mysql-example"
                            },
                            "failurePolicy": "Retry"
                        }
                    },
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${NAME}"
                        },
                        "name": "${NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "DATABASE_SERVICE_NAME",
                                        "value": "${DATABASE_SERVICE_NAME}"
                                    },
                                    {
                                        "name": "DATABASE_ENGINE",
                                        "value": "${DATABASE_ENGINE}"
                                    },
                                    {
                                        "name": "DATABASE_NAME",
                                        "value": "${DATABASE_NAME}"
                                    },
                                    {
                                        "name": "DATABASE_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "DATABASE_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "CAKEPHP_SECRET_TOKEN",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "cakephp-secret-token",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "CAKEPHP_SECURITY_SALT",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "cakephp-security-salt",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "OPCACHE_REVALIDATE_FREQ",
                                        "value": "${OPCACHE_REVALIDATE_FREQ}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "httpGet": {
                                        "path": "/health.php",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 30,
                                    "periodSeconds": 60,
                                    "timeoutSeconds": 3
                                },
                                "name": "cakephp-mysql-example",
                                "ports": [
                                    {
                                        "containerPort": 8080
                                    }
                                ],
                                "readinessProbe": {
                                    "httpGet": {
                                        "path": "/health.php",
                                        "port": 8080
                                    },
                                    "initialDelaySeconds": 3,
                                    "periodSeconds": 60,
                                    "timeoutSeconds": 3
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_LIMIT}"
                                    }
                                }
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "cakephp-mysql-example"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "${NAME}:latest"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        },
        {
            "apiVersion": "v1",
            "kind": "Service",
            "metadata": {
                "annotations": {
                    "description": "Exposes the database server"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "ports": [
                    {
                        "name": "mysql",
                        "port": 3306,
                        "targetPort": 3306
                    }
                ],
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                }
            }
        },
        {
            "apiVersion": "v1",
            "kind": "DeploymentConfig",
            "metadata": {
                "annotations": {
                    "description": "Defines how to deploy the database",
                    "template.alpha.openshift.io/wait-for-ready": "true"
                },
                "name": "${DATABASE_SERVICE_NAME}"
            },
            "spec": {
                "replicas": 1,
                "selector": {
                    "name": "${DATABASE_SERVICE_NAME}"
                },
                "strategy": {
                    "type": "Recreate"
                },
                "template": {
                    "metadata": {
                        "labels": {
                            "name": "${DATABASE_SERVICE_NAME}"
                        },
                        "name": "${DATABASE_SERVICE_NAME}"
                    },
                    "spec": {
                        "containers": [
                            {
                                "env": [
                                    {
                                        "name": "MYSQL_USER",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-user",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_PASSWORD",
                                        "valueFrom": {
                                            "secretKeyRef": {
                                                "key": "database-password",
                                                "name": "${NAME}"
                                            }
                                        }
                                    },
                                    {
                                        "name": "MYSQL_DATABASE",
                                        "value": "${DATABASE_NAME}"
                                    }
                                ],
                                "image": " ",
                                "livenessProbe": {
                                    "initialDelaySeconds": 30,
                                    "tcpSocket": {
                                        "port": 3306
                                    },
                                    "timeoutSeconds": 1
                                },
                                "name": "mysql",
                                "ports": [
                                    {
                                        "containerPort": 3306
                                    }
                                ],
                                "readinessProbe": {
                                    "exec": {
                                        "command": [
                                            "/bin/sh",
                                            "-i",
                                            "-c",
                                            "MYSQL_PWD='${DATABASE_PASSWORD}' mysql -h 127.0.0.1 -u ${DATABASE_USER} -D ${DATABASE_NAME} -e 'SELECT 1'"
                                        ]
                                    },
                                    "initialDelaySeconds": 5,
                                    "timeoutSeconds": 1
                                },
                                "resources": {
                                    "limits": {
                                        "memory": "${MEMORY_MYSQL_LIMIT}"
                                    }
                                },
                                "volumeMounts": [
                                    {
                                        "mountPath": "/var/lib/mysql/data",
                                        "name": "data"
                                    }
                                ]
                            }
                        ],
                        "volumes": [
                            {
                                "emptyDir": {},
                                "name": "data"
                            }
                        ]
                    }
                },
                "triggers": [
                    {
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "mysql"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "mysql:5.7",
                                "namespace": "${NAMESPACE}"
                            }
                        },
                        "type": "ImageChange"
                    },
                    {
                        "type": "ConfigChange"
                    }
                ]
            }
        }
    ],
    "parameters": [
        {
            "description": "The name assigned to all of the frontend objects defined in this template.",
            "displayName": "Name",
            "name": "NAME",
            "required": true,
            "value": "cakephp-mysql-example"
        },
        {
            "description": "The OpenShift Namespace where the ImageStream resides.",
            "displayName": "Namespace",
            "name": "NAMESPACE",
            "required": true,
            "value": "openshift"
        },
        {
            "description": "Version of PHP image to be used (7.1 or latest).",
            "displayName": "PHP Version",
            "name": "PHP_VERSION",
            "required": true,
            "value": "7.1"
        },
        {
            "description": "Maximum amount of memory the CakePHP container can use.",
            "displayName": "Memory Limit",
            "name": "MEMORY_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "Maximum amount of memory the MySQL container can use.",
            "displayName": "Memory Limit (MySQL)",
            "name": "MEMORY_MYSQL_LIMIT",
            "required": true,
            "value": "512Mi"
        },
        {
            "description": "The URL of the repository with your application source code.",
            "displayName": "Git Repository URL",
            "name": "SOURCE_REPOSITORY_URL",
            "required": true,
            "value": "https://github.com/sclorg/cakephp-ex.git"
        },
        {
            "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch.",
            "displayName": "Git Reference",
            "name": "SOURCE_REPOSITORY_REF"
        },
        {
            "description": "Set this to the relative path to your project if it is not in the root of your repository.",
            "displayName": "Context Directory",
            "name": "CONTEXT_DIR"
        },
        {
            "description": "The exposed hostname that will route to the CakePHP service, if left blank a value will be defaulted.",
            "displayName": "Application Hostname",
            "name": "APPLICATION_DOMAIN",
            "value": ""
        },
        {
            "description": "Github trigger secret.  A difficult to guess string encoded as part of the webhook URL.  Not encrypted.",
            "displayName": "GitHub Webhook Secret",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "GITHUB_WEBHOOK_SECRET"
        },
        {
            "displayName": "Database Service Name",
            "name": "DATABASE_SERVICE_NAME",
            "required": true,
            "value": "mysql"
        },
        {
            "description": "Database engine: postgresql, mysql or sqlite (default).",
            "displayName": "Database Engine",
            "name": "DATABASE_ENGINE",
            "required": true,
            "value": "mysql"
        },
        {
            "displayName": "Database Name",
            "name": "DATABASE_NAME",
            "required": true,
            "value": "default"
        },
        {
            "displayName": "Database User",
            "name": "DATABASE_USER",
            "required": true,
            "value": "cakephp"
        },
        {
            "displayName": "Database Password",
            "from": "[a-zA-Z0-9]{16}",
            "generate": "expression",
            "name": "DATABASE_PASSWORD"
        },
        {
            "description": "Set this to a long random string.",
            "displayName": "CakePHP secret token",
            "from": "[\\w]{50}",
            "generate": "expression",
            "name": "CAKEPHP_SECRET_TOKEN"
        },
        {
            "description": "Security salt for session hash.",
            "displayName": "CakePHP Security Salt",
            "from": "[a-zA-Z0-9]{40}",
            "generate": "expression",
            "name": "CAKEPHP_SECURITY_SALT"
        },
        {
            "description": "How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request.",
            "displayName": "OPcache Revalidation Frequency",
            "name": "OPCACHE_REVALIDATE_FREQ",
            "value": "2"
        },
        {
            "description": "The custom Composer mirror URL",
            "displayName": "Custom Composer Mirror URL",
            "name": "COMPOSER_MIRROR",
            "value": ""
        }
    ]
}`)

func examplesQuickstartsCakephpMysqlJsonCakephpMysqlJsonBytes() ([]byte, error) {
	return _examplesQuickstartsCakephpMysqlJsonCakephpMysqlJson, nil
}

func examplesQuickstartsCakephpMysqlJsonCakephpMysqlJson() (*asset, error) {
	bytes, err := examplesQuickstartsCakephpMysqlJsonCakephpMysqlJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "examples/quickstarts/cakephp-mysql.json/cakephp-mysql.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _installEtcdEtcdYaml = []byte(`kind: Pod
apiVersion: v1
metadata:
  name: etcd
  namespace: kube-system
  labels:
    openshift.io/control-plane: "true"
    openshift.io/component: etcd
spec:
  restartPolicy: Always
  hostNetwork: true
  containers:
  - name: etcd
    image: {{ .Image }}
    imagePullPolicy: {{ .ImagePullPolicy }}
    securityContext:
      runAsNonRoot: false
      privileged: true
    workingDir: /var/run/etcd/data
    command: ["/usr/local/bin/etcd"]
    args:
    - --ca-file=/var/run/etcd/tls/root-ca.crt
    - --trusted-ca-file=/var/run/etcd/tls/etcd-client-ca.crt
    - --client-cert-auth
    - --cert-file=/var/run/etcd/tls/etcd-server.crt
    - --key-file=/var/run/etcd/tls/etcd-server.key
    - --listen-client-urls=https://0.0.0.0:2379
    - --advertise-client-urls=https://0.0.0.0:2379
    - --data-dir=/var/run/etcd/data
    volumeMounts:
    - mountPath: /var/run/etcd/tls
      name: tls
      readOnly: true
    - mountPath: /var/run/etcd/data
      name: data
  volumes:
  - name: tls
    hostPath:
      path: {{ .TlsDir }}
  - name: data
    hostPath:
      path: {{ .EtcdDataDir }}`)

func installEtcdEtcdYamlBytes() ([]byte, error) {
	return _installEtcdEtcdYaml, nil
}

func installEtcdEtcdYaml() (*asset, error) {
	bytes, err := installEtcdEtcdYamlBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "install/etcd/etcd.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

// Asset loads and returns the asset for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func Asset(name string) ([]byte, error) {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[cannonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
		}
		return a.bytes, nil
	}
	return nil, fmt.Errorf("Asset %s not found", name)
}

// MustAsset is like Asset but panics when Asset would return an error.
// It simplifies safe initialization of global variables.
func MustAsset(name string) []byte {
	a, err := Asset(name)
	if err != nil {
		panic("asset: Asset(" + name + "): " + err.Error())
	}

	return a
}

// AssetInfo loads and returns the asset info for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func AssetInfo(name string) (os.FileInfo, error) {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[cannonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
		}
		return a.info, nil
	}
	return nil, fmt.Errorf("AssetInfo %s not found", name)
}

// AssetNames returns the names of the assets.
func AssetNames() []string {
	names := make([]string, 0, len(_bindata))
	for name := range _bindata {
		names = append(names, name)
	}
	return names
}

// _bindata is a table, holding each asset generator, mapped to its name.
var _bindata = map[string]func() (*asset, error){
	"test/extended/testdata/aggregator/kube-system-auth-reader.yaml": testExtendedTestdataAggregatorKubeSystemAuthReaderYaml,
	"test/extended/testdata/aggregator/sample-apiserver-apiservice.yaml": testExtendedTestdataAggregatorSampleApiserverApiserviceYaml,
	"test/extended/testdata/aggregator/sample-apiserver-authdelegator.yaml": testExtendedTestdataAggregatorSampleApiserverAuthdelegatorYaml,
	"test/extended/testdata/aggregator/sample-apiserver-authreader.yaml": testExtendedTestdataAggregatorSampleApiserverAuthreaderYaml,
	"test/extended/testdata/aggregator/sample-apiserver-rc.yaml": testExtendedTestdataAggregatorSampleApiserverRcYaml,
	"test/extended/testdata/aggregator/sample-apiserver-sa.yaml": testExtendedTestdataAggregatorSampleApiserverSaYaml,
	"test/extended/testdata/aggregator/sample-apiserver-service.yaml": testExtendedTestdataAggregatorSampleApiserverServiceYaml,
	"test/extended/testdata/builds/application-template-custombuild.json": testExtendedTestdataBuildsApplicationTemplateCustombuildJson,
	"test/extended/testdata/builds/build-postcommit/docker.yaml": testExtendedTestdataBuildsBuildPostcommitDockerYaml,
	"test/extended/testdata/builds/build-postcommit/imagestreams.yaml": testExtendedTestdataBuildsBuildPostcommitImagestreamsYaml,
	"test/extended/testdata/builds/build-postcommit/sti.yaml": testExtendedTestdataBuildsBuildPostcommitStiYaml,
	"test/extended/testdata/builds/build-pruning/default-group-build-config.yaml": testExtendedTestdataBuildsBuildPruningDefaultGroupBuildConfigYaml,
	"test/extended/testdata/builds/build-pruning/default-legacy-build-config.yaml": testExtendedTestdataBuildsBuildPruningDefaultLegacyBuildConfigYaml,
	"test/extended/testdata/builds/build-pruning/errored-build-config.yaml": testExtendedTestdataBuildsBuildPruningErroredBuildConfigYaml,
	"test/extended/testdata/builds/build-pruning/failed-build-config.yaml": testExtendedTestdataBuildsBuildPruningFailedBuildConfigYaml,
	"test/extended/testdata/builds/build-pruning/failed-pipeline.yaml": testExtendedTestdataBuildsBuildPruningFailedPipelineYaml,
	"test/extended/testdata/builds/build-pruning/imagestream.yaml": testExtendedTestdataBuildsBuildPruningImagestreamYaml,
	"test/extended/testdata/builds/build-pruning/successful-build-config.yaml": testExtendedTestdataBuildsBuildPruningSuccessfulBuildConfigYaml,
	"test/extended/testdata/builds/build-pruning/successful-pipeline.yaml": testExtendedTestdataBuildsBuildPruningSuccessfulPipelineYaml,
	"test/extended/testdata/builds/build-quota/.s2i/bin/assemble": testExtendedTestdataBuildsBuildQuotaS2iBinAssemble,
	"test/extended/testdata/builds/build-quota/Dockerfile": testExtendedTestdataBuildsBuildQuotaDockerfile,
	"test/extended/testdata/builds/build-secrets/Dockerfile": testExtendedTestdataBuildsBuildSecretsDockerfile,
	"test/extended/testdata/builds/build-secrets/s2i-binary-dir/.s2i/bin/assemble": testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinAssemble,
	"test/extended/testdata/builds/build-secrets/s2i-binary-dir/.s2i/bin/run": testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinRun,
	"test/extended/testdata/builds/build-secrets/s2i-binary-dir/Gemfile": testExtendedTestdataBuildsBuildSecretsS2iBinaryDirGemfile,
	"test/extended/testdata/builds/build-secrets/s2i-binary-dir/config.ru": testExtendedTestdataBuildsBuildSecretsS2iBinaryDirConfigRu,
	"test/extended/testdata/builds/build-secrets/test-configmap-2.json": testExtendedTestdataBuildsBuildSecretsTestConfigmap2Json,
	"test/extended/testdata/builds/build-secrets/test-configmap.json": testExtendedTestdataBuildsBuildSecretsTestConfigmapJson,
	"test/extended/testdata/builds/build-secrets/test-docker-build.json": testExtendedTestdataBuildsBuildSecretsTestDockerBuildJson,
	"test/extended/testdata/builds/build-secrets/test-is.json": testExtendedTestdataBuildsBuildSecretsTestIsJson,
	"test/extended/testdata/builds/build-secrets/test-s2i-build.json": testExtendedTestdataBuildsBuildSecretsTestS2iBuildJson,
	"test/extended/testdata/builds/build-secrets/test-secret-2.json": testExtendedTestdataBuildsBuildSecretsTestSecret2Json,
	"test/extended/testdata/builds/build-secrets/test-secret.json": testExtendedTestdataBuildsBuildSecretsTestSecretJson,
	"test/extended/testdata/builds/build-timing/Dockerfile": testExtendedTestdataBuildsBuildTimingDockerfile,
	"test/extended/testdata/builds/build-timing/s2i-binary-dir/.s2i/bin/assemble": testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinAssemble,
	"test/extended/testdata/builds/build-timing/s2i-binary-dir/.s2i/bin/run": testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinRun,
	"test/extended/testdata/builds/build-timing/s2i-binary-dir/Gemfile": testExtendedTestdataBuildsBuildTimingS2iBinaryDirGemfile,
	"test/extended/testdata/builds/build-timing/s2i-binary-dir/config.ru": testExtendedTestdataBuildsBuildTimingS2iBinaryDirConfigRu,
	"test/extended/testdata/builds/build-timing/test-docker-build.json": testExtendedTestdataBuildsBuildTimingTestDockerBuildJson,
	"test/extended/testdata/builds/build-timing/test-is.json": testExtendedTestdataBuildsBuildTimingTestIsJson,
	"test/extended/testdata/builds/build-timing/test-s2i-build.json": testExtendedTestdataBuildsBuildTimingTestS2iBuildJson,
	"test/extended/testdata/builds/cluster-config/registry-blacklist.yaml": testExtendedTestdataBuildsClusterConfigRegistryBlacklistYaml,
	"test/extended/testdata/builds/cluster-config/registry-whitelist.yaml": testExtendedTestdataBuildsClusterConfigRegistryWhitelistYaml,
	"test/extended/testdata/builds/cluster-config.yaml": testExtendedTestdataBuildsClusterConfigYaml,
	"test/extended/testdata/builds/gradle-pipeline.yaml": testExtendedTestdataBuildsGradlePipelineYaml,
	"test/extended/testdata/builds/incremental-auth-build.json": testExtendedTestdataBuildsIncrementalAuthBuildJson,
	"test/extended/testdata/builds/s2i-environment-build-app/.s2i/environment": testExtendedTestdataBuildsS2iEnvironmentBuildAppS2iEnvironment,
	"test/extended/testdata/builds/s2i-environment-build-app/Gemfile": testExtendedTestdataBuildsS2iEnvironmentBuildAppGemfile,
	"test/extended/testdata/builds/s2i-environment-build-app/config.ru": testExtendedTestdataBuildsS2iEnvironmentBuildAppConfigRu,
	"test/extended/testdata/builds/statusfail-assemble/.s2i/bin/assemble": testExtendedTestdataBuildsStatusfailAssembleS2iBinAssemble,
	"test/extended/testdata/builds/statusfail-badcontextdirs2i.yaml": testExtendedTestdataBuildsStatusfailBadcontextdirs2iYaml,
	"test/extended/testdata/builds/statusfail-failedassemble.yaml": testExtendedTestdataBuildsStatusfailFailedassembleYaml,
	"test/extended/testdata/builds/statusfail-fetchbuilderimage.yaml": testExtendedTestdataBuildsStatusfailFetchbuilderimageYaml,
	"test/extended/testdata/builds/statusfail-fetchsourcedocker.yaml": testExtendedTestdataBuildsStatusfailFetchsourcedockerYaml,
	"test/extended/testdata/builds/statusfail-fetchsources2i.yaml": testExtendedTestdataBuildsStatusfailFetchsources2iYaml,
	"test/extended/testdata/builds/statusfail-genericreason.yaml": testExtendedTestdataBuildsStatusfailGenericreasonYaml,
	"test/extended/testdata/builds/statusfail-oomkilled.yaml": testExtendedTestdataBuildsStatusfailOomkilledYaml,
	"test/extended/testdata/builds/statusfail-postcommithook.yaml": testExtendedTestdataBuildsStatusfailPostcommithookYaml,
	"test/extended/testdata/builds/statusfail-pushtoregistry.yaml": testExtendedTestdataBuildsStatusfailPushtoregistryYaml,
	"test/extended/testdata/builds/test-auth-build.yaml": testExtendedTestdataBuildsTestAuthBuildYaml,
	"test/extended/testdata/builds/test-bc-with-pr-ref.yaml": testExtendedTestdataBuildsTestBcWithPrRefYaml,
	"test/extended/testdata/builds/test-build-app/Dockerfile": testExtendedTestdataBuildsTestBuildAppDockerfile,
	"test/extended/testdata/builds/test-build-app/Gemfile": testExtendedTestdataBuildsTestBuildAppGemfile,
	"test/extended/testdata/builds/test-build-app/config.ru": testExtendedTestdataBuildsTestBuildAppConfigRu,
	"test/extended/testdata/builds/test-build-podsvc.json": testExtendedTestdataBuildsTestBuildPodsvcJson,
	"test/extended/testdata/builds/test-build-proxy.yaml": testExtendedTestdataBuildsTestBuildProxyYaml,
	"test/extended/testdata/builds/test-build-revision.json": testExtendedTestdataBuildsTestBuildRevisionJson,
	"test/extended/testdata/builds/test-build.yaml": testExtendedTestdataBuildsTestBuildYaml,
	"test/extended/testdata/builds/test-buildconfigsecretinjector.yaml": testExtendedTestdataBuildsTestBuildconfigsecretinjectorYaml,
	"test/extended/testdata/builds/test-cds-dockerbuild.json": testExtendedTestdataBuildsTestCdsDockerbuildJson,
	"test/extended/testdata/builds/test-cds-sourcebuild.json": testExtendedTestdataBuildsTestCdsSourcebuildJson,
	"test/extended/testdata/builds/test-context-build.json": testExtendedTestdataBuildsTestContextBuildJson,
	"test/extended/testdata/builds/test-docker-app/Dockerfile": testExtendedTestdataBuildsTestDockerAppDockerfile,
	"test/extended/testdata/builds/test-docker-build-pullsecret.json": testExtendedTestdataBuildsTestDockerBuildPullsecretJson,
	"test/extended/testdata/builds/test-docker-build.json": testExtendedTestdataBuildsTestDockerBuildJson,
	"test/extended/testdata/builds/test-docker-no-outputname.json": testExtendedTestdataBuildsTestDockerNoOutputnameJson,
	"test/extended/testdata/builds/test-env-build.json": testExtendedTestdataBuildsTestEnvBuildJson,
	"test/extended/testdata/builds/test-imagechangetriggers.yaml": testExtendedTestdataBuildsTestImagechangetriggersYaml,
	"test/extended/testdata/builds/test-imageresolution-custom-build.yaml": testExtendedTestdataBuildsTestImageresolutionCustomBuildYaml,
	"test/extended/testdata/builds/test-imageresolution-docker-build.yaml": testExtendedTestdataBuildsTestImageresolutionDockerBuildYaml,
	"test/extended/testdata/builds/test-imageresolution-s2i-build.yaml": testExtendedTestdataBuildsTestImageresolutionS2iBuildYaml,
	"test/extended/testdata/builds/test-imagesource-buildconfig.yaml": testExtendedTestdataBuildsTestImagesourceBuildconfigYaml,
	"test/extended/testdata/builds/test-nosrc-build.json": testExtendedTestdataBuildsTestNosrcBuildJson,
	"test/extended/testdata/builds/test-s2i-build-quota.json": testExtendedTestdataBuildsTestS2iBuildQuotaJson,
	"test/extended/testdata/builds/test-s2i-build.json": testExtendedTestdataBuildsTestS2iBuildJson,
	"test/extended/testdata/builds/test-s2i-no-outputname.json": testExtendedTestdataBuildsTestS2iNoOutputnameJson,
	"test/extended/testdata/builds/test-symlink-build.yaml": testExtendedTestdataBuildsTestSymlinkBuildYaml,
	"test/extended/testdata/builds/valuefrom/failed-docker-build-value-from-config.yaml": testExtendedTestdataBuildsValuefromFailedDockerBuildValueFromConfigYaml,
	"test/extended/testdata/builds/valuefrom/failed-sti-build-value-from-config.yaml": testExtendedTestdataBuildsValuefromFailedStiBuildValueFromConfigYaml,
	"test/extended/testdata/builds/valuefrom/successful-docker-build-value-from-config.yaml": testExtendedTestdataBuildsValuefromSuccessfulDockerBuildValueFromConfigYaml,
	"test/extended/testdata/builds/valuefrom/successful-sti-build-value-from-config.yaml": testExtendedTestdataBuildsValuefromSuccessfulStiBuildValueFromConfigYaml,
	"test/extended/testdata/builds/valuefrom/test-configmap.yaml": testExtendedTestdataBuildsValuefromTestConfigmapYaml,
	"test/extended/testdata/builds/valuefrom/test-is.json": testExtendedTestdataBuildsValuefromTestIsJson,
	"test/extended/testdata/builds/valuefrom/test-secret.yaml": testExtendedTestdataBuildsValuefromTestSecretYaml,
	"test/extended/testdata/cluster/master-vert.yaml": testExtendedTestdataClusterMasterVertYaml,
	"test/extended/testdata/config-map-jenkins-slave-pods.yaml": testExtendedTestdataConfigMapJenkinsSlavePodsYaml,
	"test/extended/testdata/custom-secret-builder/Dockerfile": testExtendedTestdataCustomSecretBuilderDockerfile,
	"test/extended/testdata/custom-secret-builder/build.sh": testExtendedTestdataCustomSecretBuilderBuildSh,
	"test/extended/testdata/deployments/custom-deployment.yaml": testExtendedTestdataDeploymentsCustomDeploymentYaml,
	"test/extended/testdata/deployments/deployment-example.yaml": testExtendedTestdataDeploymentsDeploymentExampleYaml,
	"test/extended/testdata/deployments/deployment-history-limit.yaml": testExtendedTestdataDeploymentsDeploymentHistoryLimitYaml,
	"test/extended/testdata/deployments/deployment-ignores-deployer.yaml": testExtendedTestdataDeploymentsDeploymentIgnoresDeployerYaml,
	"test/extended/testdata/deployments/deployment-image-resolution-is.yaml": testExtendedTestdataDeploymentsDeploymentImageResolutionIsYaml,
	"test/extended/testdata/deployments/deployment-image-resolution.yaml": testExtendedTestdataDeploymentsDeploymentImageResolutionYaml,
	"test/extended/testdata/deployments/deployment-min-ready-seconds.yaml": testExtendedTestdataDeploymentsDeploymentMinReadySecondsYaml,
	"test/extended/testdata/deployments/deployment-simple.yaml": testExtendedTestdataDeploymentsDeploymentSimpleYaml,
	"test/extended/testdata/deployments/deployment-trigger.yaml": testExtendedTestdataDeploymentsDeploymentTriggerYaml,
	"test/extended/testdata/deployments/deployment-with-ref-env.yaml": testExtendedTestdataDeploymentsDeploymentWithRefEnvYaml,
	"test/extended/testdata/deployments/failing-pre-hook.yaml": testExtendedTestdataDeploymentsFailingPreHookYaml,
	"test/extended/testdata/deployments/generation-test.yaml": testExtendedTestdataDeploymentsGenerationTestYaml,
	"test/extended/testdata/deployments/multi-ict-deployment.yaml": testExtendedTestdataDeploymentsMultiIctDeploymentYaml,
	"test/extended/testdata/deployments/paused-deployment.yaml": testExtendedTestdataDeploymentsPausedDeploymentYaml,
	"test/extended/testdata/deployments/readiness-test.yaml": testExtendedTestdataDeploymentsReadinessTestYaml,
	"test/extended/testdata/deployments/tag-images-deployment.yaml": testExtendedTestdataDeploymentsTagImagesDeploymentYaml,
	"test/extended/testdata/deployments/test-deployment-broken.yaml": testExtendedTestdataDeploymentsTestDeploymentBrokenYaml,
	"test/extended/testdata/deployments/test-deployment-test.yaml": testExtendedTestdataDeploymentsTestDeploymentTestYaml,
	"test/extended/testdata/forcepull-test.json": testExtendedTestdataForcepullTestJson,
	"test/extended/testdata/gssapi/config/kubeconfig": testExtendedTestdataGssapiConfigKubeconfig,
	"test/extended/testdata/gssapi/config/oauth_config.json": testExtendedTestdataGssapiConfigOauth_configJson,
	"test/extended/testdata/gssapi/fedora/base/Dockerfile": testExtendedTestdataGssapiFedoraBaseDockerfile,
	"test/extended/testdata/gssapi/fedora/kerberos/Dockerfile": testExtendedTestdataGssapiFedoraKerberosDockerfile,
	"test/extended/testdata/gssapi/fedora/kerberos_configured/Dockerfile": testExtendedTestdataGssapiFedoraKerberos_configuredDockerfile,
	"test/extended/testdata/gssapi/proxy/Dockerfile": testExtendedTestdataGssapiProxyDockerfile,
	"test/extended/testdata/gssapi/proxy/configure.sh": testExtendedTestdataGssapiProxyConfigureSh,
	"test/extended/testdata/gssapi/proxy/gssapiproxy-buildconfig.yaml": testExtendedTestdataGssapiProxyGssapiproxyBuildconfigYaml,
	"test/extended/testdata/gssapi/proxy/gssapiproxy-deploymentconfig.yaml": testExtendedTestdataGssapiProxyGssapiproxyDeploymentconfigYaml,
	"test/extended/testdata/gssapi/proxy/gssapiproxy-imagestream.yaml": testExtendedTestdataGssapiProxyGssapiproxyImagestreamYaml,
	"test/extended/testdata/gssapi/proxy/gssapiproxy-service.yaml": testExtendedTestdataGssapiProxyGssapiproxyServiceYaml,
	"test/extended/testdata/gssapi/proxy/healthz": testExtendedTestdataGssapiProxyHealthz,
	"test/extended/testdata/gssapi/proxy/kadm5.acl": testExtendedTestdataGssapiProxyKadm5Acl,
	"test/extended/testdata/gssapi/proxy/kdc.conf": testExtendedTestdataGssapiProxyKdcConf,
	"test/extended/testdata/gssapi/proxy/krb5.conf": testExtendedTestdataGssapiProxyKrb5Conf,
	"test/extended/testdata/gssapi/proxy/proxy.conf": testExtendedTestdataGssapiProxyProxyConf,
	"test/extended/testdata/gssapi/scripts/gssapi-tests.sh": testExtendedTestdataGssapiScriptsGssapiTestsSh,
	"test/extended/testdata/gssapi/scripts/test-wrapper.sh": testExtendedTestdataGssapiScriptsTestWrapperSh,
	"test/extended/testdata/gssapi/ubuntu/base/Dockerfile": testExtendedTestdataGssapiUbuntuBaseDockerfile,
	"test/extended/testdata/gssapi/ubuntu/kerberos/Dockerfile": testExtendedTestdataGssapiUbuntuKerberosDockerfile,
	"test/extended/testdata/gssapi/ubuntu/kerberos_configured/Dockerfile": testExtendedTestdataGssapiUbuntuKerberos_configuredDockerfile,
	"test/extended/testdata/hello-builder/Dockerfile": testExtendedTestdataHelloBuilderDockerfile,
	"test/extended/testdata/hello-builder/scripts/assemble": testExtendedTestdataHelloBuilderScriptsAssemble,
	"test/extended/testdata/hello-builder/scripts/run": testExtendedTestdataHelloBuilderScriptsRun,
	"test/extended/testdata/idling-echo-server-rc.yaml": testExtendedTestdataIdlingEchoServerRcYaml,
	"test/extended/testdata/idling-echo-server.yaml": testExtendedTestdataIdlingEchoServerYaml,
	"test/extended/testdata/image/deployment-with-annotation-trigger.yaml": testExtendedTestdataImageDeploymentWithAnnotationTriggerYaml,
	"test/extended/testdata/image-pull-secrets/dc-with-new-pull-secret.yaml": testExtendedTestdataImagePullSecretsDcWithNewPullSecretYaml,
	"test/extended/testdata/image-pull-secrets/dc-with-old-pull-secret.yaml": testExtendedTestdataImagePullSecretsDcWithOldPullSecretYaml,
	"test/extended/testdata/image-pull-secrets/pod-with-new-pull-secret.yaml": testExtendedTestdataImagePullSecretsPodWithNewPullSecretYaml,
	"test/extended/testdata/image-pull-secrets/pod-with-no-pull-secret.yaml": testExtendedTestdataImagePullSecretsPodWithNoPullSecretYaml,
	"test/extended/testdata/image-pull-secrets/pod-with-old-pull-secret.yaml": testExtendedTestdataImagePullSecretsPodWithOldPullSecretYaml,
	"test/extended/testdata/image_ecosystem/perl-hotdeploy/index.pl": testExtendedTestdataImage_ecosystemPerlHotdeployIndexPl,
	"test/extended/testdata/image_ecosystem/perl-hotdeploy/lib/My/Test.pm": testExtendedTestdataImage_ecosystemPerlHotdeployLibMyTestPm,
	"test/extended/testdata/image_ecosystem/perl-hotdeploy/perl.json": testExtendedTestdataImage_ecosystemPerlHotdeployPerlJson,
	"test/extended/testdata/imagestream-jenkins-slave-pods.yaml": testExtendedTestdataImagestreamJenkinsSlavePodsYaml,
	"test/extended/testdata/imagestreamtag-jenkins-slave-pods.yaml": testExtendedTestdataImagestreamtagJenkinsSlavePodsYaml,
	"test/extended/testdata/ingress.yaml": testExtendedTestdataIngressYaml,
	"test/extended/testdata/jenkins-plugin/build-job-clone.xml": testExtendedTestdataJenkinsPluginBuildJobCloneXml,
	"test/extended/testdata/jenkins-plugin/build-job-slave.xml": testExtendedTestdataJenkinsPluginBuildJobSlaveXml,
	"test/extended/testdata/jenkins-plugin/build-job.xml": testExtendedTestdataJenkinsPluginBuildJobXml,
	"test/extended/testdata/jenkins-plugin/build-with-env-job.xml": testExtendedTestdataJenkinsPluginBuildWithEnvJobXml,
	"test/extended/testdata/jenkins-plugin/build-with-exec-steps.xml": testExtendedTestdataJenkinsPluginBuildWithExecStepsXml,
	"test/extended/testdata/jenkins-plugin/create-job.xml": testExtendedTestdataJenkinsPluginCreateJobXml,
	"test/extended/testdata/jenkins-plugin/delete-job-keys.xml": testExtendedTestdataJenkinsPluginDeleteJobKeysXml,
	"test/extended/testdata/jenkins-plugin/delete-job-labels.xml": testExtendedTestdataJenkinsPluginDeleteJobLabelsXml,
	"test/extended/testdata/jenkins-plugin/delete-job.xml": testExtendedTestdataJenkinsPluginDeleteJobXml,
	"test/extended/testdata/jenkins-plugin/imagestream-scm-dsl-job.xml": testExtendedTestdataJenkinsPluginImagestreamScmDslJobXml,
	"test/extended/testdata/jenkins-plugin/imagestream-scm-job.xml": testExtendedTestdataJenkinsPluginImagestreamScmJobXml,
	"test/extended/testdata/jenkins-plugin/multitag-job.xml": testExtendedTestdataJenkinsPluginMultitagJobXml,
	"test/extended/testdata/jenkins-plugin/multitag-template.json": testExtendedTestdataJenkinsPluginMultitagTemplateJson,
	"test/extended/testdata/jenkins-plugin/shared-resources-template.json": testExtendedTestdataJenkinsPluginSharedResourcesTemplateJson,
	"test/extended/testdata/jenkins-slave-template.yaml": testExtendedTestdataJenkinsSlaveTemplateYaml,
	"test/extended/testdata/jobs/v1.yaml": testExtendedTestdataJobsV1Yaml,
	"test/extended/testdata/ldap/ldapserver-buildconfig.json": testExtendedTestdataLdapLdapserverBuildconfigJson,
	"test/extended/testdata/ldap/ldapserver-deploymentconfig.json": testExtendedTestdataLdapLdapserverDeploymentconfigJson,
	"test/extended/testdata/ldap/ldapserver-imagestream-testenv.json": testExtendedTestdataLdapLdapserverImagestreamTestenvJson,
	"test/extended/testdata/ldap/ldapserver-imagestream.json": testExtendedTestdataLdapLdapserverImagestreamJson,
	"test/extended/testdata/ldap/ldapserver-service.json": testExtendedTestdataLdapLdapserverServiceJson,
	"test/extended/testdata/long_names/Dockerfile": testExtendedTestdataLong_namesDockerfile,
	"test/extended/testdata/long_names/fixture.json": testExtendedTestdataLong_namesFixtureJson,
	"test/extended/testdata/multi-namespace-pipeline.yaml": testExtendedTestdataMultiNamespacePipelineYaml,
	"test/extended/testdata/multi-namespace-template.yaml": testExtendedTestdataMultiNamespaceTemplateYaml,
	"test/extended/testdata/openshift-secret-to-jenkins-credential.yaml": testExtendedTestdataOpenshiftSecretToJenkinsCredentialYaml,
	"test/extended/testdata/reencrypt-serving-cert.yaml": testExtendedTestdataReencryptServingCertYaml,
	"test/extended/testdata/releases/payload-1/etcd-operator/image-references": testExtendedTestdataReleasesPayload1EtcdOperatorImageReferences,
	"test/extended/testdata/releases/payload-1/etcd-operator/manifest.yaml": testExtendedTestdataReleasesPayload1EtcdOperatorManifestYaml,
	"test/extended/testdata/releases/payload-1/image-registry/10_image-registry_crd.yaml": testExtendedTestdataReleasesPayload1ImageRegistry10_imageRegistry_crdYaml,
	"test/extended/testdata/releases/payload-1/image-registry/image-references": testExtendedTestdataReleasesPayload1ImageRegistryImageReferences,
	"test/extended/testdata/releases/payload-1/image-registry/manifest.yaml": testExtendedTestdataReleasesPayload1ImageRegistryManifestYaml,
	"test/extended/testdata/roles/empty-role.yaml": testExtendedTestdataRolesEmptyRoleYaml,
	"test/extended/testdata/roles/policy-clusterroles.yaml": testExtendedTestdataRolesPolicyClusterrolesYaml,
	"test/extended/testdata/roles/policy-roles.yaml": testExtendedTestdataRolesPolicyRolesYaml,
	"test/extended/testdata/router-common.yaml": testExtendedTestdataRouterCommonYaml,
	"test/extended/testdata/router-config-manager.yaml": testExtendedTestdataRouterConfigManagerYaml,
	"test/extended/testdata/router-http-echo-server.yaml": testExtendedTestdataRouterHttpEchoServerYaml,
	"test/extended/testdata/router-metrics.yaml": testExtendedTestdataRouterMetricsYaml,
	"test/extended/testdata/router-override-domains.yaml": testExtendedTestdataRouterOverrideDomainsYaml,
	"test/extended/testdata/router-override.yaml": testExtendedTestdataRouterOverrideYaml,
	"test/extended/testdata/router-scoped.yaml": testExtendedTestdataRouterScopedYaml,
	"test/extended/testdata/run_policy/parallel-bc.yaml": testExtendedTestdataRun_policyParallelBcYaml,
	"test/extended/testdata/run_policy/serial-bc.yaml": testExtendedTestdataRun_policySerialBcYaml,
	"test/extended/testdata/run_policy/serial-latest-only-bc.yaml": testExtendedTestdataRun_policySerialLatestOnlyBcYaml,
	"test/extended/testdata/s2i-dropcaps/root-access-build.yaml": testExtendedTestdataS2iDropcapsRootAccessBuildYaml,
	"test/extended/testdata/s2i-dropcaps/rootable-ruby/Dockerfile": testExtendedTestdataS2iDropcapsRootableRubyDockerfile,
	"test/extended/testdata/s2i-dropcaps/rootable-ruby/adduser": testExtendedTestdataS2iDropcapsRootableRubyAdduser,
	"test/extended/testdata/s2i-dropcaps/rootable-ruby/assemble": testExtendedTestdataS2iDropcapsRootableRubyAssemble,
	"test/extended/testdata/sample-image-stream.json": testExtendedTestdataSampleImageStreamJson,
	"test/extended/testdata/samplepipeline-withenvs.yaml": testExtendedTestdataSamplepipelineWithenvsYaml,
	"test/extended/testdata/service-serving-cert/nginx-serving-cert.conf": testExtendedTestdataServiceServingCertNginxServingCertConf,
	"test/extended/testdata/signer-buildconfig.yaml": testExtendedTestdataSignerBuildconfigYaml,
	"test/extended/testdata/templates/templateinstance_badobject.yaml": testExtendedTestdataTemplatesTemplateinstance_badobjectYaml,
	"test/extended/testdata/templates/templateinstance_objectkinds.yaml": testExtendedTestdataTemplatesTemplateinstance_objectkindsYaml,
	"test/extended/testdata/templates/templateinstance_readiness.yaml": testExtendedTestdataTemplatesTemplateinstance_readinessYaml,
	"test/extended/testdata/templates/templateservicebroker_bind.yaml": testExtendedTestdataTemplatesTemplateservicebroker_bindYaml,
	"test/extended/testdata/test-cli-debug.yaml": testExtendedTestdataTestCliDebugYaml,
	"test/extended/testdata/test-env-pod.json": testExtendedTestdataTestEnvPodJson,
	"test/extended/testdata/test-gitserver.yaml": testExtendedTestdataTestGitserverYaml,
	"test/extended/testdata/test-secret.json": testExtendedTestdataTestSecretJson,
	"test/extended/testdata/weighted-router.yaml": testExtendedTestdataWeightedRouterYaml,
	"test/integration/testdata/project-request-template-with-quota.yaml": testIntegrationTestdataProjectRequestTemplateWithQuotaYaml,
	"test/integration/testdata/test-buildcli-beta2.json": testIntegrationTestdataTestBuildcliBeta2Json,
	"test/integration/testdata/test-buildcli.json": testIntegrationTestdataTestBuildcliJson,
	"test/integration/testdata/test-deployment-config.yaml": testIntegrationTestdataTestDeploymentConfigYaml,
	"test/integration/testdata/test-egress-network-policy.json": testIntegrationTestdataTestEgressNetworkPolicyJson,
	"test/integration/testdata/test-image-stream-mapping.json": testIntegrationTestdataTestImageStreamMappingJson,
	"test/integration/testdata/test-image-stream.json": testIntegrationTestdataTestImageStreamJson,
	"test/integration/testdata/test-image.json": testIntegrationTestdataTestImageJson,
	"test/integration/testdata/test-replication-controller.yaml": testIntegrationTestdataTestReplicationControllerYaml,
	"test/integration/testdata/test-route.json": testIntegrationTestdataTestRouteJson,
	"test/integration/testdata/test-service-with-finalizer.json": testIntegrationTestdataTestServiceWithFinalizerJson,
	"test/integration/testdata/test-service.json": testIntegrationTestdataTestServiceJson,
	"examples/db-templates/mariadb-ephemeral-template.json": examplesDbTemplatesMariadbEphemeralTemplateJson,
	"examples/db-templates/mariadb-persistent-template.json": examplesDbTemplatesMariadbPersistentTemplateJson,
	"examples/db-templates/mongodb-ephemeral-template.json": examplesDbTemplatesMongodbEphemeralTemplateJson,
	"examples/db-templates/mongodb-persistent-template.json": examplesDbTemplatesMongodbPersistentTemplateJson,
	"examples/db-templates/mysql-ephemeral-template.json": examplesDbTemplatesMysqlEphemeralTemplateJson,
	"examples/db-templates/mysql-persistent-template.json": examplesDbTemplatesMysqlPersistentTemplateJson,
	"examples/db-templates/postgresql-ephemeral-template.json": examplesDbTemplatesPostgresqlEphemeralTemplateJson,
	"examples/db-templates/postgresql-persistent-template.json": examplesDbTemplatesPostgresqlPersistentTemplateJson,
	"examples/db-templates/redis-ephemeral-template.json": examplesDbTemplatesRedisEphemeralTemplateJson,
	"examples/db-templates/redis-persistent-template.json": examplesDbTemplatesRedisPersistentTemplateJson,
	"examples/image-streams/image-streams-centos7.json": examplesImageStreamsImageStreamsCentos7Json,
	"examples/image-streams/image-streams-rhel7.json": examplesImageStreamsImageStreamsRhel7Json,
	"examples/sample-app/application-template-dockerbuild.json": examplesSampleAppApplicationTemplateDockerbuildJson,
	"examples/sample-app/application-template-pullspecbuild.json": examplesSampleAppApplicationTemplatePullspecbuildJson,
	"examples/sample-app/application-template-stibuild.json": examplesSampleAppApplicationTemplateStibuildJson,
	"examples/sample-app/cleanup.sh": examplesSampleAppCleanupSh,
	"examples/sample-app/github-webhook-example.json": examplesSampleAppGithubWebhookExampleJson,
	"examples/quickstarts/cakephp-mysql-persistent.json": examplesQuickstartsCakephpMysqlPersistentJson,
	"examples/quickstarts/cakephp-mysql.json": examplesQuickstartsCakephpMysqlJson,
	"examples/quickstarts/dancer-mysql-persistent.json": examplesQuickstartsDancerMysqlPersistentJson,
	"examples/quickstarts/dancer-mysql.json": examplesQuickstartsDancerMysqlJson,
	"examples/quickstarts/django-postgresql-persistent.json": examplesQuickstartsDjangoPostgresqlPersistentJson,
	"examples/quickstarts/django-postgresql.json": examplesQuickstartsDjangoPostgresqlJson,
	"examples/quickstarts/dotnet-pgsql-persistent.json": examplesQuickstartsDotnetPgsqlPersistentJson,
	"examples/quickstarts/dotnet.json": examplesQuickstartsDotnetJson,
	"examples/quickstarts/httpd.json": examplesQuickstartsHttpdJson,
	"examples/quickstarts/nginx.json": examplesQuickstartsNginxJson,
	"examples/quickstarts/nodejs-mongodb-persistent.json": examplesQuickstartsNodejsMongodbPersistentJson,
	"examples/quickstarts/nodejs-mongodb.json": examplesQuickstartsNodejsMongodbJson,
	"examples/quickstarts/rails-postgresql-persistent.json": examplesQuickstartsRailsPostgresqlPersistentJson,
	"examples/quickstarts/rails-postgresql.json": examplesQuickstartsRailsPostgresqlJson,
	"examples/prometheus/prometheus.yaml": examplesPrometheusPrometheusYaml,
	"examples/hello-openshift/Dockerfile": examplesHelloOpenshiftDockerfile,
	"examples/hello-openshift/hello-pod.json": examplesHelloOpenshiftHelloPodJson,
	"examples/hello-openshift/hello-project.json": examplesHelloOpenshiftHelloProjectJson,
	"examples/jenkins/application-template.json": examplesJenkinsApplicationTemplateJson,
	"examples/jenkins/jenkins-ephemeral-template.json": examplesJenkinsJenkinsEphemeralTemplateJson,
	"examples/jenkins/jenkins-persistent-template.json": examplesJenkinsJenkinsPersistentTemplateJson,
	"examples/jenkins/pipeline/bluegreen-pipeline.yaml": examplesJenkinsPipelineBluegreenPipelineYaml,
	"examples/jenkins/pipeline/maven-pipeline.yaml": examplesJenkinsPipelineMavenPipelineYaml,
	"examples/jenkins/pipeline/nodejs-sample-pipeline.yaml": examplesJenkinsPipelineNodejsSamplePipelineYaml,
	"examples/jenkins/pipeline/openshift-client-plugin-pipeline.yaml": examplesJenkinsPipelineOpenshiftClientPluginPipelineYaml,
	"examples/jenkins/pipeline/samplepipeline.yaml": examplesJenkinsPipelineSamplepipelineYaml,
	"examples/quickstarts/cakephp-mysql.json/cakephp-mysql.json": examplesQuickstartsCakephpMysqlJsonCakephpMysqlJson,
	"install/etcd/etcd.yaml": installEtcdEtcdYaml,
}

// AssetDir returns the file names below a certain
// directory embedded in the file by go-bindata.
// For example if you run go-bindata on data/... and data contains the
// following hierarchy:
//     data/
//       foo.txt
//       img/
//         a.png
//         b.png
// then AssetDir("data") would return []string{"foo.txt", "img"}
// AssetDir("data/img") would return []string{"a.png", "b.png"}
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
// AssetDir("") will return []string{"data"}.
func AssetDir(name string) ([]string, error) {
	node := _bintree
	if len(name) != 0 {
		cannonicalName := strings.Replace(name, "\\", "/", -1)
		pathList := strings.Split(cannonicalName, "/")
		for _, p := range pathList {
			node = node.Children[p]
			if node == nil {
				return nil, fmt.Errorf("Asset %s not found", name)
			}
		}
	}
	if node.Func != nil {
		return nil, fmt.Errorf("Asset %s not found", name)
	}
	rv := make([]string, 0, len(node.Children))
	for childName := range node.Children {
		rv = append(rv, childName)
	}
	return rv, nil
}

type bintree struct {
	Func     func() (*asset, error)
	Children map[string]*bintree
}
var _bintree = &bintree{nil, map[string]*bintree{
	"examples": &bintree{nil, map[string]*bintree{
		"db-templates": &bintree{nil, map[string]*bintree{
			"mariadb-ephemeral-template.json": &bintree{examplesDbTemplatesMariadbEphemeralTemplateJson, map[string]*bintree{}},
			"mariadb-persistent-template.json": &bintree{examplesDbTemplatesMariadbPersistentTemplateJson, map[string]*bintree{}},
			"mongodb-ephemeral-template.json": &bintree{examplesDbTemplatesMongodbEphemeralTemplateJson, map[string]*bintree{}},
			"mongodb-persistent-template.json": &bintree{examplesDbTemplatesMongodbPersistentTemplateJson, map[string]*bintree{}},
			"mysql-ephemeral-template.json": &bintree{examplesDbTemplatesMysqlEphemeralTemplateJson, map[string]*bintree{}},
			"mysql-persistent-template.json": &bintree{examplesDbTemplatesMysqlPersistentTemplateJson, map[string]*bintree{}},
			"postgresql-ephemeral-template.json": &bintree{examplesDbTemplatesPostgresqlEphemeralTemplateJson, map[string]*bintree{}},
			"postgresql-persistent-template.json": &bintree{examplesDbTemplatesPostgresqlPersistentTemplateJson, map[string]*bintree{}},
			"redis-ephemeral-template.json": &bintree{examplesDbTemplatesRedisEphemeralTemplateJson, map[string]*bintree{}},
			"redis-persistent-template.json": &bintree{examplesDbTemplatesRedisPersistentTemplateJson, map[string]*bintree{}},
		}},
		"hello-openshift": &bintree{nil, map[string]*bintree{
			"Dockerfile": &bintree{examplesHelloOpenshiftDockerfile, map[string]*bintree{}},
			"hello-pod.json": &bintree{examplesHelloOpenshiftHelloPodJson, map[string]*bintree{}},
			"hello-project.json": &bintree{examplesHelloOpenshiftHelloProjectJson, map[string]*bintree{}},
		}},
		"image-streams": &bintree{nil, map[string]*bintree{
			"image-streams-centos7.json": &bintree{examplesImageStreamsImageStreamsCentos7Json, map[string]*bintree{}},
			"image-streams-rhel7.json": &bintree{examplesImageStreamsImageStreamsRhel7Json, map[string]*bintree{}},
		}},
		"jenkins": &bintree{nil, map[string]*bintree{
			"application-template.json": &bintree{examplesJenkinsApplicationTemplateJson, map[string]*bintree{}},
			"jenkins-ephemeral-template.json": &bintree{examplesJenkinsJenkinsEphemeralTemplateJson, map[string]*bintree{}},
			"jenkins-persistent-template.json": &bintree{examplesJenkinsJenkinsPersistentTemplateJson, map[string]*bintree{}},
			"pipeline": &bintree{nil, map[string]*bintree{
				"bluegreen-pipeline.yaml": &bintree{examplesJenkinsPipelineBluegreenPipelineYaml, map[string]*bintree{}},
				"maven-pipeline.yaml": &bintree{examplesJenkinsPipelineMavenPipelineYaml, map[string]*bintree{}},
				"nodejs-sample-pipeline.yaml": &bintree{examplesJenkinsPipelineNodejsSamplePipelineYaml, map[string]*bintree{}},
				"openshift-client-plugin-pipeline.yaml": &bintree{examplesJenkinsPipelineOpenshiftClientPluginPipelineYaml, map[string]*bintree{}},
				"samplepipeline.yaml": &bintree{examplesJenkinsPipelineSamplepipelineYaml, map[string]*bintree{}},
			}},
		}},
		"prometheus": &bintree{nil, map[string]*bintree{
			"prometheus.yaml": &bintree{examplesPrometheusPrometheusYaml, map[string]*bintree{}},
		}},
		"quickstarts": &bintree{nil, map[string]*bintree{
			"cakephp-mysql-persistent.json": &bintree{examplesQuickstartsCakephpMysqlPersistentJson, map[string]*bintree{}},
			"cakephp-mysql.json": &bintree{examplesQuickstartsCakephpMysqlJson, map[string]*bintree{
				"cakephp-mysql.json": &bintree{examplesQuickstartsCakephpMysqlJsonCakephpMysqlJson, map[string]*bintree{}},
			}},
			"dancer-mysql-persistent.json": &bintree{examplesQuickstartsDancerMysqlPersistentJson, map[string]*bintree{}},
			"dancer-mysql.json": &bintree{examplesQuickstartsDancerMysqlJson, map[string]*bintree{}},
			"django-postgresql-persistent.json": &bintree{examplesQuickstartsDjangoPostgresqlPersistentJson, map[string]*bintree{}},
			"django-postgresql.json": &bintree{examplesQuickstartsDjangoPostgresqlJson, map[string]*bintree{}},
			"dotnet-pgsql-persistent.json": &bintree{examplesQuickstartsDotnetPgsqlPersistentJson, map[string]*bintree{}},
			"dotnet.json": &bintree{examplesQuickstartsDotnetJson, map[string]*bintree{}},
			"httpd.json": &bintree{examplesQuickstartsHttpdJson, map[string]*bintree{}},
			"nginx.json": &bintree{examplesQuickstartsNginxJson, map[string]*bintree{}},
			"nodejs-mongodb-persistent.json": &bintree{examplesQuickstartsNodejsMongodbPersistentJson, map[string]*bintree{}},
			"nodejs-mongodb.json": &bintree{examplesQuickstartsNodejsMongodbJson, map[string]*bintree{}},
			"rails-postgresql-persistent.json": &bintree{examplesQuickstartsRailsPostgresqlPersistentJson, map[string]*bintree{}},
			"rails-postgresql.json": &bintree{examplesQuickstartsRailsPostgresqlJson, map[string]*bintree{}},
		}},
		"sample-app": &bintree{nil, map[string]*bintree{
			"application-template-dockerbuild.json": &bintree{examplesSampleAppApplicationTemplateDockerbuildJson, map[string]*bintree{}},
			"application-template-pullspecbuild.json": &bintree{examplesSampleAppApplicationTemplatePullspecbuildJson, map[string]*bintree{}},
			"application-template-stibuild.json": &bintree{examplesSampleAppApplicationTemplateStibuildJson, map[string]*bintree{}},
			"cleanup.sh": &bintree{examplesSampleAppCleanupSh, map[string]*bintree{}},
			"github-webhook-example.json": &bintree{examplesSampleAppGithubWebhookExampleJson, map[string]*bintree{}},
		}},
	}},
	"install": &bintree{nil, map[string]*bintree{
		"etcd": &bintree{nil, map[string]*bintree{
			"etcd.yaml": &bintree{installEtcdEtcdYaml, map[string]*bintree{}},
		}},
	}},
	"test": &bintree{nil, map[string]*bintree{
		"extended": &bintree{nil, map[string]*bintree{
			"testdata": &bintree{nil, map[string]*bintree{
				"aggregator": &bintree{nil, map[string]*bintree{
					"kube-system-auth-reader.yaml": &bintree{testExtendedTestdataAggregatorKubeSystemAuthReaderYaml, map[string]*bintree{}},
					"sample-apiserver-apiservice.yaml": &bintree{testExtendedTestdataAggregatorSampleApiserverApiserviceYaml, map[string]*bintree{}},
					"sample-apiserver-authdelegator.yaml": &bintree{testExtendedTestdataAggregatorSampleApiserverAuthdelegatorYaml, map[string]*bintree{}},
					"sample-apiserver-authreader.yaml": &bintree{testExtendedTestdataAggregatorSampleApiserverAuthreaderYaml, map[string]*bintree{}},
					"sample-apiserver-rc.yaml": &bintree{testExtendedTestdataAggregatorSampleApiserverRcYaml, map[string]*bintree{}},
					"sample-apiserver-sa.yaml": &bintree{testExtendedTestdataAggregatorSampleApiserverSaYaml, map[string]*bintree{}},
					"sample-apiserver-service.yaml": &bintree{testExtendedTestdataAggregatorSampleApiserverServiceYaml, map[string]*bintree{}},
				}},
				"builds": &bintree{nil, map[string]*bintree{
					"application-template-custombuild.json": &bintree{testExtendedTestdataBuildsApplicationTemplateCustombuildJson, map[string]*bintree{}},
					"build-postcommit": &bintree{nil, map[string]*bintree{
						"docker.yaml": &bintree{testExtendedTestdataBuildsBuildPostcommitDockerYaml, map[string]*bintree{}},
						"imagestreams.yaml": &bintree{testExtendedTestdataBuildsBuildPostcommitImagestreamsYaml, map[string]*bintree{}},
						"sti.yaml": &bintree{testExtendedTestdataBuildsBuildPostcommitStiYaml, map[string]*bintree{}},
					}},
					"build-pruning": &bintree{nil, map[string]*bintree{
						"default-group-build-config.yaml": &bintree{testExtendedTestdataBuildsBuildPruningDefaultGroupBuildConfigYaml, map[string]*bintree{}},
						"default-legacy-build-config.yaml": &bintree{testExtendedTestdataBuildsBuildPruningDefaultLegacyBuildConfigYaml, map[string]*bintree{}},
						"errored-build-config.yaml": &bintree{testExtendedTestdataBuildsBuildPruningErroredBuildConfigYaml, map[string]*bintree{}},
						"failed-build-config.yaml": &bintree{testExtendedTestdataBuildsBuildPruningFailedBuildConfigYaml, map[string]*bintree{}},
						"failed-pipeline.yaml": &bintree{testExtendedTestdataBuildsBuildPruningFailedPipelineYaml, map[string]*bintree{}},
						"imagestream.yaml": &bintree{testExtendedTestdataBuildsBuildPruningImagestreamYaml, map[string]*bintree{}},
						"successful-build-config.yaml": &bintree{testExtendedTestdataBuildsBuildPruningSuccessfulBuildConfigYaml, map[string]*bintree{}},
						"successful-pipeline.yaml": &bintree{testExtendedTestdataBuildsBuildPruningSuccessfulPipelineYaml, map[string]*bintree{}},
					}},
					"build-quota": &bintree{nil, map[string]*bintree{
						".s2i": &bintree{nil, map[string]*bintree{
							"bin": &bintree{nil, map[string]*bintree{
								"assemble": &bintree{testExtendedTestdataBuildsBuildQuotaS2iBinAssemble, map[string]*bintree{}},
							}},
						}},
						"Dockerfile": &bintree{testExtendedTestdataBuildsBuildQuotaDockerfile, map[string]*bintree{}},
					}},
					"build-secrets": &bintree{nil, map[string]*bintree{
						"Dockerfile": &bintree{testExtendedTestdataBuildsBuildSecretsDockerfile, map[string]*bintree{}},
						"s2i-binary-dir": &bintree{nil, map[string]*bintree{
							".s2i": &bintree{nil, map[string]*bintree{
								"bin": &bintree{nil, map[string]*bintree{
									"assemble": &bintree{testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinAssemble, map[string]*bintree{}},
									"run": &bintree{testExtendedTestdataBuildsBuildSecretsS2iBinaryDirS2iBinRun, map[string]*bintree{}},
								}},
							}},
							"Gemfile": &bintree{testExtendedTestdataBuildsBuildSecretsS2iBinaryDirGemfile, map[string]*bintree{}},
							"config.ru": &bintree{testExtendedTestdataBuildsBuildSecretsS2iBinaryDirConfigRu, map[string]*bintree{}},
						}},
						"test-configmap-2.json": &bintree{testExtendedTestdataBuildsBuildSecretsTestConfigmap2Json, map[string]*bintree{}},
						"test-configmap.json": &bintree{testExtendedTestdataBuildsBuildSecretsTestConfigmapJson, map[string]*bintree{}},
						"test-docker-build.json": &bintree{testExtendedTestdataBuildsBuildSecretsTestDockerBuildJson, map[string]*bintree{}},
						"test-is.json": &bintree{testExtendedTestdataBuildsBuildSecretsTestIsJson, map[string]*bintree{}},
						"test-s2i-build.json": &bintree{testExtendedTestdataBuildsBuildSecretsTestS2iBuildJson, map[string]*bintree{}},
						"test-secret-2.json": &bintree{testExtendedTestdataBuildsBuildSecretsTestSecret2Json, map[string]*bintree{}},
						"test-secret.json": &bintree{testExtendedTestdataBuildsBuildSecretsTestSecretJson, map[string]*bintree{}},
					}},
					"build-timing": &bintree{nil, map[string]*bintree{
						"Dockerfile": &bintree{testExtendedTestdataBuildsBuildTimingDockerfile, map[string]*bintree{}},
						"s2i-binary-dir": &bintree{nil, map[string]*bintree{
							".s2i": &bintree{nil, map[string]*bintree{
								"bin": &bintree{nil, map[string]*bintree{
									"assemble": &bintree{testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinAssemble, map[string]*bintree{}},
									"run": &bintree{testExtendedTestdataBuildsBuildTimingS2iBinaryDirS2iBinRun, map[string]*bintree{}},
								}},
							}},
							"Gemfile": &bintree{testExtendedTestdataBuildsBuildTimingS2iBinaryDirGemfile, map[string]*bintree{}},
							"config.ru": &bintree{testExtendedTestdataBuildsBuildTimingS2iBinaryDirConfigRu, map[string]*bintree{}},
						}},
						"test-docker-build.json": &bintree{testExtendedTestdataBuildsBuildTimingTestDockerBuildJson, map[string]*bintree{}},
						"test-is.json": &bintree{testExtendedTestdataBuildsBuildTimingTestIsJson, map[string]*bintree{}},
						"test-s2i-build.json": &bintree{testExtendedTestdataBuildsBuildTimingTestS2iBuildJson, map[string]*bintree{}},
					}},
					"cluster-config": &bintree{nil, map[string]*bintree{
						"registry-blacklist.yaml": &bintree{testExtendedTestdataBuildsClusterConfigRegistryBlacklistYaml, map[string]*bintree{}},
						"registry-whitelist.yaml": &bintree{testExtendedTestdataBuildsClusterConfigRegistryWhitelistYaml, map[string]*bintree{}},
					}},
					"cluster-config.yaml": &bintree{testExtendedTestdataBuildsClusterConfigYaml, map[string]*bintree{}},
					"gradle-pipeline.yaml": &bintree{testExtendedTestdataBuildsGradlePipelineYaml, map[string]*bintree{}},
					"incremental-auth-build.json": &bintree{testExtendedTestdataBuildsIncrementalAuthBuildJson, map[string]*bintree{}},
					"s2i-environment-build-app": &bintree{nil, map[string]*bintree{
						".s2i": &bintree{nil, map[string]*bintree{
							"environment": &bintree{testExtendedTestdataBuildsS2iEnvironmentBuildAppS2iEnvironment, map[string]*bintree{}},
						}},
						"Gemfile": &bintree{testExtendedTestdataBuildsS2iEnvironmentBuildAppGemfile, map[string]*bintree{}},
						"config.ru": &bintree{testExtendedTestdataBuildsS2iEnvironmentBuildAppConfigRu, map[string]*bintree{}},
					}},
					"statusfail-assemble": &bintree{nil, map[string]*bintree{
						".s2i": &bintree{nil, map[string]*bintree{
							"bin": &bintree{nil, map[string]*bintree{
								"assemble": &bintree{testExtendedTestdataBuildsStatusfailAssembleS2iBinAssemble, map[string]*bintree{}},
							}},
						}},
					}},
					"statusfail-badcontextdirs2i.yaml": &bintree{testExtendedTestdataBuildsStatusfailBadcontextdirs2iYaml, map[string]*bintree{}},
					"statusfail-failedassemble.yaml": &bintree{testExtendedTestdataBuildsStatusfailFailedassembleYaml, map[string]*bintree{}},
					"statusfail-fetchbuilderimage.yaml": &bintree{testExtendedTestdataBuildsStatusfailFetchbuilderimageYaml, map[string]*bintree{}},
					"statusfail-fetchsourcedocker.yaml": &bintree{testExtendedTestdataBuildsStatusfailFetchsourcedockerYaml, map[string]*bintree{}},
					"statusfail-fetchsources2i.yaml": &bintree{testExtendedTestdataBuildsStatusfailFetchsources2iYaml, map[string]*bintree{}},
					"statusfail-genericreason.yaml": &bintree{testExtendedTestdataBuildsStatusfailGenericreasonYaml, map[string]*bintree{}},
					"statusfail-oomkilled.yaml": &bintree{testExtendedTestdataBuildsStatusfailOomkilledYaml, map[string]*bintree{}},
					"statusfail-postcommithook.yaml": &bintree{testExtendedTestdataBuildsStatusfailPostcommithookYaml, map[string]*bintree{}},
					"statusfail-pushtoregistry.yaml": &bintree{testExtendedTestdataBuildsStatusfailPushtoregistryYaml, map[string]*bintree{}},
					"test-auth-build.yaml": &bintree{testExtendedTestdataBuildsTestAuthBuildYaml, map[string]*bintree{}},
					"test-bc-with-pr-ref.yaml": &bintree{testExtendedTestdataBuildsTestBcWithPrRefYaml, map[string]*bintree{}},
					"test-build-app": &bintree{nil, map[string]*bintree{
						"Dockerfile": &bintree{testExtendedTestdataBuildsTestBuildAppDockerfile, map[string]*bintree{}},
						"Gemfile": &bintree{testExtendedTestdataBuildsTestBuildAppGemfile, map[string]*bintree{}},
						"config.ru": &bintree{testExtendedTestdataBuildsTestBuildAppConfigRu, map[string]*bintree{}},
					}},
					"test-build-podsvc.json": &bintree{testExtendedTestdataBuildsTestBuildPodsvcJson, map[string]*bintree{}},
					"test-build-proxy.yaml": &bintree{testExtendedTestdataBuildsTestBuildProxyYaml, map[string]*bintree{}},
					"test-build-revision.json": &bintree{testExtendedTestdataBuildsTestBuildRevisionJson, map[string]*bintree{}},
					"test-build.yaml": &bintree{testExtendedTestdataBuildsTestBuildYaml, map[string]*bintree{}},
					"test-buildconfigsecretinjector.yaml": &bintree{testExtendedTestdataBuildsTestBuildconfigsecretinjectorYaml, map[string]*bintree{}},
					"test-cds-dockerbuild.json": &bintree{testExtendedTestdataBuildsTestCdsDockerbuildJson, map[string]*bintree{}},
					"test-cds-sourcebuild.json": &bintree{testExtendedTestdataBuildsTestCdsSourcebuildJson, map[string]*bintree{}},
					"test-context-build.json": &bintree{testExtendedTestdataBuildsTestContextBuildJson, map[string]*bintree{}},
					"test-docker-app": &bintree{nil, map[string]*bintree{
						"Dockerfile": &bintree{testExtendedTestdataBuildsTestDockerAppDockerfile, map[string]*bintree{}},
					}},
					"test-docker-build-pullsecret.json": &bintree{testExtendedTestdataBuildsTestDockerBuildPullsecretJson, map[string]*bintree{}},
					"test-docker-build.json": &bintree{testExtendedTestdataBuildsTestDockerBuildJson, map[string]*bintree{}},
					"test-docker-no-outputname.json": &bintree{testExtendedTestdataBuildsTestDockerNoOutputnameJson, map[string]*bintree{}},
					"test-env-build.json": &bintree{testExtendedTestdataBuildsTestEnvBuildJson, map[string]*bintree{}},
					"test-imagechangetriggers.yaml": &bintree{testExtendedTestdataBuildsTestImagechangetriggersYaml, map[string]*bintree{}},
					"test-imageresolution-custom-build.yaml": &bintree{testExtendedTestdataBuildsTestImageresolutionCustomBuildYaml, map[string]*bintree{}},
					"test-imageresolution-docker-build.yaml": &bintree{testExtendedTestdataBuildsTestImageresolutionDockerBuildYaml, map[string]*bintree{}},
					"test-imageresolution-s2i-build.yaml": &bintree{testExtendedTestdataBuildsTestImageresolutionS2iBuildYaml, map[string]*bintree{}},
					"test-imagesource-buildconfig.yaml": &bintree{testExtendedTestdataBuildsTestImagesourceBuildconfigYaml, map[string]*bintree{}},
					"test-nosrc-build.json": &bintree{testExtendedTestdataBuildsTestNosrcBuildJson, map[string]*bintree{}},
					"test-s2i-build-quota.json": &bintree{testExtendedTestdataBuildsTestS2iBuildQuotaJson, map[string]*bintree{}},
					"test-s2i-build.json": &bintree{testExtendedTestdataBuildsTestS2iBuildJson, map[string]*bintree{}},
					"test-s2i-no-outputname.json": &bintree{testExtendedTestdataBuildsTestS2iNoOutputnameJson, map[string]*bintree{}},
					"test-symlink-build.yaml": &bintree{testExtendedTestdataBuildsTestSymlinkBuildYaml, map[string]*bintree{}},
					"valuefrom": &bintree{nil, map[string]*bintree{
						"failed-docker-build-value-from-config.yaml": &bintree{testExtendedTestdataBuildsValuefromFailedDockerBuildValueFromConfigYaml, map[string]*bintree{}},
						"failed-sti-build-value-from-config.yaml": &bintree{testExtendedTestdataBuildsValuefromFailedStiBuildValueFromConfigYaml, map[string]*bintree{}},
						"successful-docker-build-value-from-config.yaml": &bintree{testExtendedTestdataBuildsValuefromSuccessfulDockerBuildValueFromConfigYaml, map[string]*bintree{}},
						"successful-sti-build-value-from-config.yaml": &bintree{testExtendedTestdataBuildsValuefromSuccessfulStiBuildValueFromConfigYaml, map[string]*bintree{}},
						"test-configmap.yaml": &bintree{testExtendedTestdataBuildsValuefromTestConfigmapYaml, map[string]*bintree{}},
						"test-is.json": &bintree{testExtendedTestdataBuildsValuefromTestIsJson, map[string]*bintree{}},
						"test-secret.yaml": &bintree{testExtendedTestdataBuildsValuefromTestSecretYaml, map[string]*bintree{}},
					}},
				}},
				"cluster": &bintree{nil, map[string]*bintree{
					"master-vert.yaml": &bintree{testExtendedTestdataClusterMasterVertYaml, map[string]*bintree{}},
				}},
				"config-map-jenkins-slave-pods.yaml": &bintree{testExtendedTestdataConfigMapJenkinsSlavePodsYaml, map[string]*bintree{}},
				"custom-secret-builder": &bintree{nil, map[string]*bintree{
					"Dockerfile": &bintree{testExtendedTestdataCustomSecretBuilderDockerfile, map[string]*bintree{}},
					"build.sh": &bintree{testExtendedTestdataCustomSecretBuilderBuildSh, map[string]*bintree{}},
				}},
				"deployments": &bintree{nil, map[string]*bintree{
					"custom-deployment.yaml": &bintree{testExtendedTestdataDeploymentsCustomDeploymentYaml, map[string]*bintree{}},
					"deployment-example.yaml": &bintree{testExtendedTestdataDeploymentsDeploymentExampleYaml, map[string]*bintree{}},
					"deployment-history-limit.yaml": &bintree{testExtendedTestdataDeploymentsDeploymentHistoryLimitYaml, map[string]*bintree{}},
					"deployment-ignores-deployer.yaml": &bintree{testExtendedTestdataDeploymentsDeploymentIgnoresDeployerYaml, map[string]*bintree{}},
					"deployment-image-resolution-is.yaml": &bintree{testExtendedTestdataDeploymentsDeploymentImageResolutionIsYaml, map[string]*bintree{}},
					"deployment-image-resolution.yaml": &bintree{testExtendedTestdataDeploymentsDeploymentImageResolutionYaml, map[string]*bintree{}},
					"deployment-min-ready-seconds.yaml": &bintree{testExtendedTestdataDeploymentsDeploymentMinReadySecondsYaml, map[string]*bintree{}},
					"deployment-simple.yaml": &bintree{testExtendedTestdataDeploymentsDeploymentSimpleYaml, map[string]*bintree{}},
					"deployment-trigger.yaml": &bintree{testExtendedTestdataDeploymentsDeploymentTriggerYaml, map[string]*bintree{}},
					"deployment-with-ref-env.yaml": &bintree{testExtendedTestdataDeploymentsDeploymentWithRefEnvYaml, map[string]*bintree{}},
					"failing-pre-hook.yaml": &bintree{testExtendedTestdataDeploymentsFailingPreHookYaml, map[string]*bintree{}},
					"generation-test.yaml": &bintree{testExtendedTestdataDeploymentsGenerationTestYaml, map[string]*bintree{}},
					"multi-ict-deployment.yaml": &bintree{testExtendedTestdataDeploymentsMultiIctDeploymentYaml, map[string]*bintree{}},
					"paused-deployment.yaml": &bintree{testExtendedTestdataDeploymentsPausedDeploymentYaml, map[string]*bintree{}},
					"readiness-test.yaml": &bintree{testExtendedTestdataDeploymentsReadinessTestYaml, map[string]*bintree{}},
					"tag-images-deployment.yaml": &bintree{testExtendedTestdataDeploymentsTagImagesDeploymentYaml, map[string]*bintree{}},
					"test-deployment-broken.yaml": &bintree{testExtendedTestdataDeploymentsTestDeploymentBrokenYaml, map[string]*bintree{}},
					"test-deployment-test.yaml": &bintree{testExtendedTestdataDeploymentsTestDeploymentTestYaml, map[string]*bintree{}},
				}},
				"forcepull-test.json": &bintree{testExtendedTestdataForcepullTestJson, map[string]*bintree{}},
				"gssapi": &bintree{nil, map[string]*bintree{
					"config": &bintree{nil, map[string]*bintree{
						"kubeconfig": &bintree{testExtendedTestdataGssapiConfigKubeconfig, map[string]*bintree{}},
						"oauth_config.json": &bintree{testExtendedTestdataGssapiConfigOauth_configJson, map[string]*bintree{}},
					}},
					"fedora": &bintree{nil, map[string]*bintree{
						"base": &bintree{nil, map[string]*bintree{
							"Dockerfile": &bintree{testExtendedTestdataGssapiFedoraBaseDockerfile, map[string]*bintree{}},
						}},
						"kerberos": &bintree{nil, map[string]*bintree{
							"Dockerfile": &bintree{testExtendedTestdataGssapiFedoraKerberosDockerfile, map[string]*bintree{}},
						}},
						"kerberos_configured": &bintree{nil, map[string]*bintree{
							"Dockerfile": &bintree{testExtendedTestdataGssapiFedoraKerberos_configuredDockerfile, map[string]*bintree{}},
						}},
					}},
					"proxy": &bintree{nil, map[string]*bintree{
						"Dockerfile": &bintree{testExtendedTestdataGssapiProxyDockerfile, map[string]*bintree{}},
						"configure.sh": &bintree{testExtendedTestdataGssapiProxyConfigureSh, map[string]*bintree{}},
						"gssapiproxy-buildconfig.yaml": &bintree{testExtendedTestdataGssapiProxyGssapiproxyBuildconfigYaml, map[string]*bintree{}},
						"gssapiproxy-deploymentconfig.yaml": &bintree{testExtendedTestdataGssapiProxyGssapiproxyDeploymentconfigYaml, map[string]*bintree{}},
						"gssapiproxy-imagestream.yaml": &bintree{testExtendedTestdataGssapiProxyGssapiproxyImagestreamYaml, map[string]*bintree{}},
						"gssapiproxy-service.yaml": &bintree{testExtendedTestdataGssapiProxyGssapiproxyServiceYaml, map[string]*bintree{}},
						"healthz": &bintree{testExtendedTestdataGssapiProxyHealthz, map[string]*bintree{}},
						"kadm5.acl": &bintree{testExtendedTestdataGssapiProxyKadm5Acl, map[string]*bintree{}},
						"kdc.conf": &bintree{testExtendedTestdataGssapiProxyKdcConf, map[string]*bintree{}},
						"krb5.conf": &bintree{testExtendedTestdataGssapiProxyKrb5Conf, map[string]*bintree{}},
						"proxy.conf": &bintree{testExtendedTestdataGssapiProxyProxyConf, map[string]*bintree{}},
					}},
					"scripts": &bintree{nil, map[string]*bintree{
						"gssapi-tests.sh": &bintree{testExtendedTestdataGssapiScriptsGssapiTestsSh, map[string]*bintree{}},
						"test-wrapper.sh": &bintree{testExtendedTestdataGssapiScriptsTestWrapperSh, map[string]*bintree{}},
					}},
					"ubuntu": &bintree{nil, map[string]*bintree{
						"base": &bintree{nil, map[string]*bintree{
							"Dockerfile": &bintree{testExtendedTestdataGssapiUbuntuBaseDockerfile, map[string]*bintree{}},
						}},
						"kerberos": &bintree{nil, map[string]*bintree{
							"Dockerfile": &bintree{testExtendedTestdataGssapiUbuntuKerberosDockerfile, map[string]*bintree{}},
						}},
						"kerberos_configured": &bintree{nil, map[string]*bintree{
							"Dockerfile": &bintree{testExtendedTestdataGssapiUbuntuKerberos_configuredDockerfile, map[string]*bintree{}},
						}},
					}},
				}},
				"hello-builder": &bintree{nil, map[string]*bintree{
					"Dockerfile": &bintree{testExtendedTestdataHelloBuilderDockerfile, map[string]*bintree{}},
					"scripts": &bintree{nil, map[string]*bintree{
						"assemble": &bintree{testExtendedTestdataHelloBuilderScriptsAssemble, map[string]*bintree{}},
						"run": &bintree{testExtendedTestdataHelloBuilderScriptsRun, map[string]*bintree{}},
					}},
				}},
				"idling-echo-server-rc.yaml": &bintree{testExtendedTestdataIdlingEchoServerRcYaml, map[string]*bintree{}},
				"idling-echo-server.yaml": &bintree{testExtendedTestdataIdlingEchoServerYaml, map[string]*bintree{}},
				"image": &bintree{nil, map[string]*bintree{
					"deployment-with-annotation-trigger.yaml": &bintree{testExtendedTestdataImageDeploymentWithAnnotationTriggerYaml, map[string]*bintree{}},
				}},
				"image-pull-secrets": &bintree{nil, map[string]*bintree{
					"dc-with-new-pull-secret.yaml": &bintree{testExtendedTestdataImagePullSecretsDcWithNewPullSecretYaml, map[string]*bintree{}},
					"dc-with-old-pull-secret.yaml": &bintree{testExtendedTestdataImagePullSecretsDcWithOldPullSecretYaml, map[string]*bintree{}},
					"pod-with-new-pull-secret.yaml": &bintree{testExtendedTestdataImagePullSecretsPodWithNewPullSecretYaml, map[string]*bintree{}},
					"pod-with-no-pull-secret.yaml": &bintree{testExtendedTestdataImagePullSecretsPodWithNoPullSecretYaml, map[string]*bintree{}},
					"pod-with-old-pull-secret.yaml": &bintree{testExtendedTestdataImagePullSecretsPodWithOldPullSecretYaml, map[string]*bintree{}},
				}},
				"image_ecosystem": &bintree{nil, map[string]*bintree{
					"perl-hotdeploy": &bintree{nil, map[string]*bintree{
						"index.pl": &bintree{testExtendedTestdataImage_ecosystemPerlHotdeployIndexPl, map[string]*bintree{}},
						"lib": &bintree{nil, map[string]*bintree{
							"My": &bintree{nil, map[string]*bintree{
								"Test.pm": &bintree{testExtendedTestdataImage_ecosystemPerlHotdeployLibMyTestPm, map[string]*bintree{}},
							}},
						}},
						"perl.json": &bintree{testExtendedTestdataImage_ecosystemPerlHotdeployPerlJson, map[string]*bintree{}},
					}},
				}},
				"imagestream-jenkins-slave-pods.yaml": &bintree{testExtendedTestdataImagestreamJenkinsSlavePodsYaml, map[string]*bintree{}},
				"imagestreamtag-jenkins-slave-pods.yaml": &bintree{testExtendedTestdataImagestreamtagJenkinsSlavePodsYaml, map[string]*bintree{}},
				"ingress.yaml": &bintree{testExtendedTestdataIngressYaml, map[string]*bintree{}},
				"jenkins-plugin": &bintree{nil, map[string]*bintree{
					"build-job-clone.xml": &bintree{testExtendedTestdataJenkinsPluginBuildJobCloneXml, map[string]*bintree{}},
					"build-job-slave.xml": &bintree{testExtendedTestdataJenkinsPluginBuildJobSlaveXml, map[string]*bintree{}},
					"build-job.xml": &bintree{testExtendedTestdataJenkinsPluginBuildJobXml, map[string]*bintree{}},
					"build-with-env-job.xml": &bintree{testExtendedTestdataJenkinsPluginBuildWithEnvJobXml, map[string]*bintree{}},
					"build-with-exec-steps.xml": &bintree{testExtendedTestdataJenkinsPluginBuildWithExecStepsXml, map[string]*bintree{}},
					"create-job.xml": &bintree{testExtendedTestdataJenkinsPluginCreateJobXml, map[string]*bintree{}},
					"delete-job-keys.xml": &bintree{testExtendedTestdataJenkinsPluginDeleteJobKeysXml, map[string]*bintree{}},
					"delete-job-labels.xml": &bintree{testExtendedTestdataJenkinsPluginDeleteJobLabelsXml, map[string]*bintree{}},
					"delete-job.xml": &bintree{testExtendedTestdataJenkinsPluginDeleteJobXml, map[string]*bintree{}},
					"imagestream-scm-dsl-job.xml": &bintree{testExtendedTestdataJenkinsPluginImagestreamScmDslJobXml, map[string]*bintree{}},
					"imagestream-scm-job.xml": &bintree{testExtendedTestdataJenkinsPluginImagestreamScmJobXml, map[string]*bintree{}},
					"multitag-job.xml": &bintree{testExtendedTestdataJenkinsPluginMultitagJobXml, map[string]*bintree{}},
					"multitag-template.json": &bintree{testExtendedTestdataJenkinsPluginMultitagTemplateJson, map[string]*bintree{}},
					"shared-resources-template.json": &bintree{testExtendedTestdataJenkinsPluginSharedResourcesTemplateJson, map[string]*bintree{}},
				}},
				"jenkins-slave-template.yaml": &bintree{testExtendedTestdataJenkinsSlaveTemplateYaml, map[string]*bintree{}},
				"jobs": &bintree{nil, map[string]*bintree{
					"v1.yaml": &bintree{testExtendedTestdataJobsV1Yaml, map[string]*bintree{}},
				}},
				"ldap": &bintree{nil, map[string]*bintree{
					"ldapserver-buildconfig.json": &bintree{testExtendedTestdataLdapLdapserverBuildconfigJson, map[string]*bintree{}},
					"ldapserver-deploymentconfig.json": &bintree{testExtendedTestdataLdapLdapserverDeploymentconfigJson, map[string]*bintree{}},
					"ldapserver-imagestream-testenv.json": &bintree{testExtendedTestdataLdapLdapserverImagestreamTestenvJson, map[string]*bintree{}},
					"ldapserver-imagestream.json": &bintree{testExtendedTestdataLdapLdapserverImagestreamJson, map[string]*bintree{}},
					"ldapserver-service.json": &bintree{testExtendedTestdataLdapLdapserverServiceJson, map[string]*bintree{}},
				}},
				"long_names": &bintree{nil, map[string]*bintree{
					"Dockerfile": &bintree{testExtendedTestdataLong_namesDockerfile, map[string]*bintree{}},
					"fixture.json": &bintree{testExtendedTestdataLong_namesFixtureJson, map[string]*bintree{}},
				}},
				"multi-namespace-pipeline.yaml": &bintree{testExtendedTestdataMultiNamespacePipelineYaml, map[string]*bintree{}},
				"multi-namespace-template.yaml": &bintree{testExtendedTestdataMultiNamespaceTemplateYaml, map[string]*bintree{}},
				"openshift-secret-to-jenkins-credential.yaml": &bintree{testExtendedTestdataOpenshiftSecretToJenkinsCredentialYaml, map[string]*bintree{}},
				"reencrypt-serving-cert.yaml": &bintree{testExtendedTestdataReencryptServingCertYaml, map[string]*bintree{}},
				"releases": &bintree{nil, map[string]*bintree{
					"payload-1": &bintree{nil, map[string]*bintree{
						"etcd-operator": &bintree{nil, map[string]*bintree{
							"image-references": &bintree{testExtendedTestdataReleasesPayload1EtcdOperatorImageReferences, map[string]*bintree{}},
							"manifest.yaml": &bintree{testExtendedTestdataReleasesPayload1EtcdOperatorManifestYaml, map[string]*bintree{}},
						}},
						"image-registry": &bintree{nil, map[string]*bintree{
							"10_image-registry_crd.yaml": &bintree{testExtendedTestdataReleasesPayload1ImageRegistry10_imageRegistry_crdYaml, map[string]*bintree{}},
							"image-references": &bintree{testExtendedTestdataReleasesPayload1ImageRegistryImageReferences, map[string]*bintree{}},
							"manifest.yaml": &bintree{testExtendedTestdataReleasesPayload1ImageRegistryManifestYaml, map[string]*bintree{}},
						}},
					}},
				}},
				"roles": &bintree{nil, map[string]*bintree{
					"empty-role.yaml": &bintree{testExtendedTestdataRolesEmptyRoleYaml, map[string]*bintree{}},
					"policy-clusterroles.yaml": &bintree{testExtendedTestdataRolesPolicyClusterrolesYaml, map[string]*bintree{}},
					"policy-roles.yaml": &bintree{testExtendedTestdataRolesPolicyRolesYaml, map[string]*bintree{}},
				}},
				"router-common.yaml": &bintree{testExtendedTestdataRouterCommonYaml, map[string]*bintree{}},
				"router-config-manager.yaml": &bintree{testExtendedTestdataRouterConfigManagerYaml, map[string]*bintree{}},
				"router-http-echo-server.yaml": &bintree{testExtendedTestdataRouterHttpEchoServerYaml, map[string]*bintree{}},
				"router-metrics.yaml": &bintree{testExtendedTestdataRouterMetricsYaml, map[string]*bintree{}},
				"router-override-domains.yaml": &bintree{testExtendedTestdataRouterOverrideDomainsYaml, map[string]*bintree{}},
				"router-override.yaml": &bintree{testExtendedTestdataRouterOverrideYaml, map[string]*bintree{}},
				"router-scoped.yaml": &bintree{testExtendedTestdataRouterScopedYaml, map[string]*bintree{}},
				"run_policy": &bintree{nil, map[string]*bintree{
					"parallel-bc.yaml": &bintree{testExtendedTestdataRun_policyParallelBcYaml, map[string]*bintree{}},
					"serial-bc.yaml": &bintree{testExtendedTestdataRun_policySerialBcYaml, map[string]*bintree{}},
					"serial-latest-only-bc.yaml": &bintree{testExtendedTestdataRun_policySerialLatestOnlyBcYaml, map[string]*bintree{}},
				}},
				"s2i-dropcaps": &bintree{nil, map[string]*bintree{
					"root-access-build.yaml": &bintree{testExtendedTestdataS2iDropcapsRootAccessBuildYaml, map[string]*bintree{}},
					"rootable-ruby": &bintree{nil, map[string]*bintree{
						"Dockerfile": &bintree{testExtendedTestdataS2iDropcapsRootableRubyDockerfile, map[string]*bintree{}},
						"adduser": &bintree{testExtendedTestdataS2iDropcapsRootableRubyAdduser, map[string]*bintree{}},
						"assemble": &bintree{testExtendedTestdataS2iDropcapsRootableRubyAssemble, map[string]*bintree{}},
					}},
				}},
				"sample-image-stream.json": &bintree{testExtendedTestdataSampleImageStreamJson, map[string]*bintree{}},
				"samplepipeline-withenvs.yaml": &bintree{testExtendedTestdataSamplepipelineWithenvsYaml, map[string]*bintree{}},
				"service-serving-cert": &bintree{nil, map[string]*bintree{
					"nginx-serving-cert.conf": &bintree{testExtendedTestdataServiceServingCertNginxServingCertConf, map[string]*bintree{}},
				}},
				"signer-buildconfig.yaml": &bintree{testExtendedTestdataSignerBuildconfigYaml, map[string]*bintree{}},
				"templates": &bintree{nil, map[string]*bintree{
					"templateinstance_badobject.yaml": &bintree{testExtendedTestdataTemplatesTemplateinstance_badobjectYaml, map[string]*bintree{}},
					"templateinstance_objectkinds.yaml": &bintree{testExtendedTestdataTemplatesTemplateinstance_objectkindsYaml, map[string]*bintree{}},
					"templateinstance_readiness.yaml": &bintree{testExtendedTestdataTemplatesTemplateinstance_readinessYaml, map[string]*bintree{}},
					"templateservicebroker_bind.yaml": &bintree{testExtendedTestdataTemplatesTemplateservicebroker_bindYaml, map[string]*bintree{}},
				}},
				"test-cli-debug.yaml": &bintree{testExtendedTestdataTestCliDebugYaml, map[string]*bintree{}},
				"test-env-pod.json": &bintree{testExtendedTestdataTestEnvPodJson, map[string]*bintree{}},
				"test-gitserver.yaml": &bintree{testExtendedTestdataTestGitserverYaml, map[string]*bintree{}},
				"test-secret.json": &bintree{testExtendedTestdataTestSecretJson, map[string]*bintree{}},
				"weighted-router.yaml": &bintree{testExtendedTestdataWeightedRouterYaml, map[string]*bintree{}},
			}},
		}},
		"integration": &bintree{nil, map[string]*bintree{
			"testdata": &bintree{nil, map[string]*bintree{
				"project-request-template-with-quota.yaml": &bintree{testIntegrationTestdataProjectRequestTemplateWithQuotaYaml, map[string]*bintree{}},
				"test-buildcli-beta2.json": &bintree{testIntegrationTestdataTestBuildcliBeta2Json, map[string]*bintree{}},
				"test-buildcli.json": &bintree{testIntegrationTestdataTestBuildcliJson, map[string]*bintree{}},
				"test-deployment-config.yaml": &bintree{testIntegrationTestdataTestDeploymentConfigYaml, map[string]*bintree{}},
				"test-egress-network-policy.json": &bintree{testIntegrationTestdataTestEgressNetworkPolicyJson, map[string]*bintree{}},
				"test-image-stream-mapping.json": &bintree{testIntegrationTestdataTestImageStreamMappingJson, map[string]*bintree{}},
				"test-image-stream.json": &bintree{testIntegrationTestdataTestImageStreamJson, map[string]*bintree{}},
				"test-image.json": &bintree{testIntegrationTestdataTestImageJson, map[string]*bintree{}},
				"test-replication-controller.yaml": &bintree{testIntegrationTestdataTestReplicationControllerYaml, map[string]*bintree{}},
				"test-route.json": &bintree{testIntegrationTestdataTestRouteJson, map[string]*bintree{}},
				"test-service-with-finalizer.json": &bintree{testIntegrationTestdataTestServiceWithFinalizerJson, map[string]*bintree{}},
				"test-service.json": &bintree{testIntegrationTestdataTestServiceJson, map[string]*bintree{}},
			}},
		}},
	}},
}}

// RestoreAsset restores an asset under the given directory
func RestoreAsset(dir, name string) error {
	data, err := Asset(name)
	if err != nil {
		return err
	}
	info, err := AssetInfo(name)
	if err != nil {
		return err
	}
	err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
	if err != nil {
		return err
	}
	err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
	if err != nil {
		return err
	}
	err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
	if err != nil {
		return err
	}
	return nil
}

// RestoreAssets restores an asset under the given directory recursively
func RestoreAssets(dir, name string) error {
	children, err := AssetDir(name)
	// File
	if err != nil {
		return RestoreAsset(dir, name)
	}
	// Dir
	for _, child := range children {
		err = RestoreAssets(dir, filepath.Join(name, child))
		if err != nil {
			return err
		}
	}
	return nil
}

func _filePath(dir, name string) string {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
}

