// Code generated by go-bindata. // sources: // examples/image-streams/image-streams-centos7.json // examples/image-streams/image-streams-rhel7.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/jenkins/jenkins-ephemeral-template.json // examples/jenkins/jenkins-persistent-template.json // examples/jenkins/pipeline/bluegreen-pipeline.yaml // examples/jenkins/pipeline/mapsapp-pipeline.yaml // examples/jenkins/pipeline/maven-pipeline.yaml // examples/jenkins/pipeline/samplepipeline.yaml // examples/quickstarts/cakephp-mysql.json // examples/quickstarts/dancer-mysql.json // examples/quickstarts/django-postgresql.json // examples/quickstarts/nodejs-mongodb.json // examples/quickstarts/rails-postgresql.json // examples/logging/logging-deployer.yaml // pkg/image/admission/imagepolicy/api/v1/default-policy.yaml // DO NOT EDIT! package bootstrap import ( "fmt" "strings" "os" "time" "io/ioutil" "path/filepath" ) 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 _examplesImageStreamsImageStreamsCentos7Json = []byte(`{ "kind": "ImageStreamList", "apiVersion": "v1", "metadata": {}, "items": [ { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "ruby", "annotations": { "openshift.io/display-name": "Ruby" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Ruby (Latest)", "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", "tags": "builder,ruby", "supports": "ruby", "sampleRepo": "https://github.com/openshift/ruby-ex.git" }, "from": { "kind": "ImageStreamTag", "name": "2.3" } }, { "name": "2.0", "annotations": { "openshift.io/display-name": "Ruby 2.0", "description": "Build and run Ruby 2.0 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.0/README.md.", "iconClass": "icon-ruby", "tags": "hidden,builder,ruby", "supports": "ruby:2.0,ruby", "version": "2.0", "sampleRepo": "https://github.com/openshift/ruby-ex.git" }, "from": { "kind": "DockerImage", "name": "openshift/ruby-20-centos7:latest" } }, { "name": "2.2", "annotations": { "openshift.io/display-name": "Ruby 2.2", "description": "Build and run Ruby 2.2 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.2/README.md.", "iconClass": "icon-ruby", "tags": "builder,ruby", "supports": "ruby:2.2,ruby", "version": "2.2", "sampleRepo": "https://github.com/openshift/ruby-ex.git" }, "from": { "kind": "DockerImage", "name": "centos/ruby-22-centos7:latest" } }, { "name": "2.3", "annotations": { "openshift.io/display-name": "Ruby 2.3", "description": "Build and run Ruby 2.3 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.3/README.md.", "iconClass": "icon-ruby", "tags": "builder,ruby", "supports": "ruby:2.3,ruby", "version": "2.3", "sampleRepo": "https://github.com/openshift/ruby-ex.git" }, "from": { "kind": "DockerImage", "name": "centos/ruby-23-centos7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "nodejs", "annotations": { "openshift.io/display-name": "Node.js" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Node.js (Latest)", "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/sclorg/s2i-nodejs-container/blob/master/4/README.md.\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", "tags": "builder,nodejs", "supports":"nodejs", "sampleRepo": "https://github.com/openshift/nodejs-ex.git" }, "from": { "kind": "ImageStreamTag", "name": "4" } }, { "name": "0.10", "annotations": { "openshift.io/display-name": "Node.js 0.10", "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", "tags": "hidden,nodejs", "supports":"nodejs:0.10,nodejs:0.1,nodejs", "version": "0.10", "sampleRepo": "https://github.com/openshift/nodejs-ex.git" }, "from": { "kind": "DockerImage", "name": "openshift/nodejs-010-centos7:latest" } }, { "name": "4", "annotations": { "openshift.io/display-name": "Node.js 4", "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", "tags": "builder,nodejs", "supports":"nodejs:4,nodejs", "version": "4", "sampleRepo": "https://github.com/openshift/nodejs-ex.git" }, "from": { "kind": "DockerImage", "name": "centos/nodejs-4-centos7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "perl", "annotations": { "openshift.io/display-name": "Perl" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Perl (Latest)", "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", "tags": "builder,perl", "supports":"perl", "sampleRepo": "https://github.com/openshift/dancer-ex.git" }, "from": { "kind": "ImageStreamTag", "name": "5.24" } }, { "name": "5.16", "annotations": { "openshift.io/display-name": "Perl 5.16", "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", "tags": "hidden,builder,perl", "supports":"perl:5.16,perl", "version": "5.16", "sampleRepo": "https://github.com/openshift/dancer-ex.git" }, "from": { "kind": "DockerImage", "name": "openshift/perl-516-centos7:latest" } }, { "name": "5.20", "annotations": { "openshift.io/display-name": "Perl 5.20", "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", "tags": "builder,perl", "supports":"perl:5.20,perl", "version": "5.20", "sampleRepo": "https://github.com/openshift/dancer-ex.git" }, "from": { "kind": "DockerImage", "name": "centos/perl-520-centos7:latest" } }, { "name": "5.24", "annotations": { "openshift.io/display-name": "Perl 5.24", "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", "tags": "builder,perl", "supports":"perl:5.24,perl", "version": "5.24", "sampleRepo": "https://github.com/openshift/dancer-ex.git" }, "from": { "kind": "DockerImage", "name": "centos/perl-524-centos7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "php", "annotations": { "openshift.io/display-name": "PHP" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "PHP (Latest)", "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/5.6/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", "tags": "builder,php", "supports":"php", "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { "kind": "ImageStreamTag", "name": "7.0" } }, { "name": "5.5", "annotations": { "openshift.io/display-name": "PHP 5.5", "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", "tags": "hidden,builder,php", "supports":"php:5.5,php", "version": "5.5", "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { "kind": "DockerImage", "name": "openshift/php-55-centos7:latest" } }, { "name": "5.6", "annotations": { "openshift.io/display-name": "PHP 5.6", "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", "tags": "builder,php", "supports":"php:5.6,php", "version": "5.6", "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { "kind": "DockerImage", "name": "centos/php-56-centos7:latest" } }, { "name": "7.0", "annotations": { "openshift.io/display-name": "PHP 7.0", "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", "tags": "builder,php", "supports":"php:7.0,php", "version": "7.0", "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { "kind": "DockerImage", "name": "centos/php-70-centos7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "python", "annotations": { "openshift.io/display-name": "Python" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Python (Latest)", "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.5/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", "tags": "builder,python", "supports":"python", "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { "kind": "ImageStreamTag", "name": "3.5" } }, { "name": "3.3", "annotations": { "openshift.io/display-name": "Python 3.3", "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", "tags": "hidden,builder,python", "supports":"python:3.3,python", "version": "3.3", "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { "kind": "DockerImage", "name": "openshift/python-33-centos7:latest" } }, { "name": "2.7", "annotations": { "openshift.io/display-name": "Python 2.7", "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", "tags": "builder,python", "supports":"python:2.7,python", "version": "2.7", "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { "kind": "DockerImage", "name": "centos/python-27-centos7:latest" } }, { "name": "3.4", "annotations": { "openshift.io/display-name": "Python 3.4", "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", "tags": "builder,python", "supports":"python:3.4,python", "version": "3.4", "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { "kind": "DockerImage", "name": "centos/python-34-centos7:latest" } }, { "name": "3.5", "annotations": { "openshift.io/display-name": "Python 3.5", "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", "tags": "builder,python", "supports":"python:3.5,python", "version": "3.5", "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { "kind": "DockerImage", "name": "centos/python-35-centos7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "wildfly", "annotations": { "openshift.io/display-name": "WildFly" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "WildFly (Latest)", "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", "tags": "builder,wildfly,java", "supports":"jee,java", "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" }, "from": { "kind": "ImageStreamTag", "name": "10.1" } }, { "name": "8.1", "annotations": { "openshift.io/display-name": "WildFly 8.1", "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", "tags": "builder,wildfly,java", "supports":"wildfly:8.1,jee,java", "version": "8.1", "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", "name": "openshift/wildfly-81-centos7:latest" } }, { "name": "9.0", "annotations": { "openshift.io/display-name": "WildFly 9.0", "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", "tags": "builder,wildfly,java", "supports":"wildfly:9.0,jee,java", "version": "9.0", "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", "name": "openshift/wildfly-90-centos7:latest" } }, { "name": "10.0", "annotations": { "openshift.io/display-name": "WildFly 10.0", "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", "tags": "builder,wildfly,java", "supports":"wildfly:10.0,jee,java", "version": "10.0", "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", "name": "openshift/wildfly-100-centos7:latest" } }, { "name": "10.1", "annotations": { "openshift.io/display-name": "WildFly 10.1", "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", "tags": "builder,wildfly,java", "supports":"wildfly:10.1,jee,java", "version": "10.1", "sampleRepo": "https://github.com/bparees/openshift-jee-sample.git" }, "from": { "kind": "DockerImage", "name": "openshift/wildfly-101-centos7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "mysql", "annotations": { "openshift.io/display-name": "MySQL" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "MySQL (Latest)", "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/tree/master/5.6/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", "tags": "mysql" }, "from": { "kind": "ImageStreamTag", "name": "5.7" } }, { "name": "5.5", "annotations": { "openshift.io/display-name": "MySQL 5.5", "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/tree/master/5.5/README.md.", "iconClass": "icon-mysql-database", "tags": "hidden,mysql", "version": "5.5" }, "from": { "kind": "DockerImage", "name": "openshift/mysql-55-centos7:latest" } }, { "name": "5.6", "annotations": { "openshift.io/display-name": "MySQL 5.6", "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/tree/master/5.6/README.md.", "iconClass": "icon-mysql-database", "tags": "mysql", "version": "5.6" }, "from": { "kind": "DockerImage", "name": "centos/mysql-56-centos7:latest" } }, { "name": "5.7", "annotations": { "openshift.io/display-name": "MySQL 5.7", "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/tree/master/5.7/README.md.", "iconClass": "icon-mysql-database", "tags": "mysql", "version": "5.7" }, "from": { "kind": "DockerImage", "name": "centos/mysql-57-centos7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "mariadb", "annotations": { "openshift.io/display-name": "MariaDB" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "MariaDB (Latest)", "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.1/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", "tags": "mariadb" }, "from": { "kind": "ImageStreamTag", "name": "10.1" } }, { "name": "10.1", "annotations": { "openshift.io/display-name": "MariaDB 10.1", "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", "tags": "mariadb", "version": "10.1" }, "from": { "kind": "DockerImage", "name": "centos/mariadb-101-centos7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "postgresql", "annotations": { "openshift.io/display-name": "PostgreSQL" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "PostgreSQL (Latest)", "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/tree/master/9.5.\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", "tags": "postgresql" }, "from": { "kind": "ImageStreamTag", "name": "9.5" } }, { "name": "9.2", "annotations": { "openshift.io/display-name": "PostgreSQL 9.2", "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/tree/master/9.2.", "iconClass": "icon-postgresql", "tags": "hidden,postgresql", "version": "9.2" }, "from": { "kind": "DockerImage", "name": "openshift/postgresql-92-centos7:latest" } }, { "name": "9.4", "annotations": { "openshift.io/display-name": "PostgreSQL 9.4", "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/tree/master/9.4.", "iconClass": "icon-postgresql", "tags": "postgresql", "version": "9.4" }, "from": { "kind": "DockerImage", "name": "centos/postgresql-94-centos7:latest" } }, { "name": "9.5", "annotations": { "openshift.io/display-name": "PostgreSQL 9.5", "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/tree/master/9.5.", "iconClass": "icon-postgresql", "tags": "postgresql", "version": "9.5" }, "from": { "kind": "DockerImage", "name": "centos/postgresql-95-centos7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "mongodb", "annotations": { "openshift.io/display-name": "MongoDB" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "MongoDB (Latest)", "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.2/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", "tags": "mongodb" }, "from": { "kind": "ImageStreamTag", "name": "3.2" } }, { "name": "2.4", "annotations": { "openshift.io/display-name": "MongoDB 2.4", "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", "tags": "hidden,mongodb", "version": "2.4" }, "from": { "kind": "DockerImage", "name": "openshift/mongodb-24-centos7:latest" } }, { "name": "2.6", "annotations": { "openshift.io/display-name": "MongoDB 2.6", "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", "tags": "mongodb", "version": "2.6" }, "from": { "kind": "DockerImage", "name": "centos/mongodb-26-centos7:latest" } }, { "name": "3.2", "annotations": { "openshift.io/display-name": "MongoDB 3.2", "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", "tags": "mongodb", "version": "3.2" }, "from": { "kind": "DockerImage", "name": "centos/mongodb-32-centos7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "redis", "annotations": { "openshift.io/display-name": "Redis" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Redis (Latest)", "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", "tags": "redis" }, "from": { "kind": "ImageStreamTag", "name": "3.2" } }, { "name": "3.2", "annotations": { "openshift.io/display-name": "Redis 3.2", "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", "tags": "redis", "version": "3.2" }, "from": { "kind": "DockerImage", "name": "centos/redis-32-centos7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "jenkins", "annotations": { "openshift.io/display-name": "Jenkins" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Jenkins (Latest)", "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", "tags": "jenkins" }, "from": { "kind": "ImageStreamTag", "name": "2" } }, { "name": "1", "annotations": { "openshift.io/display-name": "Jenkins 1.X", "description": "Provides a Jenkins 1.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", "tags": "jenkins", "version": "1.x" }, "from": { "kind": "DockerImage", "name": "openshift/jenkins-1-centos7:latest" } }, { "name": "2", "annotations": { "openshift.io/display-name": "Jenkins 2.X", "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", "tags": "jenkins", "version": "2.x" }, "from": { "kind": "DockerImage", "name": "openshift/jenkins-2-centos7:latest" } } ] } } ] } `) 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", "metadata": {}, "items": [ { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "ruby", "annotations": { "openshift.io/display-name": "Ruby" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Ruby (Latest)", "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", "tags": "builder,ruby", "supports": "ruby", "sampleRepo": "https://github.com/openshift/ruby-ex.git" }, "from": { "kind": "ImageStreamTag", "name": "2.3" } }, { "name": "2.0", "annotations": { "openshift.io/display-name": "Ruby 2.0", "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", "tags": "hidden,builder,ruby", "supports": "ruby:2.0,ruby", "version": "2.0", "sampleRepo": "https://github.com/openshift/ruby-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/openshift3/ruby-20-rhel7:latest" } }, { "name": "2.2", "annotations": { "openshift.io/display-name": "Ruby 2.2", "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", "tags": "builder,ruby", "supports": "ruby:2.2,ruby", "version": "2.2", "sampleRepo": "https://github.com/openshift/ruby-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/ruby-22-rhel7:latest" } }, { "name": "2.3", "annotations": { "openshift.io/display-name": "Ruby 2.3", "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", "tags": "builder,ruby", "supports": "ruby:2.3,ruby", "version": "2.3", "sampleRepo": "https://github.com/openshift/ruby-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/ruby-23-rhel7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "nodejs", "annotations": { "openshift.io/display-name": "Node.js" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Node.js (Latest)", "description": "Build and run Node.js 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.\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", "tags": "builder,nodejs", "supports":"nodejs", "sampleRepo": "https://github.com/openshift/nodejs-ex.git" }, "from": { "kind": "ImageStreamTag", "name": "4" } }, { "name": "0.10", "annotations": { "openshift.io/display-name": "Node.js 0.10", "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", "tags": "hidden,nodejs", "supports":"nodejs:0.10,nodejs:0.1,nodejs", "version": "0.10", "sampleRepo": "https://github.com/openshift/nodejs-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/openshift3/nodejs-010-rhel7:latest" } }, { "name": "4", "annotations": { "openshift.io/display-name": "Node.js 4", "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", "tags": "builder,nodejs", "supports":"nodejs:4,nodejs", "version": "4", "sampleRepo": "https://github.com/openshift/nodejs-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/nodejs-4-rhel7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "perl", "annotations": { "openshift.io/display-name": "Perl" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Perl (Latest)", "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", "tags": "builder,perl", "supports":"perl", "sampleRepo": "https://github.com/openshift/dancer-ex.git" }, "from": { "kind": "ImageStreamTag", "name": "5.24" } }, { "name": "5.16", "annotations": { "openshift.io/display-name": "Perl 5.16", "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", "tags": "hidden,builder,perl", "supports":"perl:5.16,perl", "version": "5.16", "sampleRepo": "https://github.com/openshift/dancer-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/openshift3/perl-516-rhel7:latest" } }, { "name": "5.20", "annotations": { "openshift.io/display-name": "Perl 5.20", "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", "tags": "builder,perl", "supports":"perl:5.20,perl", "version": "5.20", "sampleRepo": "https://github.com/openshift/dancer-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/perl-520-rhel7:latest" } }, { "name": "5.24", "annotations": { "openshift.io/display-name": "Perl 5.24", "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", "tags": "builder,perl", "supports":"perl:5.24,perl", "version": "5.24", "sampleRepo": "https://github.com/openshift/dancer-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/perl-524-rhel7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "php", "annotations": { "openshift.io/display-name": "PHP" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "PHP (Latest)", "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/5.6/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", "tags": "builder,php", "supports":"php", "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { "kind": "ImageStreamTag", "name": "5.6" } }, { "name": "5.5", "annotations": { "openshift.io/display-name": "PHP 5.5", "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", "tags": "hidden,builder,php", "supports":"php:5.5,php", "version": "5.5", "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/openshift3/php-55-rhel7:latest" } }, { "name": "5.6", "annotations": { "openshift.io/display-name": "PHP 5.6", "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", "tags": "builder,php", "supports":"php:5.6,php", "version": "5.6", "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/php-56-rhel7:latest" } }, { "name": "7.0", "annotations": { "openshift.io/display-name": "PHP 7.0", "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", "tags": "builder,php", "supports":"php:7.0,php", "version": "7.0", "sampleRepo": "https://github.com/openshift/cakephp-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/php-70-rhel7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "python", "annotations": { "openshift.io/display-name": "Python" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Python (Latest)", "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.5/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", "tags": "builder,python", "supports":"python", "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { "kind": "ImageStreamTag", "name": "3.5" } }, { "name": "3.3", "annotations": { "openshift.io/display-name": "Python 3.3", "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", "tags": "hidden,builder,python", "supports":"python:3.3,python", "version": "3.3", "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/openshift3/python-33-rhel7:latest" } }, { "name": "2.7", "annotations": { "openshift.io/display-name": "Python 2.7", "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", "tags": "builder,python", "supports":"python:2.7,python", "version": "2.7", "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/python-27-rhel7:latest" } }, { "name": "3.4", "annotations": { "openshift.io/display-name": "Python 3.4", "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", "tags": "builder,python", "supports":"python:3.4,python", "version": "3.4", "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/python-34-rhel7:latest" } }, { "name": "3.5", "annotations": { "openshift.io/display-name": "Python 3.5", "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", "tags": "builder,python", "supports":"python:3.5,python", "version": "3.5", "sampleRepo": "https://github.com/openshift/django-ex.git" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/python-35-rhel7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "mysql", "annotations": { "openshift.io/display-name": "MySQL" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "MySQL (Latest)", "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/tree/master/5.6/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", "tags": "mysql" }, "from": { "kind": "ImageStreamTag", "name": "5.7" } }, { "name": "5.5", "annotations": { "openshift.io/display-name": "MySQL 5.5", "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/tree/master/5.5/README.md.", "iconClass": "icon-mysql-database", "tags": "hidden,mysql", "version": "5.5" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/openshift3/mysql-55-rhel7:latest" } }, { "name": "5.6", "annotations": { "openshift.io/display-name": "MySQL 5.6", "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/tree/master/5.6/README.md.", "iconClass": "icon-mysql-database", "tags": "mysql", "version": "5.6" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/mysql-56-rhel7:latest" } }, { "name": "5.7", "annotations": { "openshift.io/display-name": "MySQL 5.7", "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/tree/master/5.7/README.md.", "iconClass": "icon-mysql-database", "tags": "mysql", "version": "5.7" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/mysql-57-rhel7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "mariadb", "annotations": { "openshift.io/display-name": "MariaDB" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "MariaDB (Latest)", "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.1/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", "tags": "mariadb" }, "from": { "kind": "ImageStreamTag", "name": "10.1" } }, { "name": "10.1", "annotations": { "openshift.io/display-name": "MariaDB 10.1", "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", "tags": "mariadb", "version": "10.1" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/mariadb-101-rhel7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "postgresql", "annotations": { "openshift.io/display-name": "PostgreSQL" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "PostgreSQL (Latest)", "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/tree/master/9.5.\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", "tags": "postgresql" }, "from": { "kind": "ImageStreamTag", "name": "9.5" } }, { "name": "9.2", "annotations": { "openshift.io/display-name": "PostgreSQL 9.2", "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/tree/master/9.2.", "iconClass": "icon-postgresql", "tags": "hidden,postgresql", "version": "9.2" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/openshift3/postgresql-92-rhel7:latest" } }, { "name": "9.4", "annotations": { "openshift.io/display-name": "PostgreSQL 9.4", "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/tree/master/9.4.", "iconClass": "icon-postgresql", "tags": "postgresql", "version": "9.4" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/postgresql-94-rhel7:latest" } }, { "name": "9.5", "annotations": { "openshift.io/display-name": "PostgreSQL 9.5", "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/tree/master/9.5.", "iconClass": "icon-postgresql", "tags": "postgresql", "version": "9.5" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/postgresql-95-rhel7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "mongodb", "annotations": { "openshift.io/display-name": "MongoDB" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "MongoDB (Latest)", "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.2/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", "tags": "mongodb" }, "from": { "kind": "ImageStreamTag", "name": "3.2" } }, { "name": "2.4", "annotations": { "openshift.io/display-name": "MongoDB 2.4", "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", "tags": "hidden,mongodb", "version": "2.4" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/openshift3/mongodb-24-rhel7:latest" } }, { "name": "2.6", "annotations": { "openshift.io/display-name": "MongoDB 2.6", "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", "tags": "mongodb", "version": "2.6" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/mongodb-26-rhel7:latest" } }, { "name": "3.2", "annotations": { "openshift.io/display-name": "MongoDB 3.2", "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", "tags": "mongodb", "version": "3.2" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/mongodb-32-rhel7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "redis", "annotations": { "openshift.io/display-name": "Redis" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Redis (Latest)", "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", "tags": "redis" }, "from": { "kind": "ImageStreamTag", "name": "3.2" } }, { "name": "3.2", "annotations": { "openshift.io/display-name": "Redis 3.2", "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", "tags": "redis", "version": "3.2" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/rhscl/redis-32-rhel7:latest" } } ] } }, { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "jenkins", "annotations": { "openshift.io/display-name": "Jenkins" } }, "spec": { "tags": [ { "name": "latest", "annotations": { "openshift.io/display-name": "Jenkins (Latest)", "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", "tags": "jenkins" }, "from": { "kind": "ImageStreamTag", "name": "2" } }, { "name": "1", "annotations": { "openshift.io/display-name": "Jenkins 1.X", "description": "Provides a Jenkins 1.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", "tags": "jenkins", "version": "1.x" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/openshift3/jenkins-1-rhel7:latest" } }, { "name": "2", "annotations": { "openshift.io/display-name": "Jenkins 2.X", "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", "tags": "jenkins", "version": "2.x" }, "from": { "kind": "DockerImage", "name": "registry.access.redhat.com/openshift3/jenkins-2-rhel7:latest" } } ] } } ] } `) 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 _examplesDbTemplatesMariadbEphemeralTemplateJson = []byte(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "mariadb-ephemeral", "annotations": { "openshift.io/display-name": "MariaDB (Ephemeral)", "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.1/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing", "iconClass": "icon-mariadb", "tags": "database,mariadb" } }, "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.1/README.md.", "labels": { "template": "mariadb-persistent-template" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "stringData" : { "database-user" : "${MYSQL_USER}", "database-password" : "${MYSQL_PASSWORD}", "database-root-password" : "${MYSQL_ROOT_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "spec": { "ports": [ { "name": "mariadb", "port": 3306 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "mariadb" ], "from": { "kind": "ImageStreamTag", "name": "mariadb:10.1", "namespace": "${NAMESPACE}" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "containers": [ { "name": "mariadb", "image": " ", "ports": [ { "containerPort": 3306 } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "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'"] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 3306 } }, "env": [ { "name": "MYSQL_USER", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-user" } } }, { "name": "MYSQL_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-password" } } }, { "name": "MYSQL_ROOT_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-root-password" } } }, { "name": "MYSQL_DATABASE", "value": "${MYSQL_DATABASE}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${DATABASE_SERVICE_NAME}-data", "mountPath": "/var/lib/mysql/data" } ], "imagePullPolicy": "IfNotPresent" } ], "volumes": [ { "name": "${DATABASE_SERVICE_NAME}-data", "emptyDir": { "medium": "" } } ] } } } } ], "parameters": [ { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", "description": "Maximum amount of memory the container can use.", "value": "512Mi", "required": true }, { "name": "NAMESPACE", "displayName": "Namespace", "description": "The OpenShift Namespace where the ImageStream resides.", "value": "openshift" }, { "name": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "description": "The name of the OpenShift Service exposed for the database.", "value": "mariadb", "required": true }, { "name": "MYSQL_USER", "displayName": "MariaDB Connection Username", "description": "Username for MariaDB user that will be used for accessing the database.", "generate": "expression", "from": "user[A-Z0-9]{3}", "required": true }, { "name": "MYSQL_PASSWORD", "displayName": "MariaDB Connection Password", "description": "Password for the MariaDB connection user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "MYSQL_ROOT_PASSWORD", "displayName": "MariaDB root Password", "description": "Password for the MariaDB root user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "MYSQL_DATABASE", "displayName": "MariaDB Database Name", "description": "Name of the MariaDB database accessed.", "value": "sampledb", "required": true } ] } `) 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(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "mariadb-persistent", "annotations": { "openshift.io/display-name": "MariaDB (Persistent)", "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.1/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", "tags": "database,mariadb" } }, "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.1/README.md.", "labels": { "template": "mariadb-persistent-template" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "stringData" : { "database-user" : "${MYSQL_USER}", "database-password" : "${MYSQL_PASSWORD}", "database-root-password" : "${MYSQL_ROOT_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "spec": { "ports": [ { "name": "mariadb", "port": 3306 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" } } }, { "kind": "PersistentVolumeClaim", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "spec": { "accessModes": [ "ReadWriteOnce" ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" } } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "mariadb" ], "from": { "kind": "ImageStreamTag", "name": "mariadb:10.1", "namespace": "${NAMESPACE}" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "containers": [ { "name": "mariadb", "image": " ", "ports": [ { "containerPort": 3306 } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "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'"] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 3306 } }, "env": [ { "name": "MYSQL_USER", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-user" } } }, { "name": "MYSQL_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-password" } } }, { "name": "MYSQL_ROOT_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-root-password" } } }, { "name": "MYSQL_DATABASE", "value": "${MYSQL_DATABASE}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${DATABASE_SERVICE_NAME}-data", "mountPath": "/var/lib/mysql/data" } ], "imagePullPolicy": "IfNotPresent" } ], "volumes": [ { "name": "${DATABASE_SERVICE_NAME}-data", "persistentVolumeClaim": { "claimName": "${DATABASE_SERVICE_NAME}" } } ] } } } } ], "parameters": [ { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", "description": "Maximum amount of memory the container can use.", "value": "512Mi", "required": true }, { "name": "NAMESPACE", "displayName": "Namespace", "description": "The OpenShift Namespace where the ImageStream resides.", "value": "openshift" }, { "name": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "description": "The name of the OpenShift Service exposed for the database.", "value": "mariadb", "required": true }, { "name": "MYSQL_USER", "displayName": "MariaDB Connection Username", "description": "Username for MariaDB user that will be used for accessing the database.", "generate": "expression", "from": "user[A-Z0-9]{3}", "required": true }, { "name": "MYSQL_PASSWORD", "displayName": "MariaDB Connection Password", "description": "Password for the MariaDB connection user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "MYSQL_ROOT_PASSWORD", "displayName": "MariaDB root Password", "description": "Password for the MariaDB root user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "MYSQL_DATABASE", "displayName": "MariaDB Database Name", "description": "Name of the MariaDB database accessed.", "value": "sampledb", "required": true }, { "name": "VOLUME_CAPACITY", "displayName": "Volume Capacity", "description": "Volume space available for data, e.g. 512Mi, 2Gi.", "value": "1Gi", "required": true } ] } `) 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(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "mongodb-ephemeral", "creationTimestamp": null, "annotations": { "openshift.io/display-name": "MongoDB (Ephemeral)", "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", "tags": "database,mongodb" } }, "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.", "labels": { "template": "mongodb-ephemeral-template" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "stringData" : { "database-user" : "${MONGODB_USER}", "database-password" : "${MONGODB_PASSWORD}", "database-admin-password" : "${MONGODB_ADMIN_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "ports": [ { "name": "mongo", "protocol": "TCP", "port": 27017, "targetPort": 27017, "nodePort": 0 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "type": "ClusterIP", "sessionAffinity": "None" }, "status": { "loadBalancer": {} } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "mongodb" ], "from": { "kind": "ImageStreamTag", "name": "mongodb:${MONGODB_VERSION}", "namespace": "${NAMESPACE}" }, "lastTriggeredImage": "" } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "containers": [ { "name": "mongodb", "image": " ", "ports": [ { "containerPort": 27017, "protocol": "TCP" } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 3, "exec": { "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 27017 } }, "env": [ { "name": "MONGODB_USER", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-user" } } }, { "name": "MONGODB_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-password" } } }, { "name": "MONGODB_ADMIN_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-admin-password" } } }, { "name": "MONGODB_DATABASE", "value": "${MONGODB_DATABASE}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${DATABASE_SERVICE_NAME}-data", "mountPath": "/var/lib/mongodb/data" } ], "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent", "capabilities": {}, "securityContext": { "capabilities": {}, "privileged": false } } ], "volumes": [ { "name": "${DATABASE_SERVICE_NAME}-data", "emptyDir": { "medium": "" } } ], "restartPolicy": "Always", "dnsPolicy": "ClusterFirst" } } }, "status": {} } ], "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": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "description": "The name of the OpenShift Service exposed for the database.", "value": "mongodb", "required": true }, { "name": "MONGODB_USER", "displayName": "MongoDB Connection Username", "description": "Username for MongoDB user that will be used for accessing the database.", "generate": "expression", "from": "user[A-Z0-9]{3}", "required": true }, { "name": "MONGODB_PASSWORD", "displayName": "MongoDB Connection Password", "description": "Password for the MongoDB connection user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "MONGODB_DATABASE", "displayName": "MongoDB Database Name", "description": "Name of the MongoDB database accessed.", "value": "sampledb", "required": true }, { "name": "MONGODB_ADMIN_PASSWORD", "displayName": "MongoDB Admin Password", "description": "Password for the database admin user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "MONGODB_VERSION", "displayName": "Version of MongoDB Image", "description": "Version of MongoDB image to be used (2.4, 2.6, 3.2 or latest).", "value": "3.2", "required": true } ] } `) 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(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "mongodb-persistent", "creationTimestamp": null, "annotations": { "openshift.io/display-name": "MongoDB (Persistent)", "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", "tags": "database,mongodb" } }, "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.", "labels": { "template": "mongodb-persistent-template" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "stringData" : { "database-user" : "${MONGODB_USER}", "database-password" : "${MONGODB_PASSWORD}", "database-admin-password" : "${MONGODB_ADMIN_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "ports": [ { "name": "mongo", "protocol": "TCP", "port": 27017, "targetPort": 27017, "nodePort": 0 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "type": "ClusterIP", "sessionAffinity": "None" }, "status": { "loadBalancer": {} } }, { "kind": "PersistentVolumeClaim", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "spec": { "accessModes": [ "ReadWriteOnce" ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" } } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "mongodb" ], "from": { "kind": "ImageStreamTag", "name": "mongodb:${MONGODB_VERSION}", "namespace": "${NAMESPACE}" }, "lastTriggeredImage": "" } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "containers": [ { "name": "mongodb", "image": " ", "ports": [ { "containerPort": 27017, "protocol": "TCP" } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 3, "exec": { "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 27017 } }, "env": [ { "name": "MONGODB_USER", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-user" } } }, { "name": "MONGODB_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-password" } } }, { "name": "MONGODB_ADMIN_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-admin-password" } } }, { "name": "MONGODB_DATABASE", "value": "${MONGODB_DATABASE}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${DATABASE_SERVICE_NAME}-data", "mountPath": "/var/lib/mongodb/data" } ], "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent", "capabilities": {}, "securityContext": { "capabilities": {}, "privileged": false } } ], "volumes": [ { "name": "${DATABASE_SERVICE_NAME}-data", "persistentVolumeClaim": { "claimName": "${DATABASE_SERVICE_NAME}" } } ], "restartPolicy": "Always", "dnsPolicy": "ClusterFirst" } } }, "status": {} } ], "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": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "description": "The name of the OpenShift Service exposed for the database.", "value": "mongodb", "required": true }, { "name": "MONGODB_USER", "displayName": "MongoDB Connection Username", "description": "Username for MongoDB user that will be used for accessing the database.", "generate": "expression", "from": "user[A-Z0-9]{3}", "required": true }, { "name": "MONGODB_PASSWORD", "displayName": "MongoDB Connection Password", "description": "Password for the MongoDB connection user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "MONGODB_DATABASE", "displayName": "MongoDB Database Name", "description": "Name of the MongoDB database accessed.", "value": "sampledb", "required": true }, { "name": "MONGODB_ADMIN_PASSWORD", "displayName": "MongoDB Admin Password", "description": "Password for the database admin user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "VOLUME_CAPACITY", "displayName": "Volume Capacity", "description": "Volume space available for data, e.g. 512Mi, 2Gi.", "value": "1Gi", "required": true }, { "name": "MONGODB_VERSION", "displayName": "Version of MongoDB Image", "description": "Version of MongoDB image to be used (2.4, 2.6, 3.2 or latest).", "value": "3.2", "required": true } ] } `) 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(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "mysql-ephemeral", "annotations": { "openshift.io/display-name": "MySQL (Ephemeral)", "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/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing", "iconClass": "icon-mysql-database", "tags": "database,mysql" } }, "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/README.md.", "labels": { "template": "mysql-ephemeral-template" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "stringData" : { "database-user" : "${MYSQL_USER}", "database-password" : "${MYSQL_PASSWORD}", "database-root-password" : "${MYSQL_ROOT_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "ports": [ { "name": "mysql", "protocol": "TCP", "port": 3306, "targetPort": 3306, "nodePort": 0 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "type": "ClusterIP", "sessionAffinity": "None" }, "status": { "loadBalancer": {} } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "mysql" ], "from": { "kind": "ImageStreamTag", "name": "mysql:${MYSQL_VERSION}", "namespace": "${NAMESPACE}" }, "lastTriggeredImage": "" } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "containers": [ { "name": "mysql", "image": " ", "ports": [ { "containerPort": 3306, "protocol": "TCP" } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "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'"] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 3306 } }, "env": [ { "name": "MYSQL_USER", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-user" } } }, { "name": "MYSQL_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-password" } } }, { "name": "MYSQL_ROOT_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-root-password" } } }, { "name": "MYSQL_DATABASE", "value": "${MYSQL_DATABASE}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${DATABASE_SERVICE_NAME}-data", "mountPath": "/var/lib/mysql/data" } ], "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent", "capabilities": {}, "securityContext": { "capabilities": {}, "privileged": false } } ], "volumes": [ { "name": "${DATABASE_SERVICE_NAME}-data", "emptyDir": { "medium": "" } } ], "restartPolicy": "Always", "dnsPolicy": "ClusterFirst" } } }, "status": {} } ], "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": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "description": "The name of the OpenShift Service exposed for the database.", "value": "mysql", "required": true }, { "name": "MYSQL_USER", "displayName": "MySQL Connection Username", "description": "Username for MySQL user that will be used for accessing the database.", "generate": "expression", "from": "user[A-Z0-9]{3}", "required": true }, { "name": "MYSQL_PASSWORD", "displayName": "MySQL Connection Password", "description": "Password for the MySQL connection user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "MYSQL_ROOT_PASSWORD", "displayName": "MySQL root user Password", "description": "Password for the MySQL root user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "MYSQL_DATABASE", "displayName": "MySQL Database Name", "description": "Name of the MySQL database accessed.", "value": "sampledb", "required": true }, { "name": "MYSQL_VERSION", "displayName": "Version of MySQL Image", "description": "Version of MySQL image to be used (5.5, 5.6, 5.7, or latest).", "value": "5.7", "required": true } ] } `) 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(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "mysql-persistent", "annotations": { "openshift.io/display-name": "MySQL (Persistent)", "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/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", "tags": "database,mysql" } }, "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/README.md.", "labels": { "template": "mysql-persistent-template" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "stringData" : { "database-user" : "${MYSQL_USER}", "database-password" : "${MYSQL_PASSWORD}", "database-root-password" : "${MYSQL_ROOT_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "spec": { "ports": [ { "name": "mysql", "port": 3306 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" } } }, { "kind": "PersistentVolumeClaim", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "spec": { "accessModes": [ "ReadWriteOnce" ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" } } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "mysql" ], "from": { "kind": "ImageStreamTag", "name": "mysql:${MYSQL_VERSION}", "namespace": "${NAMESPACE}" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "containers": [ { "name": "mysql", "image": " ", "ports": [ { "containerPort": 3306 } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "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'"] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 3306 } }, "env": [ { "name": "MYSQL_USER", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-user" } } }, { "name": "MYSQL_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-password" } } }, { "name": "MYSQL_ROOT_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-root-password" } } }, { "name": "MYSQL_DATABASE", "value": "${MYSQL_DATABASE}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${DATABASE_SERVICE_NAME}-data", "mountPath": "/var/lib/mysql/data" } ], "imagePullPolicy": "IfNotPresent" } ], "volumes": [ { "name": "${DATABASE_SERVICE_NAME}-data", "persistentVolumeClaim": { "claimName": "${DATABASE_SERVICE_NAME}" } } ] } } } } ], "parameters": [ { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", "description": "Maximum amount of memory the container can use.", "value": "512Mi", "required": true }, { "name": "NAMESPACE", "displayName": "Namespace", "description": "The OpenShift Namespace where the ImageStream resides.", "value": "openshift" }, { "name": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "description": "The name of the OpenShift Service exposed for the database.", "value": "mysql", "required": true }, { "name": "MYSQL_USER", "displayName": "MySQL Connection Username", "description": "Username for MySQL user that will be used for accessing the database.", "generate": "expression", "from": "user[A-Z0-9]{3}", "required": true }, { "name": "MYSQL_PASSWORD", "displayName": "MySQL Connection Password", "description": "Password for the MySQL connection user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "MYSQL_ROOT_PASSWORD", "displayName": "MySQL root user Password", "description": "Password for the MySQL root user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "MYSQL_DATABASE", "displayName": "MySQL Database Name", "description": "Name of the MySQL database accessed.", "value": "sampledb", "required": true }, { "name": "VOLUME_CAPACITY", "displayName": "Volume Capacity", "description": "Volume space available for data, e.g. 512Mi, 2Gi.", "value": "1Gi", "required": true }, { "name": "MYSQL_VERSION", "displayName": "Version of MySQL Image", "description": "Version of MySQL image to be used (5.5, 5.6, 5.7, or latest).", "value": "5.7", "required": true } ] } `) 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(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "postgresql-ephemeral", "creationTimestamp": null, "annotations": { "openshift.io/display-name": "PostgreSQL (Ephemeral)", "description": "PostgreSQL database service, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/9.5.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing", "iconClass": "icon-postgresql", "tags": "database,postgresql" } }, "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: mysql://${DATABASE_SERVICE_NAME}:5432/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/9.5.", "labels": { "template": "postgresql-ephemeral-template" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "stringData" : { "database-user" : "${POSTGRESQL_USER}", "database-password" : "${POSTGRESQL_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "ports": [ { "name": "postgresql", "protocol": "TCP", "port": 5432, "targetPort": 5432, "nodePort": 0 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "type": "ClusterIP", "sessionAffinity": "None" }, "status": { "loadBalancer": {} } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "postgresql" ], "from": { "kind": "ImageStreamTag", "name": "postgresql:${POSTGRESQL_VERSION}", "namespace": "${NAMESPACE}" }, "lastTriggeredImage": "" } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "containers": [ { "name": "postgresql", "image": " ", "ports": [ { "containerPort": 5432, "protocol": "TCP" } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "exec": { "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 5432 } }, "env": [ { "name": "POSTGRESQL_USER", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-user" } } }, { "name": "POSTGRESQL_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-password" } } }, { "name": "POSTGRESQL_DATABASE", "value": "${POSTGRESQL_DATABASE}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${DATABASE_SERVICE_NAME}-data", "mountPath": "/var/lib/pgsql/data" } ], "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent", "capabilities": {}, "securityContext": { "capabilities": {}, "privileged": false } } ], "volumes": [ { "name": "${DATABASE_SERVICE_NAME}-data", "emptyDir": { "medium": "" } } ], "restartPolicy": "Always", "dnsPolicy": "ClusterFirst" } } }, "status": {} } ], "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": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "description": "The name of the OpenShift Service exposed for the database.", "value": "postgresql", "required": true }, { "name": "POSTGRESQL_USER", "displayName": "PostgreSQL Connection Username", "description": "Username for PostgreSQL user that will be used for accessing the database.", "generate": "expression", "from": "user[A-Z0-9]{3}", "required": true }, { "name": "POSTGRESQL_PASSWORD", "displayName": "PostgreSQL Connection Password", "description": "Password for the PostgreSQL connection user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "POSTGRESQL_DATABASE", "displayName": "PostgreSQL Database Name", "description": "Name of the PostgreSQL database accessed.", "value": "sampledb", "required": true }, { "name": "POSTGRESQL_VERSION", "displayName": "Version of PostgreSQL Image", "description": "Version of PostgreSQL image to be used (9.2, 9.4, 9.5 or latest).", "value": "9.5", "required": true } ] } `) 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(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "postgresql-persistent", "creationTimestamp": null, "annotations": { "openshift.io/display-name": "PostgreSQL (Persistent)", "description": "PostgreSQL database service, with persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/9.5.\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", "tags": "database,postgresql" } }, "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: mysql://${DATABASE_SERVICE_NAME}:5432/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/9.5.", "labels": { "template": "postgresql-persistent-template" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "stringData" : { "database-user" : "${POSTGRESQL_USER}", "database-password" : "${POSTGRESQL_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "ports": [ { "name": "postgresql", "protocol": "TCP", "port": 5432, "targetPort": 5432, "nodePort": 0 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "type": "ClusterIP", "sessionAffinity": "None" }, "status": { "loadBalancer": {} } }, { "kind": "PersistentVolumeClaim", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "spec": { "accessModes": [ "ReadWriteOnce" ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" } } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "postgresql" ], "from": { "kind": "ImageStreamTag", "name": "postgresql:${POSTGRESQL_VERSION}", "namespace": "${NAMESPACE}" }, "lastTriggeredImage": "" } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "containers": [ { "name": "postgresql", "image": " ", "ports": [ { "containerPort": 5432, "protocol": "TCP" } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "exec": { "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'"] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 5432 } }, "env": [ { "name": "POSTGRESQL_USER", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-user" } } }, { "name": "POSTGRESQL_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${DATABASE_SERVICE_NAME}", "key" : "database-password" } } }, { "name": "POSTGRESQL_DATABASE", "value": "${POSTGRESQL_DATABASE}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${DATABASE_SERVICE_NAME}-data", "mountPath": "/var/lib/pgsql/data" } ], "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent", "capabilities": {}, "securityContext": { "capabilities": {}, "privileged": false } } ], "volumes": [ { "name": "${DATABASE_SERVICE_NAME}-data", "persistentVolumeClaim": { "claimName": "${DATABASE_SERVICE_NAME}" } } ], "restartPolicy": "Always", "dnsPolicy": "ClusterFirst" } } }, "status": {} } ], "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": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "description": "The name of the OpenShift Service exposed for the database.", "value": "postgresql", "required": true }, { "name": "POSTGRESQL_USER", "displayName": "PostgreSQL Connection Username", "description": "Username for PostgreSQL user that will be used for accessing the database.", "generate": "expression", "from": "user[A-Z0-9]{3}", "required": true }, { "name": "POSTGRESQL_PASSWORD", "displayName": "PostgreSQL Connection Password", "description": "Password for the PostgreSQL connection user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "POSTGRESQL_DATABASE", "displayName": "PostgreSQL Database Name", "description": "Name of the PostgreSQL database accessed.", "value": "sampledb", "required": true }, { "name": "VOLUME_CAPACITY", "displayName": "Volume Capacity", "description": "Volume space available for data, e.g. 512Mi, 2Gi.", "value": "1Gi", "required": true }, { "name": "POSTGRESQL_VERSION", "displayName": "Version of PostgreSQL Image", "description": "Version of PostgreSQL image to be used (9.2, 9.4, 9.5 or latest).", "value": "9.5", "required": true } ] } `) 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(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "redis-ephemeral", "creationTimestamp": null, "annotations": { "openshift.io/display-name": "Redis (Ephemeral)", "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", "tags": "database,redis" } }, "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.", "labels": { "template": "redis-ephemeral-template" }, "objects": [ { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "ports": [ { "name": "redis", "protocol": "TCP", "port": 6379, "targetPort": 6379, "nodePort": 0 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "type": "ClusterIP", "sessionAffinity": "None" }, "status": { "loadBalancer": {} } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "redis" ], "from": { "kind": "ImageStreamTag", "name": "redis:${REDIS_VERSION}", "namespace": "${NAMESPACE}" }, "lastTriggeredImage": "" } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "containers": [ { "name": "redis", "image": " ", "ports": [ { "containerPort": 6379, "protocol": "TCP" } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "exec": { "command": [ "/bin/sh", "-i", "-c", "test \"$(redis-cli -h 127.0.0.1 -a $REDIS_PASSWORD ping)\" == \"PONG\""] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 6379 } }, "env": [ { "name": "REDIS_PASSWORD", "value": "${REDIS_PASSWORD}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${DATABASE_SERVICE_NAME}-data", "mountPath": "/var/lib/redis/data" } ], "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent", "capabilities": {}, "securityContext": { "capabilities": {}, "privileged": false } } ], "volumes": [ { "name": "${DATABASE_SERVICE_NAME}-data", "emptyDir": { "medium": "" } } ], "restartPolicy": "Always", "dnsPolicy": "ClusterFirst" } } }, "status": {} } ], "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": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "description": "The name of the OpenShift Service exposed for the database.", "value": "redis", "required": true }, { "name": "REDIS_PASSWORD", "displayName": "Redis Connection Password", "description": "Password for the Redis connection user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "REDIS_VERSION", "displayName": "Version of Redis Image", "description": "Version of Redis image to be used (3.2 or latest).", "value": "3.2", "required": true } ] } `) 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(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "redis-persistent", "creationTimestamp": null, "annotations": { "openshift.io/display-name": "Redis (Persistent)", "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", "tags": "database,redis" } }, "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.", "labels": { "template": "redis-persistent-template" }, "objects": [ { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "ports": [ { "name": "redis", "protocol": "TCP", "port": 6379, "targetPort": 6379, "nodePort": 0 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "type": "ClusterIP", "sessionAffinity": "None" }, "status": { "loadBalancer": {} } }, { "kind": "PersistentVolumeClaim", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}" }, "spec": { "accessModes": [ "ReadWriteOnce" ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" } } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "redis" ], "from": { "kind": "ImageStreamTag", "name": "redis:${REDIS_VERSION}", "namespace": "${NAMESPACE}" }, "lastTriggeredImage": "" } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "containers": [ { "name": "redis", "image": " ", "ports": [ { "containerPort": 6379, "protocol": "TCP" } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "exec": { "command": [ "/bin/sh", "-i", "-c", "test \"$(redis-cli -h 127.0.0.1 -a $REDIS_PASSWORD ping)\" == \"PONG\""] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 6379 } }, "env": [ { "name": "REDIS_PASSWORD", "value": "${REDIS_PASSWORD}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${DATABASE_SERVICE_NAME}-data", "mountPath": "/var/lib/redis/data" } ], "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent", "capabilities": {}, "securityContext": { "capabilities": {}, "privileged": false } } ], "volumes": [ { "name": "${DATABASE_SERVICE_NAME}-data", "persistentVolumeClaim": { "claimName": "${DATABASE_SERVICE_NAME}" } } ], "restartPolicy": "Always", "dnsPolicy": "ClusterFirst" } } }, "status": {} } ], "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": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "description": "The name of the OpenShift Service exposed for the database.", "value": "redis", "required": true }, { "name": "REDIS_PASSWORD", "displayName": "Redis Connection Password", "description": "Password for the Redis connection user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}", "required": true }, { "name": "VOLUME_CAPACITY", "displayName": "Volume Capacity", "description": "Volume space available for data, e.g. 512Mi, 2Gi.", "value": "1Gi", "required": true }, { "name": "REDIS_VERSION", "displayName": "Version of Redis Image", "description": "Version of Redis image to be used (3.2 or latest).", "value": "3.2", "required": true } ] } `) 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 _examplesJenkinsJenkinsEphemeralTemplateJson = []byte(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "jenkins-ephemeral", "creationTimestamp": null, "annotations": { "openshift.io/display-name": "Jenkins (Ephemeral)", "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", "tags": "instant-app,jenkins" } }, "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.", "objects": [ { "kind": "Route", "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "to": { "kind": "Service", "name": "${JENKINS_SERVICE_NAME}" }, "tls": { "termination": "edge", "insecureEdgeTerminationPolicy": "Redirect" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "jenkins" ], "from": { "kind": "ImageStreamTag", "name": "${JENKINS_IMAGE_STREAM_TAG}", "namespace": "${NAMESPACE}" }, "lastTriggeredImage": "" } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${JENKINS_SERVICE_NAME}" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "name": "${JENKINS_SERVICE_NAME}" } }, "spec": { "serviceAccountName": "${JENKINS_SERVICE_NAME}", "containers": [ { "name": "jenkins", "image": " ", "readinessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 3, "httpGet": { "path": "/login", "port": 8080 } }, "livenessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 420, "failureThreshold" : 30, "httpGet": { "path": "/login", "port": 8080 } }, "env": [ { "name": "OPENSHIFT_ENABLE_OAUTH", "value": "${ENABLE_OAUTH}" }, { "name": "OPENSHIFT_ENABLE_REDIRECT_PROMPT", "value": "true" }, { "name": "KUBERNETES_MASTER", "value": "https://kubernetes.default:443" }, { "name": "KUBERNETES_TRUST_CERTIFICATES", "value": "true" }, { "name": "JNLP_SERVICE_NAME", "value": "${JNLP_SERVICE_NAME}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${JENKINS_SERVICE_NAME}-data", "mountPath": "/var/lib/jenkins" } ], "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent", "capabilities": {}, "securityContext": { "capabilities": {}, "privileged": false } } ], "volumes": [ { "name": "${JENKINS_SERVICE_NAME}-data", "emptyDir": { "medium": "" } } ], "restartPolicy": "Always", "dnsPolicy": "ClusterFirst" } } } }, { "kind": "ServiceAccount", "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", "annotations": { "serviceaccounts.openshift.io/oauth-redirectreference.jenkins": "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"${JENKINS_SERVICE_NAME}\"}}" } } }, { "kind": "RoleBinding", "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}_edit" }, "groupNames": null, "subjects": [ { "kind": "ServiceAccount", "name": "${JENKINS_SERVICE_NAME}" } ], "roleRef": { "name": "edit" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${JNLP_SERVICE_NAME}" }, "spec": { "ports": [ { "name": "agent", "protocol": "TCP", "port": 50000, "targetPort": 50000, "nodePort": 0 } ], "selector": { "name": "${JENKINS_SERVICE_NAME}" }, "type": "ClusterIP", "sessionAffinity": "None" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", "annotations": { "service.alpha.openshift.io/dependencies": "[{\"name\": \"${JNLP_SERVICE_NAME}\", \"namespace\": \"\", \"kind\": \"Service\"}]", "service.openshift.io/infrastructure": "true" }, "creationTimestamp": null }, "spec": { "ports": [ { "name": "web", "protocol": "TCP", "port": 80, "targetPort": 8080, "nodePort": 0 } ], "selector": { "name": "${JENKINS_SERVICE_NAME}" }, "type": "ClusterIP", "sessionAffinity": "None" } } ], "parameters": [ { "name": "JENKINS_SERVICE_NAME", "displayName": "Jenkins Service Name", "description": "The name of the OpenShift Service exposed for the Jenkins container.", "value": "jenkins" }, { "name": "JNLP_SERVICE_NAME", "displayName": "Jenkins JNLP Service Name", "description": "The name of the service used for master/slave communication.", "value": "jenkins-jnlp" }, { "name": "ENABLE_OAUTH", "displayName": "Enable OAuth in Jenkins", "description": "Whether to enable OAuth OpenShift integration. If false, the static account 'admin' will be initialized with the password 'password'.", "value": "true" }, { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", "description": "Maximum amount of memory the container can use.", "value": "512Mi" }, { "name": "NAMESPACE", "displayName": "Jenkins ImageStream Namespace", "description": "The OpenShift Namespace where the Jenkins ImageStream resides.", "value": "openshift" }, { "name": "JENKINS_IMAGE_STREAM_TAG", "displayName": "Jenkins ImageStreamTag", "description": "Name of the ImageStreamTag to be used for the Jenkins image.", "value": "jenkins:latest" } ], "labels": { "template": "jenkins-ephemeral-template" } } `) 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(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "jenkins-persistent", "creationTimestamp": null, "annotations": { "openshift.io/display-name": "Jenkins (Persistent)", "description": "Jenkins service, with persistent storage.\n\nNOTE: You must have persistent volumes available in your cluster to use this template.", "iconClass": "icon-jenkins", "tags": "instant-app,jenkins" } }, "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.", "objects": [ { "kind": "Route", "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "to": { "kind": "Service", "name": "${JENKINS_SERVICE_NAME}" }, "tls": { "termination": "edge", "insecureEdgeTerminationPolicy": "Redirect" } } }, { "kind": "PersistentVolumeClaim", "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}" }, "spec": { "accessModes": [ "ReadWriteOnce" ], "resources": { "requests": { "storage": "${VOLUME_CAPACITY}" } } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", "creationTimestamp": null }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "jenkins" ], "from": { "kind": "ImageStreamTag", "name": "${JENKINS_IMAGE_STREAM_TAG}", "namespace": "${NAMESPACE}" }, "lastTriggeredImage": "" } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${JENKINS_SERVICE_NAME}" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "name": "${JENKINS_SERVICE_NAME}" } }, "spec": { "serviceAccountName": "${JENKINS_SERVICE_NAME}", "containers": [ { "name": "jenkins", "image": " ", "readinessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 3, "httpGet": { "path": "/login", "port": 8080 } }, "livenessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 420, "failureThreshold" : 30, "httpGet": { "path": "/login", "port": 8080 } }, "env": [ { "name": "OPENSHIFT_ENABLE_OAUTH", "value": "${ENABLE_OAUTH}" }, { "name": "OPENSHIFT_ENABLE_REDIRECT_PROMPT", "value": "true" }, { "name": "KUBERNETES_MASTER", "value": "https://kubernetes.default:443" }, { "name": "KUBERNETES_TRUST_CERTIFICATES", "value": "true" }, { "name": "JNLP_SERVICE_NAME", "value": "${JNLP_SERVICE_NAME}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } }, "volumeMounts": [ { "name": "${JENKINS_SERVICE_NAME}-data", "mountPath": "/var/lib/jenkins" } ], "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent", "capabilities": {}, "securityContext": { "capabilities": {}, "privileged": false } } ], "volumes": [ { "name": "${JENKINS_SERVICE_NAME}-data", "persistentVolumeClaim": { "claimName": "${JENKINS_SERVICE_NAME}" } } ], "restartPolicy": "Always", "dnsPolicy": "ClusterFirst" } } } }, { "kind": "ServiceAccount", "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", "annotations": { "serviceaccounts.openshift.io/oauth-redirectreference.jenkins": "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"${JENKINS_SERVICE_NAME}\"}}" } } }, { "kind": "RoleBinding", "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}_edit" }, "groupNames": null, "subjects": [ { "kind": "ServiceAccount", "name": "${JENKINS_SERVICE_NAME}" } ], "roleRef": { "name": "edit" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${JNLP_SERVICE_NAME}" }, "spec": { "ports": [ { "name": "agent", "protocol": "TCP", "port": 50000, "targetPort": 50000, "nodePort": 0 } ], "selector": { "name": "${JENKINS_SERVICE_NAME}" }, "type": "ClusterIP", "sessionAffinity": "None" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${JENKINS_SERVICE_NAME}", "annotations": { "service.alpha.openshift.io/dependencies": "[{\"name\": \"${JNLP_SERVICE_NAME}\", \"namespace\": \"\", \"kind\": \"Service\"}]", "service.openshift.io/infrastructure": "true" }, "creationTimestamp": null }, "spec": { "ports": [ { "name": "web", "protocol": "TCP", "port": 80, "targetPort": 8080, "nodePort": 0 } ], "selector": { "name": "${JENKINS_SERVICE_NAME}" }, "type": "ClusterIP", "sessionAffinity": "None" } } ], "parameters": [ { "name": "JENKINS_SERVICE_NAME", "displayName": "Jenkins Service Name", "description": "The name of the OpenShift Service exposed for the Jenkins container.", "value": "jenkins" }, { "name": "JNLP_SERVICE_NAME", "displayName": "Jenkins JNLP Service Name", "description": "The name of the service used for master/slave communication.", "value": "jenkins-jnlp" }, { "name": "ENABLE_OAUTH", "displayName": "Enable OAuth in Jenkins", "description": "Whether to enable OAuth OpenShift integration. If false, the static account 'admin' will be initialized with the password 'password'.", "value": "true" }, { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", "description": "Maximum amount of memory the container can use.", "value": "512Mi" }, { "name": "VOLUME_CAPACITY", "displayName": "Volume Capacity", "description": "Volume space available for data, e.g. 512Mi, 2Gi.", "value": "1Gi", "required": true }, { "name": "NAMESPACE", "displayName": "Jenkins ImageStream Namespace", "description": "The OpenShift Namespace where the Jenkins ImageStream resides.", "value": "openshift" }, { "name": "JENKINS_IMAGE_STREAM_TAG", "displayName": "Jenkins ImageStreamTag", "description": "Name of the ImageStreamTag to be used for the Jenkins image.", "value": "jenkins:latest" } ], "labels": { "template": "jenkins-persistent-template" } } `) 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 will be automatically 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: |- def appName="${NAME}" def project="" def tag="blue" def altTag="green" node { project = env.PROJECT_NAME stage("Initialize") { sh "oc get route ${appName} -n ${project} -o jsonpath='{ .spec.to.name }' > 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 }' > routehost" routeHost = readFile('routehost').trim() } stage("Build") { echo "building tag ${tag}" openshiftBuild buildConfig: appName, showBuildLogs: "true" } stage("Deploy Test") { openshiftTag srcStream: appName, srcTag: 'latest', destinationStream: appName, destinationTag: tag openshiftVerifyDeployment deploymentConfig: "${appName}-${tag}" } 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" } } 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: 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: 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 `) 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 _examplesJenkinsPipelineMapsappPipelineYaml = []byte(`apiVersion: v1 kind: Template labels: application: mapsapp-pipeline metadata: name: mapsapp-pipeline parameters: - description: NationalParks application source URI displayName: NationalParks Source URI name: NATIONALPARKS_GIT_URI required: true value: https://github.com/openshift-roadshow/nationalparks.git - description: NationalParks application source reference displayName: NationalParks Source Ref name: NATIONALPARKS_GIT_REF required: true value: master - description: MLBParks application source URI displayName: MLBParks Source URI name: MLBPARKS_GIT_URI required: true value: https://github.com/openshift-roadshow/mlbparks.git - description: MLBParks application source reference displayName: MLBParks Source Ref name: MLBPARKS_GIT_REF required: true value: master - description: ParksMap application source URI displayName: ParksMap Source URI name: PARKSMAP_GIT_URI required: true value: https://github.com/openshift-roadshow/parksmap-web.git - description: ParksMap application source reference displayName: ParksMap Source Ref name: PARKSMAP_GIT_REF required: true value: master - name: GITHUB_WEBHOOK_SECRET displayName: GitHub Webhook Secret description: A secret string used to configure the GitHub webhook. generate: expression from: "[a-zA-Z0-9]{40}" - name: GENERIC_WEBHOOK_SECRET displayName: Generic Webhook Secret, description: A secret string used to configure the Generic webhook. generate: expression from: "[a-zA-Z0-9]{40}" objects: - apiVersion: v1 kind: BuildConfig metadata: labels: build: mapsapp-pipeline name: mapsapp-pipeline spec: runPolicy: Serial source: {} strategy: type: JenkinsPipeline jenkinsPipelineStrategy: jenkinsfile: |- def project = "" node { project = "${env.PROJECT_NAME}" stage('Create NationalParks back-end') { def nationalParksURL = "${NATIONALPARKS_GIT_URI}" def nationalParksBranch = "${NATIONALPARKS_GIT_REF}" checkout([$class: "GitSCM", branches: [[name: "*/${nationalParksBranch}"]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: "RelativeTargetDirectory", relativeTargetDir: "nationalparks"]], submoduleCfg: [], userRemoteConfigs: [[url: "${nationalParksURL}"]]]) sh "oc new-app -f nationalparks/ose3/pipeline-buildconfig-template.json -p GIT_URI=${nationalParksURL} -p GIT_REF=${nationalParksBranch} -n ${project} --dry-run -o yaml | oc apply -f - -n ${project}" } stage('Create MLBParks back-end') { def mlbParksURL = "${MLBPARKS_GIT_URI}" def mlbParksBranch = "${MLBPARKS_GIT_REF}" checkout([$class: "GitSCM", branches: [[name: "*/${mlbParksBranch}"]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: "RelativeTargetDirectory", relativeTargetDir: "mlbparks"]], submoduleCfg: [], userRemoteConfigs: [[url: "${mlbParksURL}"]]]) sh "oc new-app -f mlbparks/ose3/pipeline-buildconfig-template.json -p GIT_URI=${mlbParksURL} -p GIT_REF=${mlbParksBranch} -n ${project} --dry-run -o yaml | oc apply -f - -n ${project}" } stage('Create ParksMap front-end') { def parksMapURL = "${PARKSMAP_GIT_URI}" def parksMapBranch = "${PARKSMAP_GIT_REF}" checkout([$class: "GitSCM", branches: [[name: "*/${parksMapBranch}"]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: "RelativeTargetDirectory", relativeTargetDir: "parksmap"]], submoduleCfg: [], userRemoteConfigs: [[url: "${parksMapURL}"]]]) sh "oc new-app -f parksmap/ose3/pipeline-buildconfig-template.json -p GIT_URI=${parksMapURL} -p GIT_REF=${parksMapBranch} -n ${project} --dry-run -o yaml | oc apply -f - -n ${project}" } } stage('Build Back-ends') { parallel ( "nationalparks": { node { openshiftBuild buildConfig: "nationalparks-pipeline", namespace: project } }, "mlbparks": { node { openshiftBuild buildConfig: "mlbparks-pipeline", namespace: project } } ) } node { stage('Build Front-end') { openshiftBuild buildConfig: "parksmap-pipeline", namespace: project } } triggers: - github: secret: ${GITHUB_TRIGGER_SECRET} type: GitHub - generic: secret: ${GENERIC_TRIGGER_SECRET} type: Generic `) func examplesJenkinsPipelineMapsappPipelineYamlBytes() ([]byte, error) { return _examplesJenkinsPipelineMapsappPipelineYaml, nil } func examplesJenkinsPipelineMapsappPipelineYaml() (*asset, error) { bytes, err := examplesJenkinsPipelineMapsappPipelineYamlBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "examples/jenkins/pipeline/mapsapp-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/bparees/openshift-jee-sample.git - name: GIT_SOURCE_REF description: The source Ref for the application displayName: Source Ref required: true value: master - 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 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: |- 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 --follow -n ${project}" } stage("Deploy") { openshiftDeploy deploymentConfig: appName, namespace: project } } 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: annotations: openshift.io/container.${APP_NAME}.image.entrypoint: '["container-entrypoint","/bin/sh","-c","$STI_SCRIPTS_PATH/usage"]' 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 _examplesJenkinsPipelineSamplepipelineYaml = []byte(`apiVersion: v1 kind: Template labels: template: application-template-sample-pipeline message: |- A Jenkins server will be automatically 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 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: 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: 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: |- node('nodejs') { stage('build') { openshiftBuild(buildConfig: '${NAME}', showBuildLogs: 'true') } stage('deploy') { openshiftDeploy(deploymentConfig: '${NAME}') } } 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 _examplesQuickstartsCakephpMysqlJson = []byte(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "cakephp-mysql-example", "annotations": { "openshift.io/display-name": "CakePHP + MySQL (Ephemeral)", "description": "An example CakePHP application with a MySQL database. For more information about using this template, including OpenShift considerations, see https://github.com/openshift/cakephp-ex/blob/master/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.", "tags": "quickstart,php,cakephp", "iconClass": "icon-php" } }, "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/openshift/cake-ex/blob/master/README.md.", "labels": { "template": "cakephp-mysql-example" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${NAME}" }, "stringData" : { "databaseUser" : "${DATABASE_USER}", "databasePassword" : "${DATABASE_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${NAME}", "annotations": { "description": "Exposes and load balances the application pods", "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]" } }, "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" } }, "spec": { "source": { "type": "Git", "git": { "uri": "${SOURCE_REPOSITORY_URL}", "ref": "${SOURCE_REPOSITORY_REF}" }, "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", "name": "php:5.6" }, "env": [ { "name": "COMPOSER_MIRROR", "value": "${COMPOSER_MIRROR}" } ] } }, "output": { "to": { "kind": "ImageStreamTag", "name": "${NAME}:latest" } }, "triggers": [ { "type": "ImageChange" }, { "type": "ConfigChange" }, { "type": "GitHub", "github": { "secret": "${GITHUB_WEBHOOK_SECRET}" } } ] } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${NAME}", "annotations": { "description": "Defines how to deploy the application server" } }, "spec": { "strategy": { "type": "Recreate", "recreateParams": { "pre": { "failurePolicy": "Retry", "execNewPod": { "command": [ "./migrate-database.sh" ], "containerName": "cakephp-mysql-example" } } } }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "cakephp-mysql-example" ], "from": { "kind": "ImageStreamTag", "name": "${NAME}:latest" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${NAME}" }, "template": { "metadata": { "name": "${NAME}", "labels": { "name": "${NAME}" } }, "spec": { "containers": [ { "name": "cakephp-mysql-example", "image": " ", "ports": [ { "containerPort": 8080 } ], "readinessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 3, "httpGet": { "path": "/health.php", "port": 8080 } }, "livenessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 30, "httpGet": { "path": "/", "port": 8080 } }, "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" : { "name" : "${NAME}", "key" : "databaseUser" } } }, { "name": "DATABASE_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databasePassword" } } }, { "name": "CAKEPHP_SECRET_TOKEN", "value": "${CAKEPHP_SECRET_TOKEN}" }, { "name": "CAKEPHP_SECURITY_SALT", "value": "${CAKEPHP_SECURITY_SALT}" }, { "name": "CAKEPHP_SECURITY_CIPHER_SEED", "value": "${CAKEPHP_SECURITY_CIPHER_SEED}" }, { "name": "OPCACHE_REVALIDATE_FREQ", "value": "${OPCACHE_REVALIDATE_FREQ}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } } } ] } } } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "annotations": { "description": "Exposes the database server" } }, "spec": { "ports": [ { "name": "mysql", "port": 3306, "targetPort": 3306 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "annotations": { "description": "Defines how to deploy the database" } }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "mysql" ], "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", "name": "mysql:5.6" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "name": "${DATABASE_SERVICE_NAME}", "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "volumes": [ { "name": "data", "emptyDir": {} } ], "containers": [ { "name": "mysql", "image": " ", "ports": [ { "containerPort": 3306 } ], "volumeMounts": [ { "name": "data", "mountPath": "/var/lib/mysql/data" } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "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'" ] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 3306 } }, "env": [ { "name": "MYSQL_USER", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databaseUser" } } }, { "name": "MYSQL_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databasePassword" } } }, { "name": "MYSQL_DATABASE", "value": "${DATABASE_NAME}" } ], "resources": { "limits": { "memory": "${MEMORY_MYSQL_LIMIT}" } } } ] } } } } ], "parameters": [ { "name": "NAME", "displayName": "Name", "description": "The name assigned to all of the frontend objects defined in this template.", "required": true, "value": "cakephp-mysql-example" }, { "name": "NAMESPACE", "displayName": "Namespace", "description": "The OpenShift Namespace where the ImageStream resides.", "required": true, "value": "openshift" }, { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", "description": "Maximum amount of memory the CakePHP container can use.", "required": true, "value": "512Mi" }, { "name": "MEMORY_MYSQL_LIMIT", "displayName": "Memory Limit (MySQL)", "description": "Maximum amount of memory the MySQL container can use.", "required": true, "value": "512Mi" }, { "name": "SOURCE_REPOSITORY_URL", "displayName": "Git Repository URL", "description": "The URL of the repository with your application source code.", "required": true, "value": "https://github.com/openshift/cakephp-ex.git" }, { "name": "SOURCE_REPOSITORY_REF", "displayName": "Git Reference", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "CONTEXT_DIR", "displayName": "Context Directory", "description": "Set this to the relative path to your project if it is not in the root of your repository." }, { "name": "APPLICATION_DOMAIN", "displayName": "Application Hostname", "description": "The exposed hostname that will route to the CakePHP service, if left blank a value will be defaulted.", "value": "" }, { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", "description": "A secret string used to configure the GitHub webhook.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, { "name": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "required": true, "value": "mysql" }, { "name": "DATABASE_ENGINE", "displayName": "Database Engine", "description": "Database engine: postgresql, mysql or sqlite (default).", "required": true, "value": "mysql" }, { "name": "DATABASE_NAME", "displayName": "Database Name", "required": true, "value": "default" }, { "name": "DATABASE_USER", "displayName": "Database User", "required": true, "value": "cakephp" }, { "name": "DATABASE_PASSWORD", "displayName": "Database Password", "generate": "expression", "from": "[a-zA-Z0-9]{16}" }, { "name": "CAKEPHP_SECRET_TOKEN", "displayName": "CakePHP secret token", "description": "Set this to a long random string.", "generate": "expression", "from": "[\\w]{50}" }, { "name": "CAKEPHP_SECURITY_SALT", "displayName": "CakePHP Security Salt", "description": "Security salt for session hash.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, { "name": "CAKEPHP_SECURITY_CIPHER_SEED", "displayName": "CakePHP Security Cipher Seed", "description": "Security cipher seed for session hash.", "generate": "expression", "from": "[0-9]{30}" }, { "name": "OPCACHE_REVALIDATE_FREQ", "displayName": "OPcache Revalidation Frequency", "description": "How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request.", "value": "2" }, { "name": "COMPOSER_MIRROR", "displayName": "Custom Composer Mirror URL", "description": "The custom Composer mirror URL", "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 _examplesQuickstartsDancerMysqlJson = []byte(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "dancer-mysql-example", "annotations": { "openshift.io/display-name": "Dancer + MySQL (Ephemeral)", "description": "An example Dancer application with a MySQL database. For more information about using this template, including OpenShift considerations, see https://github.com/openshift/dancer-ex/blob/master/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.", "tags": "quickstart,perl,dancer", "iconClass": "icon-perl" } }, "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/openshift/dancer-ex/blob/master/README.md.", "labels": { "template": "dancer-mysql-example" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${NAME}" }, "stringData" : { "databaseUser" : "${DATABASE_USER}", "databasePassword" : "${DATABASE_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${NAME}", "annotations": { "description": "Exposes and load balances the application pods", "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]" } }, "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" } }, "spec": { "source": { "type": "Git", "git": { "uri": "${SOURCE_REPOSITORY_URL}", "ref": "${SOURCE_REPOSITORY_REF}" }, "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", "name": "perl:5.20" }, "env": [ { "name": "CPAN_MIRROR", "value": "${CPAN_MIRROR}" } ] } }, "output": { "to": { "kind": "ImageStreamTag", "name": "${NAME}:latest" } }, "triggers": [ { "type": "ImageChange" }, { "type": "ConfigChange" }, { "type": "GitHub", "github": { "secret": "${GITHUB_WEBHOOK_SECRET}" } } ], "postCommit": { "script": "perl -I extlib/lib/perl5 -I lib t/*" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${NAME}", "annotations": { "description": "Defines how to deploy the application server" } }, "spec": { "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "dancer-mysql-example" ], "from": { "kind": "ImageStreamTag", "name": "${NAME}:latest" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${NAME}" }, "template": { "metadata": { "name": "${NAME}", "labels": { "name": "${NAME}" } }, "spec": { "containers": [ { "name": "dancer-mysql-example", "image": " ", "ports": [ { "containerPort": 8080 } ], "readinessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 3, "httpGet": { "path": "/health", "port": 8080 } }, "livenessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 30, "httpGet": { "path": "/", "port": 8080 } }, "env": [ { "name": "DATABASE_SERVICE_NAME", "value": "${DATABASE_SERVICE_NAME}" }, { "name": "MYSQL_USER", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databaseUser" } } }, { "name": "MYSQL_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databasePassword" } } }, { "name": "MYSQL_DATABASE", "value": "${DATABASE_NAME}" }, { "name": "SECRET_KEY_BASE", "value": "${SECRET_KEY_BASE}" }, { "name": "PERL_APACHE2_RELOAD", "value": "${PERL_APACHE2_RELOAD}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } } } ] } } } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "annotations": { "description": "Exposes the database server" } }, "spec": { "ports": [ { "name": "mysql", "port": 3306, "targetPort": 3306 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "annotations": { "description": "Defines how to deploy the database" } }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "mysql" ], "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", "name": "mysql:5.6" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "name": "${DATABASE_SERVICE_NAME}", "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "volumes": [ { "name": "data", "emptyDir": {} } ], "containers": [ { "name": "mysql", "image": " ", "ports": [ { "containerPort": 3306 } ], "volumeMounts": [ { "name": "data", "mountPath": "/var/lib/mysql/data" } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "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'" ] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 3306 } }, "env": [ { "name": "MYSQL_USER", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databaseUser" } } }, { "name": "MYSQL_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databasePassword" } } }, { "name": "MYSQL_DATABASE", "value": "${DATABASE_NAME}" } ], "resources": { "limits": { "memory": "${MEMORY_MYSQL_LIMIT}" } } } ] } } } } ], "parameters": [ { "name": "NAME", "displayName": "Name", "description": "The name assigned to all of the frontend objects defined in this template.", "required": true, "value": "dancer-mysql-example" }, { "name": "NAMESPACE", "displayName": "Namespace", "description": "The OpenShift Namespace where the ImageStream resides.", "required": true, "value": "openshift" }, { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", "description": "Maximum amount of memory the Perl Dancer container can use.", "required": true, "value": "512Mi" }, { "name": "MEMORY_MYSQL_LIMIT", "displayName": "Memory Limit (MySQL)", "description": "Maximum amount of memory the MySQL container can use.", "required": true, "value": "512Mi" }, { "name": "SOURCE_REPOSITORY_URL", "displayName": "Git Repository URL", "description": "The URL of the repository with your application source code.", "required": true, "value": "https://github.com/openshift/dancer-ex.git" }, { "name": "SOURCE_REPOSITORY_REF", "displayName": "Git Reference", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "CONTEXT_DIR", "displayName": "Context Directory", "description": "Set this to the relative path to your project if it is not in the root of your repository." }, { "name": "APPLICATION_DOMAIN", "displayName": "Application Hostname", "description": "The exposed hostname that will route to the Dancer service, if left blank a value will be defaulted.", "value": "" }, { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", "description": "A secret string used to configure the GitHub webhook.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, { "name": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "required": true, "value": "database" }, { "name": "DATABASE_USER", "displayName": "Database Username", "generate": "expression", "from": "user[A-Z0-9]{3}" }, { "name": "DATABASE_PASSWORD", "displayName": "Database Password", "generate": "expression", "from": "[a-zA-Z0-9]{8}" }, { "name": "DATABASE_NAME", "displayName": "Database Name", "required": true, "value": "sampledb" }, { "name": "PERL_APACHE2_RELOAD", "displayName": "Perl Module Reload", "description": "Set this to \"true\" to enable automatic reloading of modified Perl modules.", "value": "" }, { "name": "SECRET_KEY_BASE", "displayName": "Secret Key", "description": "Your secret key for verifying the integrity of signed cookies.", "generate": "expression", "from": "[a-z0-9]{127}" }, { "name": "CPAN_MIRROR", "displayName": "Custom CPAN Mirror URL", "description": "The custom CPAN mirror URL", "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 _examplesQuickstartsDjangoPostgresqlJson = []byte(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "django-psql-example", "annotations": { "openshift.io/display-name": "Django + PostgreSQL (Ephemeral)", "description": "An example Django application with a PostgreSQL database. For more information about using this template, including OpenShift considerations, see https://github.com/openshift/django-ex/blob/master/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.", "tags": "quickstart,python,django", "iconClass": "icon-python" } }, "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/openshift/django-ex/blob/master/README.md.", "labels": { "template": "django-psql-example" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${NAME}" }, "stringData" : { "databaseUser" : "${DATABASE_USER}", "databasePassword" : "${DATABASE_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${NAME}", "annotations": { "description": "Exposes and load balances the application pods", "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]" } }, "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" } }, "spec": { "source": { "type": "Git", "git": { "uri": "${SOURCE_REPOSITORY_URL}", "ref": "${SOURCE_REPOSITORY_REF}" }, "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", "name": "python:3.5" }, "env": [ { "name": "PIP_INDEX_URL", "value": "${PIP_INDEX_URL}" } ] } }, "output": { "to": { "kind": "ImageStreamTag", "name": "${NAME}:latest" } }, "triggers": [ { "type": "ImageChange" }, { "type": "ConfigChange" }, { "type": "GitHub", "github": { "secret": "${GITHUB_WEBHOOK_SECRET}" } } ], "postCommit": { "script": "./manage.py test" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${NAME}", "annotations": { "description": "Defines how to deploy the application server" } }, "spec": { "strategy": { "type": "Rolling" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "django-psql-example" ], "from": { "kind": "ImageStreamTag", "name": "${NAME}:latest" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${NAME}" }, "template": { "metadata": { "name": "${NAME}", "labels": { "name": "${NAME}" } }, "spec": { "containers": [ { "name": "django-psql-example", "image": " ", "ports": [ { "containerPort": 8080 } ], "readinessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 3, "httpGet": { "path": "/health", "port": 8080 } }, "livenessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 30, "httpGet": { "path": "/health", "port": 8080 } }, "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" : { "name" : "${NAME}", "key" : "databaseUser" } } }, { "name": "DATABASE_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databasePassword" } } }, { "name": "APP_CONFIG", "value": "${APP_CONFIG}" }, { "name": "DJANGO_SECRET_KEY", "value": "${DJANGO_SECRET_KEY}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } } } ] } } } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "annotations": { "description": "Exposes the database server" } }, "spec": { "ports": [ { "name": "postgresql", "port": 5432, "targetPort": 5432 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "annotations": { "description": "Defines how to deploy the database" } }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "postgresql" ], "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", "name": "postgresql:9.5" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "name": "${DATABASE_SERVICE_NAME}", "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "volumes": [ { "name": "data", "emptyDir": {} } ], "containers": [ { "name": "postgresql", "image": " ", "ports": [ { "containerPort": 5432 } ], "env": [ { "name": "POSTGRESQL_USER", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databaseUser" } } }, { "name": "POSTGRESQL_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databasePassword" } } }, { "name": "POSTGRESQL_DATABASE", "value": "${DATABASE_NAME}" } ], "volumeMounts": [ { "name": "data", "mountPath": "/var/lib/pgsql/data" } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "exec": { "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U ${POSTGRESQL_USER} -q -d ${POSTGRESQL_DATABASE} -c 'SELECT 1'"] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 5432 } }, "resources": { "limits": { "memory": "${MEMORY_POSTGRESQL_LIMIT}" } } } ] } } } } ], "parameters": [ { "name": "NAME", "displayName": "Name", "description": "The name assigned to all of the frontend objects defined in this template.", "required": true, "value": "django-psql-example" }, { "name": "NAMESPACE", "displayName": "Namespace", "required": true, "description": "The OpenShift Namespace where the ImageStream resides.", "value": "openshift" }, { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", "required": true, "description": "Maximum amount of memory the Django container can use.", "value": "512Mi" }, { "name": "MEMORY_POSTGRESQL_LIMIT", "displayName": "Memory Limit (PostgreSQL)", "required": true, "description": "Maximum amount of memory the PostgreSQL container can use.", "value": "512Mi" }, { "name": "SOURCE_REPOSITORY_URL", "displayName": "Git Repository URL", "required": true, "description": "The URL of the repository with your application source code.", "value": "https://github.com/openshift/django-ex.git" }, { "name": "SOURCE_REPOSITORY_REF", "displayName": "Git Reference", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "CONTEXT_DIR", "displayName": "Context Directory", "description": "Set this to the relative path to your project if it is not in the root of your repository." }, { "name": "APPLICATION_DOMAIN", "displayName": "Application Hostname", "description": "The exposed hostname that will route to the Django service, if left blank a value will be defaulted.", "value": "" }, { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", "description": "A secret string used to configure the GitHub webhook.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, { "name": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "required": true, "value": "postgresql" }, { "name": "DATABASE_ENGINE", "displayName": "Database Engine", "required": true, "description": "Database engine: postgresql, mysql or sqlite (default).", "value": "postgresql" }, { "name": "DATABASE_NAME", "displayName": "Database Name", "required": true, "value": "default" }, { "name": "DATABASE_USER", "displayName": "Database Username", "required": true, "value": "django" }, { "name": "DATABASE_PASSWORD", "displayName": "Database User Password", "generate": "expression", "from": "[a-zA-Z0-9]{16}" }, { "name": "APP_CONFIG", "displayName": "Application Configuration File Path", "description": "Relative path to Gunicorn configuration file (optional)." }, { "name": "DJANGO_SECRET_KEY", "displayName": "Django Secret Key", "description": "Set this to a long random string.", "generate": "expression", "from": "[\\w]{50}" }, { "name": "PIP_INDEX_URL", "displayName": "Custom PyPi Index URL", "description": "The custom PyPi 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 _examplesQuickstartsNodejsMongodbJson = []byte(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "nodejs-mongodb-example", "annotations": { "openshift.io/display-name": "Node.js + MongoDB (Ephemeral)", "description": "An example Node.js application with a MongoDB database. For more information about using this template, including OpenShift considerations, see https://github.com/openshift/nodejs-ex/blob/master/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.", "tags": "quickstart,nodejs", "iconClass": "icon-nodejs" } }, "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/openshift/nodejs-ex/blob/master/README.md.", "labels": { "template": "nodejs-mongodb-example" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${NAME}" }, "stringData": { "databaseUser": "${DATABASE_USER}", "databasePassword": "${DATABASE_PASSWORD}", "databaseAdminPassword" : "${DATABASE_ADMIN_PASSWORD}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${NAME}", "annotations": { "description": "Exposes and load balances the application pods", "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]" } }, "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" } }, "spec": { "source": { "type": "Git", "git": { "uri": "${SOURCE_REPOSITORY_URL}", "ref": "${SOURCE_REPOSITORY_REF}" }, "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", "name": "nodejs:4" }, "env": [ { "name": "NPM_MIRROR", "value": "${NPM_MIRROR}" } ] } }, "output": { "to": { "kind": "ImageStreamTag", "name": "${NAME}:latest" } }, "triggers": [ { "type": "ImageChange" }, { "type": "ConfigChange" }, { "type": "GitHub", "github": { "secret": "${GITHUB_WEBHOOK_SECRET}" } }, { "type": "Generic", "generic": { "secret": "${GENERIC_WEBHOOK_SECRET}" } } ], "postCommit": { "script": "npm test" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${NAME}", "annotations": { "description": "Defines how to deploy the application server" } }, "spec": { "strategy": { "type": "Rolling" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "nodejs-mongodb-example" ], "from": { "kind": "ImageStreamTag", "name": "${NAME}:latest" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${NAME}" }, "template": { "metadata": { "name": "${NAME}", "labels": { "name": "${NAME}" } }, "spec": { "containers": [ { "name": "nodejs-mongodb-example", "image": " ", "ports": [ { "containerPort": 8080 } ], "env": [ { "name": "DATABASE_SERVICE_NAME", "value": "${DATABASE_SERVICE_NAME}" }, { "name": "MONGODB_USER", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databaseUser" } } }, { "name": "MONGODB_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databasePassword" } } }, { "name": "MONGODB_DATABASE", "value": "${DATABASE_NAME}" }, { "name": "MONGODB_ADMIN_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databaseAdminPassword" } } } ], "readinessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 3, "httpGet": { "path": "/pagecount", "port": 8080 } }, "livenessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 30, "httpGet": { "path": "/pagecount", "port": 8080 } }, "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } } } ] } } } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "annotations": { "description": "Exposes the database server" } }, "spec": { "ports": [ { "name": "mongodb", "port": 27017, "targetPort": 27017 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "annotations": { "description": "Defines how to deploy the database" } }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "mongodb" ], "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", "name": "mongodb:3.2" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "name": "${DATABASE_SERVICE_NAME}", "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "containers": [ { "name": "mongodb", "image": " ", "ports": [ { "containerPort": 27017 } ], "env": [ { "name": "MONGODB_USER", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databaseUser" } } }, { "name": "MONGODB_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databasePassword" } } }, { "name": "MONGODB_DATABASE", "value": "${DATABASE_NAME}" }, { "name": "MONGODB_ADMIN_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databaseAdminPassword" } } } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 3, "exec": { "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\"" ] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 27017 } }, "resources": { "limits": { "memory": "${MEMORY_MONGODB_LIMIT}" } }, "volumeMounts": [ { "name": "${DATABASE_SERVICE_NAME}-data", "mountPath": "/var/lib/mongodb/data" } ] } ], "volumes": [ { "name": "${DATABASE_SERVICE_NAME}-data", "emptyDir": { "medium": "" } } ] } } } } ], "parameters": [ { "name": "NAME", "displayName": "Name", "description": "The name assigned to all of the frontend objects defined in this template.", "required": true, "value": "nodejs-mongodb-example" }, { "name": "NAMESPACE", "displayName": "Namespace", "description": "The OpenShift Namespace where the ImageStream resides.", "required": true, "value": "openshift" }, { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", "description": "Maximum amount of memory the Node.js container can use.", "required": true, "value": "512Mi" }, { "name": "MEMORY_MONGODB_LIMIT", "displayName": "Memory Limit (MongoDB)", "description": "Maximum amount of memory the MongoDB container can use.", "required": true, "value": "512Mi" }, { "name": "SOURCE_REPOSITORY_URL", "displayName": "Git Repository URL", "description": "The URL of the repository with your application source code.", "required": true, "value": "https://github.com/openshift/nodejs-ex.git" }, { "name": "SOURCE_REPOSITORY_REF", "displayName": "Git Reference", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "CONTEXT_DIR", "displayName": "Context Directory", "description": "Set this to the relative path to your project if it is not in the root of your repository." }, { "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": "" }, { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", "description": "A secret string used to configure the GitHub webhook.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, { "name": "GENERIC_WEBHOOK_SECRET", "displayName": "Generic Webhook Secret", "description": "A secret string used to configure the Generic webhook.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, { "name": "DATABASE_SERVICE_NAME", "displayName": "Database Service Name", "required": true, "value": "mongodb" }, { "name": "DATABASE_USER", "displayName": "MongoDB Username", "description": "Username for MongoDB user that will be used for accessing the database.", "generate": "expression", "from": "user[A-Z0-9]{3}" }, { "name": "DATABASE_PASSWORD", "displayName": "MongoDB Password", "description": "Password for the MongoDB user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}" }, { "name": "DATABASE_NAME", "displayName": "Database Name", "required": true, "value": "sampledb" }, { "name": "DATABASE_ADMIN_PASSWORD", "displayName": "Database Administrator Password", "description": "Password for the database admin user.", "generate": "expression", "from": "[a-zA-Z0-9]{16}" }, { "name": "NPM_MIRROR", "displayName": "Custom NPM Mirror URL", "description": "The custom NPM mirror URL", "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 _examplesQuickstartsRailsPostgresqlJson = []byte(`{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "rails-postgresql-example", "annotations": { "openshift.io/display-name": "Rails + PostgreSQL (Ephemeral)", "description": "An example Rails application with a PostgreSQL database. For more information about using this template, including OpenShift considerations, see https://github.com/openshift/rails-ex/blob/master/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing.", "tags": "quickstart,ruby,rails", "iconClass": "icon-ruby" } }, "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/openshift/rails-ex/blob/master/README.md.", "labels": { "template": "rails-postgresql-example" }, "objects": [ { "kind": "Secret", "apiVersion": "v1", "metadata": { "name": "${NAME}" }, "stringData" : { "databaseUser" : "${DATABASE_USER}", "databasePassword" : "${DATABASE_PASSWORD}", "applicationUser" : "${APPLICATION_USER}", "applicationPassword" : "${APPLICATION_PASSWORD}", "keyBase" : "${SECRET_KEY_BASE}" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${NAME}", "annotations": { "description": "Exposes and load balances the application pods", "service.alpha.openshift.io/dependencies": "[{\"name\": \"${DATABASE_SERVICE_NAME}\", \"kind\": \"Service\"}]" } }, "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" } }, "spec": { "source": { "type": "Git", "git": { "uri": "${SOURCE_REPOSITORY_URL}", "ref": "${SOURCE_REPOSITORY_REF}" }, "contextDir": "${CONTEXT_DIR}" }, "strategy": { "type": "Source", "sourceStrategy": { "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", "name": "ruby:2.3" }, "env": [ { "name": "RUBYGEM_MIRROR", "value": "${RUBYGEM_MIRROR}" } ] } }, "output": { "to": { "kind": "ImageStreamTag", "name": "${NAME}:latest" } }, "triggers": [ { "type": "ImageChange" }, { "type": "ConfigChange" }, { "type": "GitHub", "github": { "secret": "${GITHUB_WEBHOOK_SECRET}" } } ], "postCommit": { "script": "bundle exec rake test" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${NAME}", "annotations": { "description": "Defines how to deploy the application server" } }, "spec": { "strategy": { "type": "Recreate", "recreateParams": { "pre": { "failurePolicy": "Abort", "execNewPod": { "command": [ "./migrate-database.sh" ], "containerName": "${NAME}" } } } }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "rails-postgresql-example" ], "from": { "kind": "ImageStreamTag", "name": "${NAME}:latest" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${NAME}" }, "template": { "metadata": { "name": "${NAME}", "labels": { "name": "${NAME}" } }, "spec": { "containers": [ { "name": "rails-postgresql-example", "image": " ", "ports": [ { "containerPort": 8080 } ], "readinessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 5, "httpGet": { "path": "/articles", "port": 8080 } }, "livenessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 10, "httpGet": { "path": "/articles", "port": 8080 } }, "env": [ { "name": "DATABASE_SERVICE_NAME", "value": "${DATABASE_SERVICE_NAME}" }, { "name": "POSTGRESQL_USER", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databaseUser" } } }, { "name": "POSTGRESQL_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "databasePassword" } } }, { "name": "POSTGRESQL_DATABASE", "value": "${DATABASE_NAME}" }, { "name": "SECRET_KEY_BASE", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "keyBase" } } }, { "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" : { "name" : "${NAME}", "key" : "applicationUser" } } }, { "name": "APPLICATION_PASSWORD", "valueFrom": { "secretKeyRef" : { "name" : "${NAME}", "key" : "applicationPassword" } } }, { "name": "RAILS_ENV", "value": "${RAILS_ENV}" } ], "resources": { "limits": { "memory": "${MEMORY_LIMIT}" } } } ] } } } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "annotations": { "description": "Exposes the database server" } }, "spec": { "ports": [ { "name": "postgresql", "port": 5432, "targetPort": 5432 } ], "selector": { "name": "${DATABASE_SERVICE_NAME}" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "${DATABASE_SERVICE_NAME}", "annotations": { "description": "Defines how to deploy the database" } }, "spec": { "strategy": { "type": "Recreate" }, "triggers": [ { "type": "ImageChange", "imageChangeParams": { "automatic": true, "containerNames": [ "postgresql" ], "from": { "kind": "ImageStreamTag", "namespace": "${NAMESPACE}", "name": "postgresql:9.5" } } }, { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "${DATABASE_SERVICE_NAME}" }, "template": { "metadata": { "name": "${DATABASE_SERVICE_NAME}", "labels": { "name": "${DATABASE_SERVICE_NAME}" } }, "spec": { "volumes": [ { "name": "data", "emptyDir": {} } ], "containers": [ { "name": "postgresql", "image": " ", "ports": [ { "containerPort": 5432 } ], "readinessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 5, "exec": { "command": [ "/bin/sh", "-i", "-c", "psql -h 127.0.0.1 -U ${POSTGRESQL_USER} -q -d ${POSTGRESQL_DATABASE} -c 'SELECT 1'"] } }, "livenessProbe": { "timeoutSeconds": 1, "initialDelaySeconds": 30, "tcpSocket": { "port": 5432 } }, "volumeMounts": [ { "name": "data", "mountPath": "/var/lib/pgsql/data" } ], "env": [ { "name": "POSTGRESQL_USER", "value": "${DATABASE_USER}" }, { "name": "POSTGRESQL_PASSWORD", "value": "${DATABASE_PASSWORD}" }, { "name": "POSTGRESQL_DATABASE", "value": "${DATABASE_NAME}" }, { "name": "POSTGRESQL_MAX_CONNECTIONS", "value": "${POSTGRESQL_MAX_CONNECTIONS}" }, { "name": "POSTGRESQL_SHARED_BUFFERS", "value": "${POSTGRESQL_SHARED_BUFFERS}" } ], "resources": { "limits": { "memory": "${MEMORY_POSTGRESQL_LIMIT}" } } } ] } } } } ], "parameters": [ { "name": "NAME", "displayName": "Name", "description": "The name assigned to all of the frontend objects defined in this template.", "required": true, "value": "rails-postgresql-example" }, { "name": "NAMESPACE", "displayName": "Namespace", "required": true, "description": "The OpenShift Namespace where the ImageStream resides.", "value": "openshift" }, { "name": "MEMORY_LIMIT", "displayName": "Memory Limit", "required": true, "description": "Maximum amount of memory the Rails container can use.", "value": "512Mi" }, { "name": "MEMORY_POSTGRESQL_LIMIT", "displayName": "Memory Limit (PostgreSQL)", "required": true, "description": "Maximum amount of memory the PostgreSQL container can use.", "value": "512Mi" }, { "name": "SOURCE_REPOSITORY_URL", "displayName": "Git Repository URL", "required": true, "description": "The URL of the repository with your application source code.", "value": "https://github.com/openshift/rails-ex.git" }, { "name": "SOURCE_REPOSITORY_REF", "displayName": "Git Reference", "description": "Set this to a branch name, tag or other ref of your repository if you are not using the default branch." }, { "name": "CONTEXT_DIR", "displayName": "Context Directory", "description": "Set this to the relative path to your project if it is not in the root of your repository." }, { "name": "APPLICATION_DOMAIN", "displayName": "Application Hostname", "description": "The exposed hostname that will route to the Rails service, if left blank a value will be defaulted.", "value": "" }, { "name": "GITHUB_WEBHOOK_SECRET", "displayName": "GitHub Webhook Secret", "description": "A secret string used to configure the GitHub webhook.", "generate": "expression", "from": "[a-zA-Z0-9]{40}" }, { "name": "SECRET_KEY_BASE", "displayName": "Secret Key", "description": "Your secret key for verifying the integrity of signed cookies.", "generate": "expression", "from": "[a-z0-9]{127}" }, { "name": "APPLICATION_USER", "displayName": "Application Username", "required": true, "description": "The application user that is used within the sample application to authorize access on pages.", "value": "openshift" }, { "name": "APPLICATION_PASSWORD", "displayName": "Application Password", "required": true, "description": "The application password that is used within the sample application to authorize access on pages.", "value": "secret" }, { "name": "RAILS_ENV", "displayName": "Rails Environment", "required": true, "description": "Environment under which the sample application will run. Could be set to production, development or test.", "value": "production" }, { "name": "DATABASE_SERVICE_NAME", "required": true, "displayName": "Database Service Name", "value": "postgresql" }, { "name": "DATABASE_USER", "displayName": "Database Username", "generate": "expression", "from": "user[A-Z0-9]{3}" }, { "name": "DATABASE_PASSWORD", "displayName": "Database Password", "generate": "expression", "from": "[a-zA-Z0-9]{8}" }, { "name": "DATABASE_NAME", "required": true, "displayName": "Database Name", "value": "root" }, { "name": "POSTGRESQL_MAX_CONNECTIONS", "displayName": "Maximum Database Connections", "value": "100" }, { "name": "POSTGRESQL_SHARED_BUFFERS", "displayName": "Shared Buffer Amount", "value": "12MB" }, { "name": "RUBYGEM_MIRROR", "displayName": "Custom RubyGems Mirror URL", "description": "The custom RubyGems mirror URL", "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 _examplesLoggingLoggingDeployerYaml = []byte(`apiVersion: "v1" kind: "List" items: - apiVersion: "v1" kind: "Template" metadata: name: logging-deployer-account-template annotations: description: "Template for creating the deployer account and roles needed for the aggregated logging deployer. Create as cluster-admin." tags: "infrastructure" objects: - apiVersion: v1 kind: ServiceAccount name: logging-deployer metadata: name: logging-deployer labels: logging-infra: deployer provider: openshift component: deployer - apiVersion: v1 kind: ServiceAccount metadata: name: aggregated-logging-kibana - apiVersion: v1 kind: ServiceAccount metadata: name: aggregated-logging-elasticsearch - apiVersion: v1 kind: ServiceAccount metadata: name: aggregated-logging-fluentd - apiVersion: v1 kind: ServiceAccount metadata: name: aggregated-logging-curator - apiVersion: v1 kind: ClusterRole metadata: name: oauth-editor rules: - resources: - oauthclients verbs: - create - delete - apiVersion: v1 kind: ClusterRole metadata: name: daemonset-admin rules: - resources: - daemonsets apiGroups: - extensions verbs: - create - get - list - watch - delete - update - apiVersion: v1 kind: RoleBinding metadata: name: logging-deployer-edit-role roleRef: kind: ClusterRole name: edit subjects: - kind: ServiceAccount name: logging-deployer - apiVersion: v1 kind: RoleBinding metadata: name: logging-deployer-dsadmin-role roleRef: kind: ClusterRole name: daemonset-admin subjects: - kind: ServiceAccount name: logging-deployer - apiVersion: "v1" kind: "Template" metadata: name: logging-deployer-template annotations: description: "Template for running the aggregated logging deployer in a pod. Requires empowered 'logging-deployer' service account." tags: "infrastructure" labels: logging-infra: deployer provider: openshift objects: - apiVersion: v1 kind: Pod metadata: generateName: logging-deployer- spec: containers: - image: ${IMAGE_PREFIX}logging-deployment:${IMAGE_VERSION} imagePullPolicy: Always name: deployer volumeMounts: - name: empty mountPath: /etc/deploy env: - name: PROJECT valueFrom: fieldRef: fieldPath: metadata.namespace - name: IMAGE_PREFIX value: ${IMAGE_PREFIX} - name: IMAGE_VERSION value: ${IMAGE_VERSION} - name: IMAGE_PULL_SECRET value: ${IMAGE_PULL_SECRET} - name: INSECURE_REGISTRY value: ${INSECURE_REGISTRY} - name: ENABLE_OPS_CLUSTER value: ${ENABLE_OPS_CLUSTER} - name: KIBANA_HOSTNAME value: ${KIBANA_HOSTNAME} - name: KIBANA_OPS_HOSTNAME value: ${KIBANA_OPS_HOSTNAME} - name: PUBLIC_MASTER_URL value: ${PUBLIC_MASTER_URL} - name: MASTER_URL value: ${MASTER_URL} - name: ES_INSTANCE_RAM value: ${ES_INSTANCE_RAM} - name: ES_PVC_SIZE value: ${ES_PVC_SIZE} - name: ES_PVC_PREFIX value: ${ES_PVC_PREFIX} - name: ES_PVC_DYNAMIC value: ${ES_PVC_DYNAMIC} - name: ES_CLUSTER_SIZE value: ${ES_CLUSTER_SIZE} - name: ES_NODE_QUORUM value: ${ES_NODE_QUORUM} - name: ES_RECOVER_AFTER_NODES value: ${ES_RECOVER_AFTER_NODES} - name: ES_RECOVER_EXPECTED_NODES value: ${ES_RECOVER_EXPECTED_NODES} - name: ES_RECOVER_AFTER_TIME value: ${ES_RECOVER_AFTER_TIME} - name: ES_OPS_INSTANCE_RAM value: ${ES_OPS_INSTANCE_RAM} - name: ES_OPS_PVC_SIZE value: ${ES_OPS_PVC_SIZE} - name: ES_OPS_PVC_PREFIX value: ${ES_OPS_PVC_PREFIX} - name: ES_OPS_PVC_DYNAMIC value: ${ES_OPS_PVC_DYNAMIC} - name: ES_OPS_CLUSTER_SIZE value: ${ES_OPS_CLUSTER_SIZE} - name: ES_OPS_NODE_QUORUM value: ${ES_OPS_NODE_QUORUM} - name: ES_OPS_RECOVER_AFTER_NODES value: ${ES_OPS_RECOVER_AFTER_NODES} - name: ES_OPS_RECOVER_EXPECTED_NODES value: ${ES_OPS_RECOVER_EXPECTED_NODES} - name: ES_OPS_RECOVER_AFTER_TIME value: ${ES_OPS_RECOVER_AFTER_TIME} - name: FLUENTD_NODESELECTOR value: ${FLUENTD_NODESELECTOR} - name: ES_NODESELECTOR value: ${ES_NODESELECTOR} - name: ES_OPS_NODESELECTOR value: ${ES_OPS_NODESELECTOR} - name: KIBANA_NODESELECTOR value: ${KIBANA_NODESELECTOR} - name: KIBANA_OPS_NODESELECTOR value: ${KIBANA_OPS_NODESELECTOR} - name: CURATOR_NODESELECTOR value: ${CURATOR_NODESELECTOR} - name: CURATOR_OPS_NODESELECTOR value: ${CURATOR_OPS_NODESELECTOR} - name: MODE value: ${MODE} dnsPolicy: ClusterFirst restartPolicy: Never serviceAccount: logging-deployer volumes: - name: empty emptyDir: {} parameters: - description: "The mode that the deployer runs in." name: MODE value: "install" - description: 'Specify prefix for logging components; e.g. for "openshift/origin-logging-deployer:v1.1", set prefix "openshift/origin-"' name: IMAGE_PREFIX value: "docker.io/openshift/origin-" - description: 'Specify version for logging components; e.g. for "openshift/origin-logging-deployer:v1.1", set version "v1.1"' name: IMAGE_VERSION value: "latest" - description: "(Deprecated) Specify the name of an existing pull secret to be used for pulling component images from an authenticated registry." name: IMAGE_PULL_SECRET - description: "(Deprecated) Allow the registry for logging component images to be non-secure (not secured with a certificate signed by a known CA)" name: INSECURE_REGISTRY value: "false" - description: "(Deprecated) If true, set up to use a second ES cluster for ops logs." name: ENABLE_OPS_CLUSTER value: "false" - description: "(Deprecated) External hostname where clients will reach kibana" name: KIBANA_HOSTNAME value: "kibana.example.com" - description: "(Deprecated) External hostname at which admins will visit the ops Kibana." name: KIBANA_OPS_HOSTNAME value: kibana-ops.example.com - description: "(Deprecated) External URL for the master, for OAuth purposes" name: PUBLIC_MASTER_URL value: "https://localhost:8443" - description: "(Deprecated) Internal URL for the master, for authentication retrieval" name: MASTER_URL value: "https://kubernetes.default.svc.cluster.local" - description: "(Deprecated) How many instances of ElasticSearch to deploy." name: ES_CLUSTER_SIZE value: "1" - description: "(Deprecated) Amount of RAM to reserve per ElasticSearch instance." name: ES_INSTANCE_RAM value: "8G" - description: "(Deprecated) Size of the PersistentVolumeClaim to create per ElasticSearch instance, e.g. 100G. If empty, no PVCs will be created and emptyDir volumes are used instead." name: ES_PVC_SIZE - description: "(Deprecated) Prefix for the names of PersistentVolumeClaims to be created; a number will be appended per instance. If they don't already exist, they will be created with size ES_PVC_SIZE." name: ES_PVC_PREFIX value: "logging-es-" - description: '(Deprecated) Set to "true" to request dynamic provisioning (if enabled for your cluster) of a PersistentVolume for the ES PVC. ' name: ES_PVC_DYNAMIC - description: "(Deprecated) Number of nodes required to elect a master (ES minimum_master_nodes). By default, derived from ES_CLUSTER_SIZE / 2 + 1." name: ES_NODE_QUORUM - description: "(Deprecated) Number of nodes required to be present before the cluster will recover from a full restart. By default, one fewer than ES_CLUSTER_SIZE." name: ES_RECOVER_AFTER_NODES - description: "(Deprecated) Number of nodes desired to be present before the cluster will recover from a full restart. By default, ES_CLUSTER_SIZE." name: ES_RECOVER_EXPECTED_NODES - description: "(Deprecated) Timeout for *expected* nodes to be present when cluster is recovering from a full restart." name: ES_RECOVER_AFTER_TIME value: "5m" - description: "(Deprecated) How many ops instances of ElasticSearch to deploy. By default, ES_CLUSTER_SIZE." name: ES_OPS_CLUSTER_SIZE - description: "(Deprecated) Amount of RAM to reserve per ops ElasticSearch instance." name: ES_OPS_INSTANCE_RAM value: "8G" - description: "(Deprecated) Size of the PersistentVolumeClaim to create per ElasticSearch ops instance, e.g. 100G. If empty, no PVCs will be created and emptyDir volumes are used instead." name: ES_OPS_PVC_SIZE - description: "(Deprecated) Prefix for the names of PersistentVolumeClaims to be created; a number will be appended per instance. If they don't already exist, they will be created with size ES_OPS_PVC_SIZE." name: ES_OPS_PVC_PREFIX value: "logging-es-ops-" - description: '(Deprecated) Set to "true" to request dynamic provisioning (if enabled for your cluster) of a PersistentVolume for the ES ops PVC. ' name: ES_OPS_PVC_DYNAMIC - description: "(Deprecated) Number of ops nodes required to elect a master (ES minimum_master_nodes). By default, derived from ES_CLUSTER_SIZE / 2 + 1." name: ES_OPS_NODE_QUORUM - description: "(Deprecated) Number of ops nodes required to be present before the cluster will recover from a full restart. By default, one fewer than ES_OPS_CLUSTER_SIZE." name: ES_OPS_RECOVER_AFTER_NODES - description: "(Deprecated) Number of ops nodes desired to be present before the cluster will recover from a full restart. By default, ES_OPS_CLUSTER_SIZE." name: ES_OPS_RECOVER_EXPECTED_NODES - description: "(Deprecated) Timeout for *expected* ops nodes to be present when cluster is recovering from a full restart." name: ES_OPS_RECOVER_AFTER_TIME value: "5m" - description: "(Deprecated) The nodeSelector used for the Fluentd DaemonSet." name: FLUENTD_NODESELECTOR value: "logging-infra-fluentd=true" - description: "(Deprecated) Node selector Elasticsearch cluster (label=value)." name: ES_NODESELECTOR value: "" - description: "(Deprecated) Node selector Elasticsearch operations cluster (label=value)." name: ES_OPS_NODESELECTOR value: "" - description: "(Deprecated) Node selector Kibana cluster (label=value)." name: KIBANA_NODESELECTOR value: "" - description: "(Deprecated) Node selector Kibana operations cluster (label=value)." name: KIBANA_OPS_NODESELECTOR value: "" - description: "(Deprecated) Node selector Curator (label=value)." name: CURATOR_NODESELECTOR value: "" - description: "(Deprecated) Node selector operations Curator (label=value)." name: CURATOR_OPS_NODESELECTOR value: "" `) func examplesLoggingLoggingDeployerYamlBytes() ([]byte, error) { return _examplesLoggingLoggingDeployerYaml, nil } func examplesLoggingLoggingDeployerYaml() (*asset, error) { bytes, err := examplesLoggingLoggingDeployerYamlBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "examples/logging/logging-deployer.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} a := &asset{bytes: bytes, info: info} return a, nil } var _pkgImageAdmissionImagepolicyApiV1DefaultPolicyYaml = []byte(`kind: ImagePolicyConfig apiVersion: v1 # To require that all images running on the platform be imported first, you may uncomment the # following rule. Any image that refers to a registry outside of OpenShift will be rejected unless it # unless it points directly to an image digest (myregistry.com/myrepo/image@sha256:ea83bcf...) and that # digest has been imported via the import-image flow. #resolveImages: Required executionRules: - name: execution-denied # Reject all images that have the annotation images.openshift.io/deny-execution set to true. # This annotation may be set by infrastructure that wishes to flag particular images as dangerous onResources: - resource: pods - resource: builds reject: true matchImageAnnotations: - key: images.openshift.io/deny-execution value: "true" skipOnResolutionFailure: true `) func pkgImageAdmissionImagepolicyApiV1DefaultPolicyYamlBytes() ([]byte, error) { return _pkgImageAdmissionImagepolicyApiV1DefaultPolicyYaml, nil } func pkgImageAdmissionImagepolicyApiV1DefaultPolicyYaml() (*asset, error) { bytes, err := pkgImageAdmissionImagepolicyApiV1DefaultPolicyYamlBytes() if err != nil { return nil, err } info := bindataFileInfo{name: "pkg/image/admission/imagepolicy/api/v1/default-policy.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){ "examples/image-streams/image-streams-centos7.json": examplesImageStreamsImageStreamsCentos7Json, "examples/image-streams/image-streams-rhel7.json": examplesImageStreamsImageStreamsRhel7Json, "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/jenkins/jenkins-ephemeral-template.json": examplesJenkinsJenkinsEphemeralTemplateJson, "examples/jenkins/jenkins-persistent-template.json": examplesJenkinsJenkinsPersistentTemplateJson, "examples/jenkins/pipeline/bluegreen-pipeline.yaml": examplesJenkinsPipelineBluegreenPipelineYaml, "examples/jenkins/pipeline/mapsapp-pipeline.yaml": examplesJenkinsPipelineMapsappPipelineYaml, "examples/jenkins/pipeline/maven-pipeline.yaml": examplesJenkinsPipelineMavenPipelineYaml, "examples/jenkins/pipeline/samplepipeline.yaml": examplesJenkinsPipelineSamplepipelineYaml, "examples/quickstarts/cakephp-mysql.json": examplesQuickstartsCakephpMysqlJson, "examples/quickstarts/dancer-mysql.json": examplesQuickstartsDancerMysqlJson, "examples/quickstarts/django-postgresql.json": examplesQuickstartsDjangoPostgresqlJson, "examples/quickstarts/nodejs-mongodb.json": examplesQuickstartsNodejsMongodbJson, "examples/quickstarts/rails-postgresql.json": examplesQuickstartsRailsPostgresqlJson, "examples/logging/logging-deployer.yaml": examplesLoggingLoggingDeployerYaml, "pkg/image/admission/imagepolicy/api/v1/default-policy.yaml": pkgImageAdmissionImagepolicyApiV1DefaultPolicyYaml, } // 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{ }}, }}, "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{ "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{ }}, "mapsapp-pipeline.yaml": &bintree{examplesJenkinsPipelineMapsappPipelineYaml, map[string]*bintree{ }}, "maven-pipeline.yaml": &bintree{examplesJenkinsPipelineMavenPipelineYaml, map[string]*bintree{ }}, "samplepipeline.yaml": &bintree{examplesJenkinsPipelineSamplepipelineYaml, map[string]*bintree{ }}, }}, }}, "logging": &bintree{nil, map[string]*bintree{ "logging-deployer.yaml": &bintree{examplesLoggingLoggingDeployerYaml, map[string]*bintree{ }}, }}, "quickstarts": &bintree{nil, map[string]*bintree{ "cakephp-mysql.json": &bintree{examplesQuickstartsCakephpMysqlJson, map[string]*bintree{ }}, "dancer-mysql.json": &bintree{examplesQuickstartsDancerMysqlJson, map[string]*bintree{ }}, "django-postgresql.json": &bintree{examplesQuickstartsDjangoPostgresqlJson, map[string]*bintree{ }}, "nodejs-mongodb.json": &bintree{examplesQuickstartsNodejsMongodbJson, map[string]*bintree{ }}, "rails-postgresql.json": &bintree{examplesQuickstartsRailsPostgresqlJson, map[string]*bintree{ }}, }}, }}, "pkg": &bintree{nil, map[string]*bintree{ "image": &bintree{nil, map[string]*bintree{ "admission": &bintree{nil, map[string]*bintree{ "imagepolicy": &bintree{nil, map[string]*bintree{ "api": &bintree{nil, map[string]*bintree{ "v1": &bintree{nil, map[string]*bintree{ "default-policy.yaml": &bintree{pkgImageAdmissionImagepolicyApiV1DefaultPolicyYaml, 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, "/")...)...) }