diff options
| author | Scott Dodson <sdodson@redhat.com> | 2017-02-06 13:03:35 -0500 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-02-06 13:03:35 -0500 | 
| commit | acdedc802b051252a93e40a5a19112674e338bd1 (patch) | |
| tree | 80aa20909c2b2ab34ad50b5d38b4ee486e3c7cbd /roles | |
| parent | 7593c93d4c8d8e5eb22e866fa87208611f0c4bf6 (diff) | |
| parent | bb931a7d4971def3304bb1c664e0d20681b83ebd (diff) | |
| download | openshift-acdedc802b051252a93e40a5a19112674e338bd1.tar.gz openshift-acdedc802b051252a93e40a5a19112674e338bd1.tar.bz2 openshift-acdedc802b051252a93e40a5a19112674e338bd1.tar.xz openshift-acdedc802b051252a93e40a5a19112674e338bd1.zip | |
Merge pull request #3265 from sdodson/image-stream-sync
Update v1.4 content
Diffstat (limited to 'roles')
19 files changed, 2922 insertions, 105 deletions
| diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-ephemeral-template.json index 8b8fcb58b..c38d2680b 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-ephemeral-template.json @@ -196,7 +196,8 @@        "name": "MEMORY_LIMIT",        "displayName": "Memory Limit",        "description": "Maximum amount of memory the container can use.", -      "value": "512Mi" +      "value": "512Mi", +      "required": true      },      {        "name": "NAMESPACE", diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-persistent-template.json index 72d3a8556..e8853d8ff 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mongodb-persistent-template.json @@ -213,7 +213,8 @@        "name": "MEMORY_LIMIT",        "displayName": "Memory Limit",        "description": "Maximum amount of memory the container can use.", -      "value": "512Mi" +      "value": "512Mi", +      "required": true      },      {        "name": "NAMESPACE", diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-ephemeral-template.json index 34dd2ed78..f7bcfe2ed 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-ephemeral-template.json @@ -196,7 +196,8 @@        "name": "MEMORY_LIMIT",        "displayName": "Memory Limit",        "description": "Maximum amount of memory the container can use.", -      "value": "512Mi" +      "value": "512Mi", +      "required": true      },      {        "name": "NAMESPACE", diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-ephemeral-template.json index 0d0a2a629..64d5e2b32 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-ephemeral-template.json @@ -11,7 +11,7 @@        "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.", +  "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${POSTGRESQL_USER}\n       Password: ${POSTGRESQL_PASSWORD}\n  Database Name: ${POSTGRESQL_DATABASE}\n Connection URL: postgresql://${DATABASE_SERVICE_NAME}:5432/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/9.5.",    "labels": {      "template": "postgresql-ephemeral-template"    }, @@ -186,7 +186,8 @@        "name": "MEMORY_LIMIT",        "displayName": "Memory Limit",        "description": "Maximum amount of memory the container can use.", -      "value": "512Mi" +      "value": "512Mi", +      "required": true      },      {        "name": "NAMESPACE", diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-persistent-template.json index 257726cfd..6c101f9d2 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/postgresql-persistent-template.json @@ -11,7 +11,7 @@        "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.", +  "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${POSTGRESQL_USER}\n       Password: ${POSTGRESQL_PASSWORD}\n  Database Name: ${POSTGRESQL_DATABASE}\n Connection URL: postgresql://${DATABASE_SERVICE_NAME}:5432/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/master/9.5.",    "labels": {      "template": "postgresql-persistent-template"    }, @@ -203,7 +203,8 @@        "name": "MEMORY_LIMIT",        "displayName": "Memory Limit",        "description": "Maximum amount of memory the container can use.", -      "value": "512Mi" +      "value": "512Mi", +      "required": true      },      {        "name": "NAMESPACE", diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/redis-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/redis-ephemeral-template.json index c9ae8a539..b97e1fd29 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/redis-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/redis-ephemeral-template.json @@ -157,7 +157,8 @@        "name": "MEMORY_LIMIT",        "displayName": "Memory Limit",        "description": "Maximum amount of memory the container can use.", -      "value": "512Mi" +      "value": "512Mi", +      "required": true      },      {        "name": "NAMESPACE", diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/redis-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/redis-persistent-template.json index e9db9ec9d..dc167da41 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/redis-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/redis-persistent-template.json @@ -174,7 +174,8 @@        "name": "MEMORY_LIMIT",        "displayName": "Memory Limit",        "description": "Maximum amount of memory the container can use.", -      "value": "512Mi" +      "value": "512Mi", +      "required": true      },      {        "name": "NAMESPACE", diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/README.md b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/README.md index 62765e03d..f48d8d4a8 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/README.md +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/README.md @@ -12,10 +12,15 @@ reference and supply your forked repository as the source-repository when  instantiating them.  * [CakePHP](https://raw.githubusercontent.com/openshift/cakephp-ex/master/openshift/templates/cakephp-mysql.json) - Provides a basic CakePHP application with a MySQL database. For more information see the [source repository](https://github.com/openshift/cakephp-ex). +* [CakePHP persistent](https://raw.githubusercontent.com/openshift/cakephp-ex/master/openshift/templates/cakephp-mysql-persistent.json) - Provides a basic CakePHP application with a persistent MySQL database. Note: requires available persistent volumes.  For more information see the [source repository](https://github.com/openshift/cakephp-ex).  * [Dancer](https://raw.githubusercontent.com/openshift/dancer-ex/master/openshift/templates/dancer-mysql.json) - Provides a basic Dancer (Perl) application with a MySQL database. For more information see the [source repository](https://github.com/openshift/dancer-ex). +* [Dancer persistent](https://raw.githubusercontent.com/openshift/dancer-ex/master/openshift/templates/dancer-mysql-persistent.json) - Provides a basic Dancer (Perl) application with a persistent MySQL database. Note: requires available persistent volumes.  For more information see the [source repository](https://github.com/openshift/dancer-ex).  * [Django](https://raw.githubusercontent.com/openshift/django-ex/master/openshift/templates/django-postgresql.json) - Provides a basic Django (Python) application with a PostgreSQL database. For more information see the [source repository](https://github.com/openshift/django-ex). +* [Django persistent](https://raw.githubusercontent.com/openshift/django-ex/master/openshift/templates/django-postgresql-persistent.json) - Provides a basic Django (Python) application with a persistent PostgreSQL database. Note: requires available persistent volumes.  For more information see the [source repository](https://github.com/openshift/django-ex).  * [NodeJS](https://raw.githubusercontent.com/openshift/nodejs-ex/master/openshift/templates/nodejs-mongodb.json) - Provides a basic NodeJS application with a MongoDB database. For more information see the [source repository](https://github.com/openshift/nodejs-ex). +* [NodeJS persistent](https://raw.githubusercontent.com/openshift/nodejs-ex/master/openshift/templates/nodejs-mongodb-persistent.json) - Provides a basic NodeJS application with a persistent MongoDB database. Note: requires available persistent volumes.  For more information see the [source repository](https://github.com/openshift/nodejs-ex).  * [Rails](https://raw.githubusercontent.com/openshift/rails-ex/master/openshift/templates/rails-postgresql.json) - Provides a basic Rails (Ruby) application with a PostgreSQL database. For more information see the [source repository](https://github.com/openshift/rails-ex). +* [Rails persistent](https://raw.githubusercontent.com/openshift/rails-ex/master/openshift/templates/rails-postgresql-persistent.json) - Provides a basic Rails (Ruby) application with a persistent PostgreSQL database. Note: requires available persistent volumes.  For more information see the [source repository](https://github.com/openshift/rails-ex).  Note: This file is processed by `hack/update-external-examples.sh`. New examples  must follow the exact syntax of the existing entries. Files in this directory diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql-persistent.json new file mode 100644 index 000000000..0ba57864e --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql-persistent.json @@ -0,0 +1,575 @@ +{ +  "kind": "Template", +  "apiVersion": "v1", +  "metadata": { +    "name": "cakephp-mysql-persistent", +    "annotations": { +      "openshift.io/display-name": "CakePHP + MySQL (Persistent)", +      "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.", +      "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-persistent" +  }, +  "objects": [ +    { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${NAME}" +      }, +      "stringData" : { +        "database-user" : "${DATABASE_USER}", +        "database-password" : "${DATABASE_PASSWORD}", +        "cakephp-secret-token" : "${CAKEPHP_SECRET_TOKEN}", +        "cakephp-security-salt" : "${CAKEPHP_SECURITY_SALT}", +        "cakephp-security-cipher-seed" : "${CAKEPHP_SECURITY_CIPHER_SEED}" +      } +    }, +    { +      "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:7.0" +            }, +            "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-persistent" +              } +            } +          } +        }, +        "triggers": [ +          { +            "type": "ImageChange", +            "imageChangeParams": { +              "automatic": true, +              "containerNames": [ +                "cakephp-mysql-persistent" +              ], +              "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-persistent", +                "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" : "database-user" +                      } +                    } +                  }, +                  { +                    "name": "DATABASE_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "name": "CAKEPHP_SECRET_TOKEN", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "cakephp-secret-token" +                      } +                    } +                  }, +                  { +                    "name": "CAKEPHP_SECURITY_SALT", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "cakephp-security-salt" +                      } +                    } +                  }, +                  { +                    "name": "CAKEPHP_SECURITY_CIPHER_SEED", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "cakephp-security-cipher-seed" +                      } +                    } +                  }, +                  { +                    "name": "OPCACHE_REVALIDATE_FREQ", +                    "value": "${OPCACHE_REVALIDATE_FREQ}" +                  } +                ], +                "resources": { +                  "limits": { +                    "memory": "${MEMORY_LIMIT}" +                  } +                } +              } +            ] +          } +        } +      } +    }, +    { +      "kind": "PersistentVolumeClaim", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "spec": { +        "accessModes": [ +          "ReadWriteOnce" +        ], +        "resources": { +          "requests": { +            "storage": "${VOLUME_CAPACITY}" +          } +        } +      } +    }, +    { +      "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.7" +              } +            } +          }, +          { +            "type": "ConfigChange" +          } +        ], +        "replicas": 1, +        "selector": { +          "name": "${DATABASE_SERVICE_NAME}" +        }, +        "template": { +          "metadata": { +            "name": "${DATABASE_SERVICE_NAME}", +            "labels": { +              "name": "${DATABASE_SERVICE_NAME}" +            } +          }, +          "spec": { +            "volumes": [ +              { +                "name": "${DATABASE_SERVICE_NAME}-data", +                "persistentVolumeClaim": { +                  "claimName": "${DATABASE_SERVICE_NAME}" +                } +              } +            ], +            "containers": [ +              { +                "name": "mysql", +                "image": " ", +                "ports": [ +                  { +                    "containerPort": 3306 +                  } +                ], +                "volumeMounts": [ +                  { +                    "name": "${DATABASE_SERVICE_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" : "database-user" +                      } +                    } +                  }, +                  { +                    "name": "MYSQL_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "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-persistent" +    }, +    { +      "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": "VOLUME_CAPACITY", +      "displayName": "Volume Capacity", +      "description": "Volume space available for data, e.g. 512Mi, 2Gi", +      "value": "1Gi", +      "required": true +    }, +    { +      "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": "" +    } +  ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql.json index 9dbbf89d1..9732e59e1 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/cakephp-mysql.json @@ -22,8 +22,11 @@          "name": "${NAME}"        },        "stringData" : { -        "databaseUser" : "${DATABASE_USER}", -        "databasePassword" : "${DATABASE_PASSWORD}" +        "database-user" : "${DATABASE_USER}", +        "database-password" : "${DATABASE_PASSWORD}", +        "cakephp-secret-token" : "${CAKEPHP_SECRET_TOKEN}", +        "cakephp-security-salt" : "${CAKEPHP_SECURITY_SALT}", +        "cakephp-security-cipher-seed" : "${CAKEPHP_SECURITY_CIPHER_SEED}"        }      },      { @@ -97,12 +100,12 @@              "from": {                "kind": "ImageStreamTag",                "namespace": "${NAMESPACE}", -              "name": "php:5.6" +              "name": "php:7.0"              },              "env":  [                { -                  "name": "COMPOSER_MIRROR", -                  "value": "${COMPOSER_MIRROR}" +                "name": "COMPOSER_MIRROR", +                "value": "${COMPOSER_MIRROR}"                }              ]            } @@ -201,12 +204,12 @@                    }                  },                  "livenessProbe": { -                    "timeoutSeconds": 3, -                    "initialDelaySeconds": 30, -                    "httpGet": { -                        "path": "/", -                        "port": 8080 -                    } +                  "timeoutSeconds": 3, +                  "initialDelaySeconds": 30, +                  "httpGet": { +                    "path": "/", +                    "port": 8080 +                  }                  },                  "env": [                    { @@ -226,7 +229,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databaseUser" +                        "key" : "database-user"                        }                      }                    }, @@ -235,21 +238,36 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databasePassword" +                        "key" : "database-password"                        }                      }                    },                    {                      "name": "CAKEPHP_SECRET_TOKEN", -                    "value": "${CAKEPHP_SECRET_TOKEN}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "cakephp-secret-token" +                      } +                    }                    },                    {                      "name": "CAKEPHP_SECURITY_SALT", -                    "value": "${CAKEPHP_SECURITY_SALT}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "cakephp-security-salt" +                      } +                    }                    },                    {                      "name": "CAKEPHP_SECURITY_CIPHER_SEED", -                    "value": "${CAKEPHP_SECURITY_CIPHER_SEED}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "cakephp-security-cipher-seed" +                      } +                    }                    },                    {                      "name": "OPCACHE_REVALIDATE_FREQ", @@ -257,9 +275,9 @@                    }                  ],                  "resources": { -		    "limits": { -			"memory": "${MEMORY_LIMIT}" -		    } +                  "limits": { +                    "memory": "${MEMORY_LIMIT}" +                  }                  }                }              ] @@ -313,7 +331,7 @@                "from": {                  "kind": "ImageStreamTag",                  "namespace": "${NAMESPACE}", -                "name": "mysql:5.6" +                "name": "mysql:5.7"                }              }            }, @@ -362,40 +380,40 @@                    }                  },                  "livenessProbe": { -                    "timeoutSeconds": 1, -                    "initialDelaySeconds": 30, -                    "tcpSocket": { -                        "port": 3306 -                    } +                  "timeoutSeconds": 1, +                  "initialDelaySeconds": 30, +                  "tcpSocket": { +                    "port": 3306 +                  }                  },                  "env": [ -                    { -                      "name": "MYSQL_USER", -                      "valueFrom": { -                        "secretKeyRef" : { -                          "name" : "${NAME}", -                          "key" : "databaseUser" -                        } +                  { +                    "name": "MYSQL_USER", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-user" +                      } +                    } +                  }, +                  { +                    "name": "MYSQL_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-password"                        } -                    }, -                    { -                      "name": "MYSQL_PASSWORD", -                      "valueFrom": { -                        "secretKeyRef" : { -                          "name" : "${NAME}", -                          "key" : "databasePassword" -                          } -                        } -                    }, -                    { -                        "name": "MYSQL_DATABASE", -                        "value": "${DATABASE_NAME}"                      } +                  }, +                  { +                    "name": "MYSQL_DATABASE", +                    "value": "${DATABASE_NAME}" +                  }                  ],                  "resources": { -                    "limits": { -                        "memory": "${MEMORY_MYSQL_LIMIT}" -                    } +                  "limits": { +                    "memory": "${MEMORY_MYSQL_LIMIT}" +                  }                  }                }              ] diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql-persistent.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql-persistent.json new file mode 100644 index 000000000..074561550 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql-persistent.json @@ -0,0 +1,519 @@ +{ +  "kind": "Template", +  "apiVersion": "v1", +  "metadata": { +    "name": "dancer-mysql-persistent", +    "annotations": { +      "openshift.io/display-name": "Dancer + MySQL (Persistent)", +      "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.", +      "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-persistent" +  }, +  "objects": [ +    { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${NAME}" +      }, +      "stringData" : { +        "database-user" : "${DATABASE_USER}", +        "database-password" : "${DATABASE_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": "perl:5.24" +            }, +            "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-persistent" +              ], +              "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-persistent", +                "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" : "database-user" +                      } +                    } +                  }, +                  { +                    "name": "MYSQL_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "name": "MYSQL_DATABASE", +                    "value": "${DATABASE_NAME}" +                  }, +                  { +                    "name": "SECRET_KEY_BASE", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "keybase" +                      } +                    } +                  }, +                  { +                    "name": "PERL_APACHE2_RELOAD", +                    "value": "${PERL_APACHE2_RELOAD}" +                  } +                ], +                "resources": { +                  "limits": { +                    "memory": "${MEMORY_LIMIT}" +                  } +                } +              } +            ] +          } +        } +      } +    }, +    { +      "kind": "PersistentVolumeClaim", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "spec": { +        "accessModes": [ +          "ReadWriteOnce" +        ], +        "resources": { +          "requests": { +            "storage": "${VOLUME_CAPACITY}" +          } +        } +      } +    }, +    { +      "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.7" +              } +            } +          }, +          { +            "type": "ConfigChange" +          } +        ], +        "replicas": 1, +        "selector": { +          "name": "${DATABASE_SERVICE_NAME}" +        }, +        "template": { +          "metadata": { +            "name": "${DATABASE_SERVICE_NAME}", +            "labels": { +              "name": "${DATABASE_SERVICE_NAME}" +            } +          }, +          "spec": { +            "volumes": [ +              { +                "name": "${DATABASE_SERVICE_NAME}-data", +                "persistentVolumeClaim": { +                  "claimName": "${DATABASE_SERVICE_NAME}" +                } +              } +            ], +            "containers": [ +              { +                "name": "mysql", +                "image": " ", +                "ports": [ +                  { +                    "containerPort": 3306 +                  } +                ], +                "volumeMounts": [ +                  { +                    "name": "${DATABASE_SERVICE_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" : "database-user" +                      } +                    } +                  }, +                  { +                    "name": "MYSQL_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                      "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-persistent" +    }, +    { +      "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": "VOLUME_CAPACITY", +      "displayName": "Volume Capacity", +      "description": "Volume space available for data, e.g. 512Mi, 2Gi", +      "value": "1Gi", +      "required": true +    }, +    { +      "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": "" +    } +  ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql.json index dccb8bf7f..18100974b 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/dancer-mysql.json @@ -22,8 +22,9 @@          "name": "${NAME}"        },        "stringData" : { -        "databaseUser" : "${DATABASE_USER}", -        "databasePassword" : "${DATABASE_PASSWORD}" +        "database-user" : "${DATABASE_USER}", +        "database-password" : "${DATABASE_PASSWORD}", +        "keybase" : "${SECRET_KEY_BASE}"        }      },      { @@ -97,7 +98,7 @@              "from": {                "kind": "ImageStreamTag",                "namespace": "${NAMESPACE}", -              "name": "perl:5.20" +              "name": "perl:5.24"              },              "env":  [                { @@ -207,7 +208,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databaseUser" +                        "key" : "database-user"                        }                      }                    }, @@ -216,7 +217,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databasePassword" +                        "key" : "database-password"                        }                      }                    }, @@ -226,7 +227,12 @@                    },                    {                      "name": "SECRET_KEY_BASE", -                    "value": "${SECRET_KEY_BASE}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "keybase" +                      } +                    }                    },                    {                      "name": "PERL_APACHE2_RELOAD", @@ -290,7 +296,7 @@                "from": {                  "kind": "ImageStreamTag",                  "namespace": "${NAMESPACE}", -                "name": "mysql:5.6" +                "name": "mysql:5.7"                }              }            }, @@ -351,7 +357,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databaseUser" +                        "key" : "database-user"                        }                      }                    }, @@ -360,7 +366,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databasePassword" +                        "key" : "database-password"                        }                      }                    }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql-persistent.json new file mode 100644 index 000000000..b39771bd8 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql-persistent.json @@ -0,0 +1,532 @@ +{ +  "kind": "Template", +  "apiVersion": "v1", +  "metadata": { +    "name": "django-psql-persistent", +    "annotations": { +      "openshift.io/display-name": "Django + PostgreSQL (Persistent)", +      "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.", +      "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-persistent" +  }, +  "objects": [ +    { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${NAME}" +      }, +      "stringData" : { +        "database-user" : "${DATABASE_USER}", +        "database-password" : "${DATABASE_PASSWORD}", +        "django-secret-key" : "${DJANGO_SECRET_KEY}" +      } +    }, +    { +      "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-persistent" +              ], +              "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-persistent", +                "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" : "database-user" +                      } +                    } +                  }, +                  { +                    "name": "DATABASE_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "name": "APP_CONFIG", +                    "value": "${APP_CONFIG}" +                  }, +                  { +                    "name": "DJANGO_SECRET_KEY", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "django-secret-key" +                      } +                    } +                  } +                ], +                "resources": { +                  "limits": { +                    "memory": "${MEMORY_LIMIT}" +                  } +                } +              } +            ] +          } +        } +      } +    }, +    { +      "kind": "PersistentVolumeClaim", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "spec": { +        "accessModes": [ +          "ReadWriteOnce" +        ], +        "resources": { +          "requests": { +            "storage": "${VOLUME_CAPACITY}" +          } +        } +      } +    }, +    { +      "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": "${DATABASE_SERVICE_NAME}-data", +                "persistentVolumeClaim": { +                  "claimName": "${DATABASE_SERVICE_NAME}" +                } +              } +            ], +            "containers": [ +              { +                "name": "postgresql", +                "image": " ", +                "ports": [ +                  { +                    "containerPort": 5432 +                  } +                ], +                "env": [ +                  { +                    "name": "POSTGRESQL_USER", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-user" +                      } +                    } +                  }, +                  { +                    "name": "POSTGRESQL_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "name": "POSTGRESQL_DATABASE", +                    "value": "${DATABASE_NAME}" +                  } +                ], +                "volumeMounts": [ +                  { +                    "name": "${DATABASE_SERVICE_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-persistent" +    }, +    { +      "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": "VOLUME_CAPACITY", +      "displayName": "Volume Capacity", +      "description": "Volume space available for data, e.g. 512Mi, 2Gi", +      "value": "1Gi", +      "required": true +    }, +    { +      "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": "" +    } +  ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql.json index 59ff8a988..64b914e61 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/django-postgresql.json @@ -22,8 +22,9 @@          "name": "${NAME}"        },        "stringData" : { -        "databaseUser" : "${DATABASE_USER}", -        "databasePassword" : "${DATABASE_PASSWORD}" +        "database-user" : "${DATABASE_USER}", +        "database-password" : "${DATABASE_PASSWORD}", +        "django-secret-key" : "${DJANGO_SECRET_KEY}"        }      },      { @@ -218,7 +219,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databaseUser" +                        "key" : "database-user"                        }                      }                    }, @@ -227,7 +228,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databasePassword" +                        "key" : "database-password"                        }                      }                    }, @@ -237,7 +238,12 @@                    },                    {                      "name": "DJANGO_SECRET_KEY", -                    "value": "${DJANGO_SECRET_KEY}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "django-secret-key" +                      } +                    }                    }                  ],                  "resources": { @@ -338,7 +344,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databaseUser" +                        "key" : "database-user"                        }                      }                    }, @@ -347,7 +353,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databasePassword" +                        "key" : "database-password"                        }                      }                    }, diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb-persistent.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb-persistent.json new file mode 100644 index 000000000..fecb84662 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb-persistent.json @@ -0,0 +1,541 @@ +{ +  "kind": "Template", +  "apiVersion": "v1", +  "metadata": { +    "name": "nodejs-mongo-persistent", +    "annotations": { +      "openshift.io/display-name": "Node.js + MongoDB (Persistent)", +      "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.", +      "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-mongo-persistent" +  }, +  "objects": [ +    { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${NAME}" +      }, +      "stringData": { +        "database-user": "${DATABASE_USER}", +        "database-password": "${DATABASE_PASSWORD}", +        "database-admin-password" : "${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-mongo-persistent" +              ], +              "from": { +                "kind": "ImageStreamTag", +                "name": "${NAME}:latest" +              } +            } +          }, +          { +            "type": "ConfigChange" +          } +        ], +        "replicas": 1, +        "selector": { +          "name": "${NAME}" +        }, +        "template": { +          "metadata": { +            "name": "${NAME}", +            "labels": { +              "name": "${NAME}" +            } +          }, +          "spec": { +            "containers": [ +              { +                "name": "nodejs-mongo-persistent", +                "image": " ", +                "ports": [ +                  { +                    "containerPort": 8080 +                  } +                ], +                "env": [ +                  { +                    "name": "DATABASE_SERVICE_NAME", +                    "value": "${DATABASE_SERVICE_NAME}" +                  }, +                  { +                    "name": "MONGODB_USER", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-user" +                      } +                    } +                  }, +                  { +                    "name": "MONGODB_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "name": "MONGODB_DATABASE", +                    "value": "${DATABASE_NAME}" +                  }, +                  { +                    "name": "MONGODB_ADMIN_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-admin-password" +                      } +                    } +                  } +                ], +                "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": "PersistentVolumeClaim", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "spec": { +        "accessModes": [ +          "ReadWriteOnce" +        ], +        "resources": { +          "requests": { +            "storage": "${VOLUME_CAPACITY}" +          } +        } +      } +    }, +    { +      "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" : "database-user" +                      } +                    } +                  }, +                  { +                    "name": "MONGODB_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "name": "MONGODB_DATABASE", +                    "value": "${DATABASE_NAME}" +                  }, +                  { +                    "name": "MONGODB_ADMIN_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-admin-password" +                      } +                    } +                  } +                ], +                "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", +                "persistentVolumeClaim": { +                  "claimName": "${DATABASE_SERVICE_NAME}" +                } +              } +            ] +          } +        } +      } +    } +  ], +  "parameters": [ +    { +      "name": "NAME", +      "displayName": "Name", +      "description": "The name assigned to all of the frontend objects defined in this template.", +      "required": true, +      "value": "nodejs-mongo-persistent" +    }, +    { +      "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": "VOLUME_CAPACITY", +      "displayName": "Volume Capacity", +      "description": "Volume space available for data, e.g. 512Mi, 2Gi", +      "value": "1Gi", +      "required": true +    }, +    { +      "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": "" +    } +  ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb.json index 91f9ec7b3..6a55f0251 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/nodejs-mongodb.json @@ -22,9 +22,9 @@          "name": "${NAME}"        },        "stringData": { -        "databaseUser": "${DATABASE_USER}", -        "databasePassword": "${DATABASE_PASSWORD}", -        "databaseAdminPassword" : "${DATABASE_ADMIN_PASSWORD}" +        "database-user": "${DATABASE_USER}", +        "database-password": "${DATABASE_PASSWORD}", +        "database-admin-password" : "${DATABASE_ADMIN_PASSWORD}"        }      },      { @@ -201,7 +201,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databaseUser" +                        "key" : "database-user"                        }                      }                    }, @@ -210,7 +210,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databasePassword" +                        "key" : "database-password"                        }                      }                    }, @@ -223,7 +223,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databaseAdminPassword" +                        "key" : "database-admin-password"                        }                      }                    } @@ -336,7 +336,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databaseUser" +                        "key" : "database-user"                        }                      }                    }, @@ -345,7 +345,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databasePassword" +                        "key" : "database-password"                        }                      }                    }, @@ -358,7 +358,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databaseAdminPassword" +                        "key" : "database-admin-password"                        }                      }                    } diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql-persistent.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql-persistent.json new file mode 100644 index 000000000..6c0a484b5 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql-persistent.json @@ -0,0 +1,598 @@ +{ +  "kind": "Template", +  "apiVersion": "v1", +  "metadata": { +    "name": "rails-pgsql-persistent", +    "annotations": { +      "openshift.io/display-name": "Rails + PostgreSQL (Persistent)", +      "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.", +      "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-pgsql-persistent" +  }, +  "objects": [ +    { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${NAME}" +      }, +      "stringData" : { +        "database-user" : "${DATABASE_USER}", +        "database-password" : "${DATABASE_PASSWORD}", +        "application-user" : "${APPLICATION_USER}", +        "application-password" : "${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-pgsql-persistent" +              ], +              "from": { +                "kind": "ImageStreamTag", +                "name": "${NAME}:latest" +              } +            } +          }, +          { +            "type": "ConfigChange" +          } +        ], +        "replicas": 1, +        "selector": { +          "name": "${NAME}" +        }, +        "template": { +          "metadata": { +            "name": "${NAME}", +            "labels": { +              "name": "${NAME}" +            } +          }, +          "spec": { +            "containers": [ +              { +                "name": "rails-pgsql-persistent", +                "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" : "database-user" +                      } +                    } +                  }, +                  { +                    "name": "POSTGRESQL_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "name": "SECRET_KEY_BASE", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "keybase" +                      } +                    } +                  }, +                  { +                    "name": "POSTGRESQL_DATABASE", +                    "value": "${DATABASE_NAME}" +                  }, +                  { +                    "name": "POSTGRESQL_MAX_CONNECTIONS", +                    "value": "${POSTGRESQL_MAX_CONNECTIONS}" +                  }, +                  { +                    "name": "POSTGRESQL_SHARED_BUFFERS", +                    "value": "${POSTGRESQL_SHARED_BUFFERS}" +                  }, +                  { +                    "name": "APPLICATION_DOMAIN", +                    "value": "${APPLICATION_DOMAIN}" +                  }, +                  { +                    "name": "APPLICATION_USER", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "application-user" +                      } +                    } +                  }, +                  { +                    "name": "APPLICATION_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "application-password" +                      } +                    } +                  }, +                  { +                    "name": "RAILS_ENV", +                    "value": "${RAILS_ENV}" +                  } +                ], +                "resources": { +                  "limits": { +                    "memory": "${MEMORY_LIMIT}" +                  } +                } +              } +            ] +          } +        } +      } +    }, +    { +      "kind": "PersistentVolumeClaim", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "spec": { +        "accessModes": [ +          "ReadWriteOnce" +        ], +        "resources": { +          "requests": { +            "storage": "${VOLUME_CAPACITY}" +          } +        } +      } +    }, +    { +      "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": "${DATABASE_SERVICE_NAME}-data", +                "persistentVolumeClaim": { +                  "claimName": "${DATABASE_SERVICE_NAME}" +                } +              } +            ], +            "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": "${DATABASE_SERVICE_NAME}-data", +                    "mountPath": "/var/lib/pgsql/data" +                  } +                ], +                "env": [ +                  { +                    "name": "POSTGRESQL_USER", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-user" +                      } +                    } +                  }, +                  { +                    "name": "POSTGRESQL_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "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-pgsql-persistent" +    }, +    { +      "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": "VOLUME_CAPACITY", +      "displayName": "Volume Capacity", +      "description": "Volume space available for data, e.g. 512Mi, 2Gi", +      "value": "1Gi", +      "required": true +    }, +    { +      "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": "" +    } +  ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql.json index 6373562c4..043554c79 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/rails-postgresql.json @@ -22,11 +22,11 @@          "name": "${NAME}"        },        "stringData" : { -        "databaseUser" : "${DATABASE_USER}", -        "databasePassword" : "${DATABASE_PASSWORD}", -        "applicationUser" : "${APPLICATION_USER}", -        "applicationPassword" : "${APPLICATION_PASSWORD}", -        "keyBase" : "${SECRET_KEY_BASE}" +        "database-user" : "${DATABASE_USER}", +        "database-password" : "${DATABASE_PASSWORD}", +        "application-user" : "${APPLICATION_USER}", +        "application-password" : "${APPLICATION_PASSWORD}", +        "keybase" : "${SECRET_KEY_BASE}"        }      },      { @@ -104,8 +104,8 @@              },              "env": [                { -                  "name": "RUBYGEM_MIRROR", -                  "value": "${RUBYGEM_MIRROR}" +                "name": "RUBYGEM_MIRROR", +                "value": "${RUBYGEM_MIRROR}"                }              ]            } @@ -148,7 +148,7 @@          "strategy": {            "type": "Recreate",            "recreateParams": { -          "pre": { +            "pre": {                "failurePolicy": "Abort",                "execNewPod": {                  "command": [ @@ -224,7 +224,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databaseUser" +                        "key" : "database-user"                        }                      }                    }, @@ -233,7 +233,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "databasePassword" +                        "key" : "database-password"                        }                      }                    }, @@ -246,7 +246,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "keyBase" +                        "key" : "keybase"                        }                      }                    }, @@ -267,7 +267,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "applicationUser" +                        "key" : "application-user"                        }                      }                    }, @@ -276,7 +276,7 @@                      "valueFrom": {                        "secretKeyRef" : {                          "name" : "${NAME}", -                        "key" : "applicationPassword" +                        "key" : "application-password"                        }                      }                    }, @@ -286,9 +286,9 @@                    }                  ],                  "resources": { -		      "limits": { -			  "memory": "${MEMORY_LIMIT}" -		      } +                  "limits": { +                    "memory": "${MEMORY_LIMIT}" +                  }                  }                }              ] @@ -400,11 +400,21 @@                  "env": [                    {                      "name": "POSTGRESQL_USER", -                    "value": "${DATABASE_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-user" +                      } +                    }                    },                    {                      "name": "POSTGRESQL_PASSWORD", -                    "value": "${DATABASE_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "database-password" +                      } +                    }                    },                    {                      "name": "POSTGRESQL_DATABASE", @@ -420,9 +430,9 @@                    }                  ],                  "resources": { -		      "limits": { -			  "memory": "${MEMORY_POSTGRESQL_LIMIT}" -		      } +                  "limits": { +                    "memory": "${MEMORY_POSTGRESQL_LIMIT}" +                  }                  }                }              ] diff --git a/roles/openshift_hosted_templates/files/v1.4/enterprise/registry-console.yaml b/roles/openshift_hosted_templates/files/v1.4/enterprise/registry-console.yaml index 11478263c..0e3d006a7 100644 --- a/roles/openshift_hosted_templates/files/v1.4/enterprise/registry-console.yaml +++ b/roles/openshift_hosted_templates/files/v1.4/enterprise/registry-console.yaml @@ -103,9 +103,9 @@ parameters:    - description: 'Specify "registry/repository" prefix for container image; e.g. for "registry.access.redhat.com/openshift3/registry-console:latest", set prefix "registry.access.redhat.com/openshift3/"'      name: IMAGE_PREFIX      value: "registry.access.redhat.com/openshift3/" -  - description: 'Specify image version; e.g. for "registry.access.redhat.com/openshift3/registry-console:3.3", set version "3.3"' +  - description: 'Specify image version; e.g. for "registry.access.redhat.com/openshift3/registry-console:3.4", set version "3.4"'      name: IMAGE_VERSION -    value: "3.3" +    value: "3.4"    - description: "The public URL for the Openshift OAuth Provider, e.g. https://openshift.example.com:8443"      name: OPENSHIFT_OAUTH_PROVIDER_URL      required: true | 
