diff options
21 files changed, 1259 insertions, 111 deletions
diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-ephemeral-template.json index 8e43bfbc3..cfbfc3e20 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-ephemeral-template.json @@ -16,6 +16,18 @@    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "stringData" : { +        "database-user" : "${MYSQL_USER}", +        "database-password" : "${MYSQL_PASSWORD}", +        "database-root-password" : "${MYSQL_ROOT_PASSWORD}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -100,11 +112,30 @@                  "env": [                    {                      "name": "MYSQL_USER", -                    "value": "${MYSQL_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-user" +                      } +                    }                    },                    {                      "name": "MYSQL_PASSWORD", -                    "value": "${MYSQL_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "name": "MYSQL_ROOT_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-root-password" +                      } +                    }                    },                    {                      "name": "MYSQL_DATABASE", @@ -176,6 +207,14 @@        "required": true      },      { +      "name": "MYSQL_ROOT_PASSWORD", +      "displayName": "MariaDB root Password", +      "description": "Password for the MariaDB root user.", +      "generate": "expression", +      "from": "[a-zA-Z0-9]{16}", +      "required": true +    }, +    {        "name": "MYSQL_DATABASE",        "displayName": "MariaDB Database Name",        "description": "Name of the MariaDB database accessed.", diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-persistent-template.json index bc85277a9..e933eecf0 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mariadb-persistent-template.json @@ -16,6 +16,18 @@    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "stringData" : { +        "database-user" : "${MYSQL_USER}", +        "database-password" : "${MYSQL_PASSWORD}", +        "database-root-password" : "${MYSQL_ROOT_PASSWORD}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -117,11 +129,30 @@                  "env": [                    {                      "name": "MYSQL_USER", -                    "value": "${MYSQL_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-user" +                      } +                    }                    },                    {                      "name": "MYSQL_PASSWORD", -                    "value": "${MYSQL_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "name": "MYSQL_ROOT_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-root-password" +                      } +                    }                    },                    {                      "name": "MYSQL_DATABASE", @@ -193,6 +224,14 @@        "required": true      },      { +      "name": "MYSQL_ROOT_PASSWORD", +      "displayName": "MariaDB root Password", +      "description": "Password for the MariaDB root user.", +      "generate": "expression", +      "from": "[a-zA-Z0-9]{16}", +      "required": true +    }, +    {        "name": "MYSQL_DATABASE",        "displayName": "MariaDB Database Name",        "description": "Name of the MariaDB database accessed.", 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 605601ef2..8b8fcb58b 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 @@ -17,6 +17,18 @@    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "stringData" : { +        "database-user" : "${MONGODB_USER}", +        "database-password" : "${MONGODB_PASSWORD}", +        "database-admin-password" : "${MONGODB_ADMIN_PASSWORD}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -113,19 +125,34 @@                  "env": [                    {                      "name": "MONGODB_USER", -                    "value": "${MONGODB_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-user" +                      } +                    }                    },                    {                      "name": "MONGODB_PASSWORD", -                    "value": "${MONGODB_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-password" +                      } +                    }                    },                    { -                    "name": "MONGODB_DATABASE", -                    "value": "${MONGODB_DATABASE}" +                    "name": "MONGODB_ADMIN_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-admin-password" +                      } +                    }                    },                    { -                    "name": "MONGODB_ADMIN_PASSWORD", -                    "value": "${MONGODB_ADMIN_PASSWORD}" +                    "name": "MONGODB_DATABASE", +                    "value": "${MONGODB_DATABASE}"                    }                  ],                  "resources": { 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 d2a0d01f0..72d3a8556 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 @@ -17,6 +17,18 @@    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "stringData" : { +        "database-user" : "${MONGODB_USER}", +        "database-password" : "${MONGODB_PASSWORD}", +        "database-admin-password" : "${MONGODB_ADMIN_PASSWORD}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -130,19 +142,34 @@                  "env": [                    {                      "name": "MONGODB_USER", -                    "value": "${MONGODB_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-user" +                      } +                    }                    },                    {                      "name": "MONGODB_PASSWORD", -                    "value": "${MONGODB_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-password" +                      } +                    }                    },                    { -                    "name": "MONGODB_DATABASE", -                    "value": "${MONGODB_DATABASE}" +                    "name": "MONGODB_ADMIN_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-admin-password" +                      } +                    }                    },                    { -                    "name": "MONGODB_ADMIN_PASSWORD", -                    "value": "${MONGODB_ADMIN_PASSWORD}" +                    "name": "MONGODB_DATABASE", +                    "value": "${MONGODB_DATABASE}"                    }                  ],                  "resources": { 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 0cea42f8b..34dd2ed78 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 @@ -5,16 +5,28 @@      "name": "mysql-ephemeral",      "annotations": {        "openshift.io/display-name": "MySQL (Ephemeral)", -      "description": "MySQL database service, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.6/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing", +      "description": "MySQL database service, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.7/README.md.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing",        "iconClass": "icon-mysql-database",        "tags": "database,mysql"      }    }, -  "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${MYSQL_USER}\n       Password: ${MYSQL_PASSWORD}\n  Database Name: ${MYSQL_DATABASE}\n Connection URL: mysql://${DATABASE_SERVICE_NAME}:3306/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.6/README.md.", +  "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${MYSQL_USER}\n       Password: ${MYSQL_PASSWORD}\n  Database Name: ${MYSQL_DATABASE}\n Connection URL: mysql://${DATABASE_SERVICE_NAME}:3306/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.7/README.md.",    "labels": {      "template": "mysql-ephemeral-template"    },    "objects": [ +   { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "stringData" : { +        "database-user" : "${MYSQL_USER}", +        "database-password" : "${MYSQL_PASSWORD}", +        "database-root-password" : "${MYSQL_ROOT_PASSWORD}" +      } +    },      {        "kind": "Service",        "apiVersion": "v1", @@ -113,11 +125,30 @@                  "env": [                    {                      "name": "MYSQL_USER", -                    "value": "${MYSQL_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-user" +                      } +                    }                    },                    {                      "name": "MYSQL_PASSWORD", -                    "value": "${MYSQL_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "name": "MYSQL_ROOT_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-root-password" +                      } +                    }                    },                    {                      "name": "MYSQL_DATABASE", @@ -197,6 +228,14 @@        "required": true      },      { +      "name": "MYSQL_ROOT_PASSWORD", +      "displayName": "MySQL root user Password", +      "description": "Password for the MySQL root user.", +      "generate": "expression", +      "from": "[a-zA-Z0-9]{16}", +      "required": true +    }, +    {        "name": "MYSQL_DATABASE",        "displayName": "MySQL Database Name",        "description": "Name of the MySQL database accessed.", @@ -206,8 +245,8 @@      {        "name": "MYSQL_VERSION",        "displayName": "Version of MySQL Image", -      "description": "Version of MySQL image to be used (5.5, 5.6 or latest).", -      "value": "5.6", +      "description": "Version of MySQL image to be used (5.5, 5.6, 5.7, or latest).", +      "value": "5.7",        "required": true      }    ] diff --git a/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-persistent-template.json index fc7cd7d09..85c48da01 100644 --- a/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/mysql-persistent-template.json @@ -5,17 +5,29 @@      "name": "mysql-persistent",      "annotations": {        "openshift.io/display-name": "MySQL (Persistent)", -      "description": "MySQL database service, with persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.6/README.md.\n\nNOTE: Scaling to more than one replica is not supported. You must have persistent volumes available in your cluster to use this template.", +      "description": "MySQL database service, with persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.7/README.md.\n\nNOTE: Scaling to more than one replica is not supported. You must have persistent volumes available in your cluster to use this template.",        "iconClass": "icon-mysql-database",        "tags": "database,mysql"      }    }, -  "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${MYSQL_USER}\n       Password: ${MYSQL_PASSWORD}\n  Database Name: ${MYSQL_DATABASE}\n Connection URL: mysql://${DATABASE_SERVICE_NAME}:3306/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.6/README.md.", +  "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Username: ${MYSQL_USER}\n       Password: ${MYSQL_PASSWORD}\n  Database Name: ${MYSQL_DATABASE}\n Connection URL: mysql://${DATABASE_SERVICE_NAME}:3306/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.7/README.md.",    "labels": {      "template": "mysql-persistent-template"    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "stringData" : { +        "database-user" : "${MYSQL_USER}", +        "database-password" : "${MYSQL_PASSWORD}", +        "database-root-password" : "${MYSQL_ROOT_PASSWORD}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -117,11 +129,30 @@                  "env": [                    {                      "name": "MYSQL_USER", -                    "value": "${MYSQL_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-user" +                      } +                    }                    },                    {                      "name": "MYSQL_PASSWORD", -                    "value": "${MYSQL_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-password" +                      } +                    } +                  }, +                  { +                    "name": "MYSQL_ROOT_PASSWORD", +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-root-password" +                      } +                    }                    },                    {                      "name": "MYSQL_DATABASE", @@ -193,6 +224,14 @@        "required": true      },      { +      "name": "MYSQL_ROOT_PASSWORD", +      "displayName": "MySQL root user Password", +      "description": "Password for the MySQL root user.", +      "generate": "expression", +      "from": "[a-zA-Z0-9]{16}", +      "required": true +    }, +    {        "name": "MYSQL_DATABASE",        "displayName": "MySQL Database Name",        "description": "Name of the MySQL database accessed.", @@ -209,8 +248,8 @@      {        "name": "MYSQL_VERSION",        "displayName": "Version of MySQL Image", -      "description": "Version of MySQL image to be used (5.5, 5.6 or latest).", -      "value": "5.6", +      "description": "Version of MySQL image to be used (5.5, 5.6, 5.7, or latest).", +      "value": "5.7",        "required": true      }    ] 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 505224b62..0d0a2a629 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 @@ -17,6 +17,17 @@    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "stringData" : { +        "database-user" : "${POSTGRESQL_USER}", +        "database-password" : "${POSTGRESQL_PASSWORD}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -113,11 +124,21 @@                  "env": [                    {                      "name": "POSTGRESQL_USER", -                    "value": "${POSTGRESQL_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-user" +                      } +                    }                    },                    {                      "name": "POSTGRESQL_PASSWORD", -                    "value": "${POSTGRESQL_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-password" +                      } +                    }                    },                    {                      "name": "POSTGRESQL_DATABASE", 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 7ff49782b..257726cfd 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 @@ -17,6 +17,17 @@    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "stringData" : { +        "database-user" : "${POSTGRESQL_USER}", +        "database-password" : "${POSTGRESQL_PASSWORD}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -130,11 +141,21 @@                  "env": [                    {                      "name": "POSTGRESQL_USER", -                    "value": "${POSTGRESQL_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-user" +                      } +                    }                    },                    {                      "name": "POSTGRESQL_PASSWORD", -                    "value": "${POSTGRESQL_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${DATABASE_SERVICE_NAME}", +                        "key" : "database-password" +                      } +                    }                    },                    {                      "name": "POSTGRESQL_DATABASE", 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 new file mode 100644 index 000000000..c9ae8a539 --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/redis-ephemeral-template.json @@ -0,0 +1,191 @@ +{ +  "kind": "Template", +  "apiVersion": "v1", +  "metadata": { +    "name": "redis-ephemeral", +    "creationTimestamp": null, +    "annotations": { +      "openshift.io/display-name": "Redis (Ephemeral)", +      "description": "Redis in-memory data structure store, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/redis-container/blob/master/3.2.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing", +      "iconClass": "icon-redis", +      "tags": "database,redis" +    } +  }, +  "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Password: ${REDIS_PASSWORD}\n Connection URL: redis://${DATABASE_SERVICE_NAME}:6379/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/redis-container/blob/master/3.2.", +  "labels": { +    "template": "redis-ephemeral-template" +  }, +  "objects": [ +    { +      "kind": "Service", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}", +        "creationTimestamp": null +      }, +      "spec": { +        "ports": [ +          { +            "name": "redis", +            "protocol": "TCP", +            "port": 6379, +            "targetPort": 6379, +            "nodePort": 0 +          } +        ], +        "selector": { +          "name": "${DATABASE_SERVICE_NAME}" +        }, +        "type": "ClusterIP", +        "sessionAffinity": "None" +      }, +      "status": { +        "loadBalancer": {} +      } +    }, +    { +      "kind": "DeploymentConfig", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}", +        "creationTimestamp": null +      }, +      "spec": { +        "strategy": { +          "type": "Recreate" +        }, +        "triggers": [ +          { +            "type": "ImageChange", +            "imageChangeParams": { +              "automatic": true, +              "containerNames": [ +                "redis" +              ], +              "from": { +                "kind": "ImageStreamTag", +                "name": "redis:${REDIS_VERSION}", +                "namespace": "${NAMESPACE}" +              }, +              "lastTriggeredImage": "" +            } +          }, +          { +            "type": "ConfigChange" +          } +        ], +        "replicas": 1, +        "selector": { +          "name": "${DATABASE_SERVICE_NAME}" +        }, +        "template": { +          "metadata": { +            "creationTimestamp": null, +            "labels": { +              "name": "${DATABASE_SERVICE_NAME}" +            } +          }, +          "spec": { +            "containers": [ +              { +                "name": "redis", +                "image": " ", +                "ports": [ +                  { +                    "containerPort": 6379, +                    "protocol": "TCP" +                  } +                ], +                "readinessProbe": { +                  "timeoutSeconds": 1, +                  "initialDelaySeconds": 5, +                  "exec": { +                    "command": [ "/bin/sh", "-i", "-c", "test \"$(redis-cli -h 127.0.0.1 -a $REDIS_PASSWORD ping)\" == \"PONG\""] +                  } +                }, +                "livenessProbe": { +                  "timeoutSeconds": 1, +                  "initialDelaySeconds": 30, +                  "tcpSocket": { +                    "port": 6379 +                  } +                }, +                "env": [ +                  { +                    "name": "REDIS_PASSWORD", +                    "value": "${REDIS_PASSWORD}" +                  } +                ], +                "resources": { +                  "limits": { +                    "memory": "${MEMORY_LIMIT}" +                  } +                }, +                "volumeMounts": [ +                  { +                    "name": "${DATABASE_SERVICE_NAME}-data", +                    "mountPath": "/var/lib/redis/data" +                  } +                ], +                "terminationMessagePath": "/dev/termination-log", +                "imagePullPolicy": "IfNotPresent", +                "capabilities": {}, +                "securityContext": { +                  "capabilities": {}, +                  "privileged": false +                } +              } +            ], +            "volumes": [ +              { +                "name": "${DATABASE_SERVICE_NAME}-data", +                "emptyDir": { +                  "medium": "" +                } +              } +            ], +            "restartPolicy": "Always", +            "dnsPolicy": "ClusterFirst" +          } +        } +      }, +      "status": {} +    } +  ], +  "parameters": [ +    { +      "name": "MEMORY_LIMIT", +      "displayName": "Memory Limit", +      "description": "Maximum amount of memory the container can use.", +      "value": "512Mi" +    }, +    { +      "name": "NAMESPACE", +      "displayName": "Namespace", +      "description": "The OpenShift Namespace where the ImageStream resides.", +      "value": "openshift" +    }, +    { +      "name": "DATABASE_SERVICE_NAME", +      "displayName": "Database Service Name", +      "description": "The name of the OpenShift Service exposed for the database.", +      "value": "redis", +      "required": true +    }, +    { +      "name": "REDIS_PASSWORD", +      "displayName": "Redis Connection Password", +      "description": "Password for the Redis connection user.", +      "generate": "expression", +      "from": "[a-zA-Z0-9]{16}", +      "required": true +    }, +    { +      "name": "REDIS_VERSION", +      "displayName": "Version of Redis Image", +      "description": "Version of Redis image to be used (3.2 or latest).", +      "value": "3.2", +      "required": true +    } +  ] +} 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 new file mode 100644 index 000000000..e9db9ec9d --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/db-templates/redis-persistent-template.json @@ -0,0 +1,215 @@ +{ +  "kind": "Template", +  "apiVersion": "v1", +  "metadata": { +    "name": "redis-persistent", +    "creationTimestamp": null, +    "annotations": { +      "openshift.io/display-name": "Redis (Persistent)", +      "description": "Redis in-memory data structure store, with persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/redis-container/blob/master/3.2.\n\nNOTE: You must have persistent volumes available in your cluster to use this template.", +      "iconClass": "icon-redis", +      "tags": "database,redis" +    } +  }, +  "message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n       Password: ${REDIS_PASSWORD}\n Connection URL: redis://${DATABASE_SERVICE_NAME}:6379/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/redis-container/blob/master/3.2.", +  "labels": { +    "template": "redis-persistent-template" +  }, +  "objects": [ +    { +      "kind": "Service", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}", +        "creationTimestamp": null +      }, +      "spec": { +        "ports": [ +          { +            "name": "redis", +            "protocol": "TCP", +            "port": 6379, +            "targetPort": 6379, +            "nodePort": 0 +          } +        ], +        "selector": { +          "name": "${DATABASE_SERVICE_NAME}" +        }, +        "type": "ClusterIP", +        "sessionAffinity": "None" +      }, +      "status": { +        "loadBalancer": {} +      } +    }, +    { +      "kind": "PersistentVolumeClaim", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}" +      }, +      "spec": { +        "accessModes": [ +          "ReadWriteOnce" +        ], +        "resources": { +          "requests": { +            "storage": "${VOLUME_CAPACITY}" +          } +        } +      } +    }, +    { +      "kind": "DeploymentConfig", +      "apiVersion": "v1", +      "metadata": { +        "name": "${DATABASE_SERVICE_NAME}", +        "creationTimestamp": null +      }, +      "spec": { +        "strategy": { +          "type": "Recreate" +        }, +        "triggers": [ +          { +            "type": "ImageChange", +            "imageChangeParams": { +              "automatic": true, +              "containerNames": [ +                "redis" +              ], +              "from": { +                "kind": "ImageStreamTag", +                "name": "redis:${REDIS_VERSION}", +                "namespace": "${NAMESPACE}" +              }, +              "lastTriggeredImage": "" +            } +          }, +          { +            "type": "ConfigChange" +          } +        ], +        "replicas": 1, +        "selector": { +          "name": "${DATABASE_SERVICE_NAME}" +        }, +        "template": { +          "metadata": { +            "creationTimestamp": null, +            "labels": { +              "name": "${DATABASE_SERVICE_NAME}" +            } +          }, +          "spec": { +            "containers": [ +              { +                "name": "redis", +                "image": " ", +                "ports": [ +                  { +                    "containerPort": 6379, +                    "protocol": "TCP" +                  } +                ], +                "readinessProbe": { +                  "timeoutSeconds": 1, +                  "initialDelaySeconds": 5, +                  "exec": { +                    "command": [ "/bin/sh", "-i", "-c", "test \"$(redis-cli -h 127.0.0.1 -a $REDIS_PASSWORD ping)\" == \"PONG\""] +                  } +                }, +                "livenessProbe": { +                  "timeoutSeconds": 1, +                  "initialDelaySeconds": 30, +                  "tcpSocket": { +                    "port": 6379 +                  } +                }, +                "env": [ +                  { +                    "name": "REDIS_PASSWORD", +                    "value": "${REDIS_PASSWORD}" +                  } +                ], +                "resources": { +                  "limits": { +                    "memory": "${MEMORY_LIMIT}" +                  } +                }, +                "volumeMounts": [ +                  { +                    "name": "${DATABASE_SERVICE_NAME}-data", +                    "mountPath": "/var/lib/redis/data" +                  } +                ], +                "terminationMessagePath": "/dev/termination-log", +                "imagePullPolicy": "IfNotPresent", +                "capabilities": {}, +                "securityContext": { +                  "capabilities": {}, +                  "privileged": false +                } +              } +            ], +            "volumes": [ +              { +                "name": "${DATABASE_SERVICE_NAME}-data", +                "persistentVolumeClaim": { +                  "claimName": "${DATABASE_SERVICE_NAME}" +                } +              } +            ], +            "restartPolicy": "Always", +            "dnsPolicy": "ClusterFirst" +          } +        } +      }, +      "status": {} +    } +  ], +  "parameters": [ +    { +      "name": "MEMORY_LIMIT", +      "displayName": "Memory Limit", +      "description": "Maximum amount of memory the container can use.", +      "value": "512Mi" +    }, +    { +      "name": "NAMESPACE", +      "displayName": "Namespace", +      "description": "The OpenShift Namespace where the ImageStream resides.", +      "value": "openshift" +    }, +    { +      "name": "DATABASE_SERVICE_NAME", +      "displayName": "Database Service Name", +      "description": "The name of the OpenShift Service exposed for the database.", +      "value": "redis", +      "required": true +    }, +    { +      "name": "REDIS_PASSWORD", +      "displayName": "Redis Connection Password", +      "description": "Password for the Redis connection user.", +      "generate": "expression", +      "from": "[a-zA-Z0-9]{16}", +      "required": true +    }, +    { +      "name": "VOLUME_CAPACITY", +      "displayName": "Volume Capacity", +      "description": "Volume space available for data, e.g. 512Mi, 2Gi.", +      "value": "1Gi", +      "required": true +    }, +    { +      "name": "REDIS_VERSION", +      "displayName": "Version of Redis Image", +      "description": "Version of Redis image to be used (3.2 or latest).", +      "value": "3.2", +      "required": true +    } +  ] +} diff --git a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json index edaac73ca..1a90a9409 100644 --- a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json +++ b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json @@ -35,7 +35,7 @@                "openshift.io/display-name": "Ruby 2.0",                "description": "Build and run Ruby 2.0 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-ruby-container/tree/master/2.0/README.md.",                "iconClass": "icon-ruby", -              "tags": "builder,ruby", +              "tags": "hidden,builder,ruby",                "supports": "ruby:2.0,ruby",                "version": "2.0",                "sampleRepo": "https://github.com/openshift/ruby-ex.git" @@ -164,7 +164,7 @@              },              "from": {                "kind": "ImageStreamTag", -              "name": "5.20" +              "name": "5.24"              }            },            { @@ -173,7 +173,7 @@                "openshift.io/display-name": "Perl 5.16",                "description": "Build and run Perl 5.16 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.16/README.md.",                "iconClass": "icon-perl", -              "tags": "builder,perl", +              "tags": "hidden,builder,perl",                "supports":"perl:5.16,perl",                "version": "5.16",                "sampleRepo": "https://github.com/openshift/dancer-ex.git" @@ -198,7 +198,22 @@                "kind": "DockerImage",                "name": "centos/perl-520-centos7:latest"              } - +          }, +          { +            "name": "5.24", +            "annotations": { +              "openshift.io/display-name": "Perl 5.24", +              "description": "Build and run Perl 5.24 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.24/README.md.", +              "iconClass": "icon-perl", +              "tags": "builder,perl", +              "supports":"perl:5.24,perl", +              "version": "5.24", +              "sampleRepo": "https://github.com/openshift/dancer-ex.git" +            }, +            "from": { +              "kind": "DockerImage", +              "name": "centos/perl-524-centos7:latest" +            }            }          ]        } @@ -226,7 +241,7 @@              },              "from": {                "kind": "ImageStreamTag", -              "name": "5.6" +              "name": "7.0"              }            },            { @@ -235,7 +250,7 @@                "openshift.io/display-name": "PHP 5.5",                "description": "Build and run PHP 5.5 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/5.5/README.md.",                "iconClass": "icon-php", -              "tags": "builder,php", +              "tags": "hidden,builder,php",                "supports":"php:5.5,php",                "version": "5.5",                "sampleRepo": "https://github.com/openshift/cakephp-ex.git" @@ -260,6 +275,22 @@                "kind": "DockerImage",                "name": "centos/php-56-centos7:latest"              } +          }, +          { +            "name": "7.0", +            "annotations": { +              "openshift.io/display-name": "PHP 7.0", +              "description": "Build and run PHP 7.0 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/7.0/README.md.", +              "iconClass": "icon-php", +              "tags": "builder,php", +              "supports":"php:7.0,php", +              "version": "7.0", +              "sampleRepo": "https://github.com/openshift/cakephp-ex.git" +            }, +            "from": { +              "kind": "DockerImage", +              "name": "centos/php-70-centos7:latest" +            }            }          ]        } @@ -296,7 +327,7 @@                "openshift.io/display-name": "Python 3.3",                "description": "Build and run Python 3.3 applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.3/README.md.",                "iconClass": "icon-python", -              "tags": "builder,python", +              "tags": "hidden,builder,python",                "supports":"python:3.3,python",                "version": "3.3",                "sampleRepo": "https://github.com/openshift/django-ex.git" @@ -471,7 +502,7 @@              },              "from": {                "kind": "ImageStreamTag", -              "name": "5.6" +              "name": "5.7"              }            },            { @@ -480,7 +511,7 @@                "openshift.io/display-name": "MySQL 5.5",                "description": "Provides a MySQL 5.5 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/tree/master/5.5/README.md.",                "iconClass": "icon-mysql-database", -              "tags": "mysql", +              "tags": "hidden,mysql",                "version": "5.5"              },              "from": { @@ -501,6 +532,20 @@                "kind": "DockerImage",                "name": "centos/mysql-56-centos7:latest"              } +          }, +          { +            "name": "5.7", +            "annotations": { +              "openshift.io/display-name": "MySQL 5.7", +              "description": "Provides a MySQL 5.7 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/tree/master/5.7/README.md.", +              "iconClass": "icon-mysql-database", +              "tags": "mysql", +              "version": "5.7" +            }, +            "from": { +              "kind": "DockerImage", +              "name": "centos/mysql-57-centos7:latest" +            }            }          ]        } @@ -576,7 +621,7 @@                "openshift.io/display-name": "PostgreSQL 9.2",                "description": "Provides a PostgreSQL 9.2 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/tree/master/9.2.",                "iconClass": "icon-postgresql", -              "tags": "postgresql", +              "tags": "hidden,postgresql",                "version": "9.2"              },              "from": { @@ -645,7 +690,7 @@                "openshift.io/display-name": "MongoDB 2.4",                "description": "Provides a MongoDB 2.4 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/2.4/README.md.",                "iconClass": "icon-mongodb", -              "tags": "mongodb", +              "tags": "hidden,mongodb",                "version": "2.4"              },              "from": { @@ -688,6 +733,47 @@        "kind": "ImageStream",        "apiVersion": "v1",        "metadata": { +        "name": "redis", +        "annotations": { +          "openshift.io/display-name": "Redis" +        } +      }, +      "spec": { +        "tags": [ +          { +            "name": "latest", +            "annotations": { +              "openshift.io/display-name": "Redis (Latest)", +              "description": "Provides a Redis database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/redis-container/tree/master/3.2/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Redis available on OpenShift, including major versions updates.", +              "iconClass": "icon-redis", +              "tags": "redis" +            }, +            "from": { +              "kind": "ImageStreamTag", +              "name": "3.2" +            } +          }, +          { +            "name": "3.2", +            "annotations": { +              "openshift.io/display-name": "Redis 3.2", +              "description": "Provides a Redis 3.2 database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/redis-container/tree/master/3.2/README.md.", +              "iconClass": "icon-redis", +              "tags": "redis", +              "version": "3.2" +            }, +            "from": { +              "kind": "DockerImage", +              "name": "centos/redis-32-centos7:latest" +            } +          } +        ] +      } +     }, +     { +      "kind": "ImageStream", +      "apiVersion": "v1", +      "metadata": {          "name": "jenkins",          "annotations": {            "openshift.io/display-name": "Jenkins" diff --git a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json index 88ee79a84..9b19b8bd0 100644 --- a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json +++ b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json @@ -35,7 +35,7 @@                "openshift.io/display-name": "Ruby 2.0",                "description": "Build and run Ruby 2.0 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-ruby-container/tree/master/2.0/README.md.",                "iconClass": "icon-ruby", -              "tags": "builder,ruby", +              "tags": "hidden,builder,ruby",                "supports": "ruby:2.0,ruby",                "version": "2.0",                "sampleRepo": "https://github.com/openshift/ruby-ex.git" @@ -164,7 +164,7 @@              },              "from": {                "kind": "ImageStreamTag", -              "name": "5.20" +              "name": "5.24"              }            },            { @@ -173,7 +173,7 @@                "openshift.io/display-name": "Perl 5.16",                "description": "Build and run Perl 5.16 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.16/README.md.",                "iconClass": "icon-perl", -              "tags": "builder,perl", +              "tags": "hidden,builder,perl",                "supports":"perl:5.16,perl",                "version": "5.16",                "sampleRepo": "https://github.com/openshift/dancer-ex.git" @@ -198,7 +198,22 @@                "kind": "DockerImage",                "name": "registry.access.redhat.com/rhscl/perl-520-rhel7:latest"              } - +           }, +           { +            "name": "5.24", +            "annotations": { +              "openshift.io/display-name": "Perl 5.24", +              "description": "Build and run Perl 5.24 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.24/README.md.", +				  "iconClass": "icon-perl", +              "tags": "builder,perl", +              "supports":"perl:5.24,perl", +              "version": "5.24", +              "sampleRepo": "https://github.com/openshift/dancer-ex.git" +            }, +            "from": { +              "kind": "DockerImage", +              "name": "registry.access.redhat.com/rhscl/perl-524-rhel7:latest" +            }            }          ]        } @@ -235,7 +250,7 @@                "openshift.io/display-name": "PHP 5.5",                "description": "Build and run PHP 5.5 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/5.5/README.md.",                "iconClass": "icon-php", -              "tags": "builder,php", +              "tags": "hidden,builder,php",                "supports":"php:5.5,php",                "version": "5.5",                "sampleRepo": "https://github.com/openshift/cakephp-ex.git"               @@ -260,6 +275,22 @@                "kind": "DockerImage",                "name": "registry.access.redhat.com/rhscl/php-56-rhel7:latest"              } +          }, +          { +            "name": "7.0", +            "annotations": { +              "openshift.io/display-name": "PHP 7.0", +              "description": "Build and run PHP 7.0 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/7.0/README.md.", +              "iconClass": "icon-php", +              "tags": "builder,php", +              "supports":"php:7.0,php", +              "version": "7.0", +              "sampleRepo": "https://github.com/openshift/cakephp-ex.git" +            }, +            "from": { +              "kind": "DockerImage", +              "name": "registry.access.redhat.com/rhscl/php-70-rhel7:latest" +            }            }          ]        } @@ -296,7 +327,7 @@                "openshift.io/display-name": "Python 3.3",                "description": "Build and run Python 3.3 applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.3/README.md.",                "iconClass": "icon-python", -              "tags": "builder,python", +              "tags": "hidden,builder,python",                "supports":"python:3.3,python",                "version": "3.3",                "sampleRepo": "https://github.com/openshift/django-ex.git" @@ -378,7 +409,7 @@              },              "from": {                "kind": "ImageStreamTag", -              "name": "5.6" +              "name": "5.7"              }            },            { @@ -387,7 +418,7 @@                "openshift.io/display-name": "MySQL 5.5",                "description": "Provides a MySQL 5.5 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/tree/master/5.5/README.md.",                "iconClass": "icon-mysql-database", -              "tags": "mysql", +              "tags": "hidden,mysql",                "version": "5.5"              },              "from": { @@ -408,6 +439,20 @@                "kind": "DockerImage",                "name": "registry.access.redhat.com/rhscl/mysql-56-rhel7:latest"              } +          }, +          { +            "name": "5.7", +            "annotations": { +              "openshift.io/display-name": "MySQL 5.7", +              "description": "Provides a MySQL 5.7 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/tree/master/5.7/README.md.", +              "iconClass": "icon-mysql-database", +              "tags": "mysql", +              "version": "5.7" +            }, +            "from": { +              "kind": "DockerImage", +              "name": "registry.access.redhat.com/rhscl/mysql-57-rhel7:latest" +            }            }          ]        } @@ -483,7 +528,7 @@                "openshift.io/display-name": "PostgreSQL 9.2",                "description": "Provides a PostgreSQL 9.2 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/tree/master/9.2.",                "iconClass": "icon-postgresql", -              "tags": "postgresql", +              "tags": "hidden,postgresql",                "version": "9.2"              },              "from": { @@ -552,7 +597,7 @@                "openshift.io/display-name": "MongoDB 2.4",                "description": "Provides a MongoDB 2.4 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/2.4/README.md.",                "iconClass": "icon-mongodb", -              "tags": "mongodb", +              "tags": "hidden,mongodb",                "version": "2.4"              },              "from": { @@ -595,6 +640,47 @@        "kind": "ImageStream",        "apiVersion": "v1",        "metadata": { +        "name": "redis", +        "annotations": { +          "openshift.io/display-name": "Redis" +        } +      }, +      "spec": { +        "tags": [ +          { +            "name": "latest", +            "annotations": { +              "openshift.io/display-name": "Redis (Latest)", +              "description": "Provides a Redis database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/redis-container/tree/master/3.2/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Redis available on OpenShift, including major versions updates.", +              "iconClass": "icon-redis", +              "tags": "redis" +            }, +            "from": { +              "kind": "ImageStreamTag", +              "name": "3.2" +            } +          }, +          { +            "name": "3.2", +            "annotations": { +              "openshift.io/display-name": "Redis 3.2", +              "description": "Provides a Redis 3.2 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/redis-container/tree/master/3.2/README.md.", +              "iconClass": "icon-redis", +              "tags": "redis", +              "version": "3.2" +            }, +            "from": { +              "kind": "DockerImage", +              "name": "registry.access.redhat.com/rhscl/redis-32-rhel7:latest" +            } +          } +        ] +      } +     }, +     { +      "kind": "ImageStream", +      "apiVersion": "v1", +      "metadata": {          "name": "jenkins",          "annotations": {            "openshift.io/display-name": "Jenkins" 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 e0db922a2..62765e03d 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 @@ -19,5 +19,4 @@ instantiating them.  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 -are automatically pulled down, do not add additional files directly to this -directory. +are automatically pulled down, do not modify/add files to this directory. diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/apicast-gateway-template.yml b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/apicast-gateway-template.yml new file mode 100644 index 000000000..34f5fcbcc --- /dev/null +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/apicast-gateway-template.yml @@ -0,0 +1,149 @@ +apiVersion: v1 +kind: Template +metadata: +  creationTimestamp: null +  name: 3scale-gateway +  annotations: +    description: "3scale API Gateway" +    iconClass: "icon-load-balancer" +    tags: "api,gateway,3scale" +objects: +- apiVersion: v1 +  kind: DeploymentConfig +  metadata: +    name: ${THREESCALE_GATEWAY_NAME} +  spec: +    replicas: 2 +    selector: +      deploymentconfig: ${THREESCALE_GATEWAY_NAME} +    strategy: +      resources: {} +      rollingParams: +        intervalSeconds: 1 +        maxSurge: 25% +        maxUnavailable: 25% +        timeoutSeconds: 600 +        updatePeriodSeconds: 1 +      type: Rolling +    template: +      metadata: +        labels: +          deploymentconfig: ${THREESCALE_GATEWAY_NAME} +      spec: +        containers: +        - env: +          - name: THREESCALE_PORTAL_ENDPOINT +            valueFrom: +              secretKeyRef: +                name: ${THREESCALE_PORTAL_ENDPOINT_SECRET} +                key: password +          - name: THREESCALE_CONFIG_FILE +            value: ${THREESCALE_CONFIG_FILE} +          - name: RESOLVER +            value: ${RESOLVER} +          - name: APICAST_SERVICES +            value: ${APICAST_SERVICES} +          - name: APICAST_MISSING_CONFIGURATION +            value: ${MISSING_CONFIGURATION} +          - name: APICAST_LOG_LEVEL +            value: ${APICAST_LOG_LEVEL} +          - name: APICAST_PATH_ROUTING_ENABLED +            value: ${PATH_ROUTING} +          - name: APICAST_RESPONSE_CODES +            value: ${RESPONSE_CODES} +          - name: APICAST_REQUEST_LOGS +            value: ${REQUEST_LOGS} +          - name: APICAST_RELOAD_CONFIG +            value: ${APICAST_RELOAD_CONFIG} +          image: ${THREESCALE_GATEWAY_IMAGE} +          imagePullPolicy: Always +          name: ${THREESCALE_GATEWAY_NAME} +          livenessProbe: +            httpGet: +              path: /status/live +              port: 8090 +            initialDelaySeconds: 10 +            timeoutSeconds: 1 +          readinessProbe: +            httpGet: +              path: /status/ready +              port: 8090 +            initialDelaySeconds: 15 +            timeoutSeconds: 1 +          ports: +          - containerPort: 8080 +            protocol: TCP +          resources: {} +          terminationMessagePath: /dev/termination-log +        dnsPolicy: ClusterFirst +        restartPolicy: Always +        securityContext: {} +        terminationGracePeriodSeconds: 30 +    triggers: +    - type: ConfigChange +  status: {} +- apiVersion: v1 +  kind: Service +  metadata: +    creationTimestamp: null +    name: ${THREESCALE_GATEWAY_NAME} +  spec: +    ports: +    - name: 8080-tcp +      port: 8080 +      protocol: TCP +      targetPort: 8080 +    selector: +      deploymentconfig: ${THREESCALE_GATEWAY_NAME} +    sessionAffinity: None +    type: ClusterIP +  status: +    loadBalancer: {} +parameters: +- description: "Name of the secret containing the THREESCALE_PORTAL_ENDPOINT with the access-token or provider key" +  value: threescale-portal-endpoint-secret +  name: THREESCALE_PORTAL_ENDPOINT_SECRET +  required: true +- description: "Path to saved JSON file with configuration for the gateway. Has to be injected to the docker image as read only volume." +  value: +  name: THREESCALE_CONFIG_FILE +  required: false +- description: "Name for the 3scale API Gateway" +  value: threescalegw +  name: THREESCALE_GATEWAY_NAME +  required: true +- description: "Docker image to use." +  value: 'rhamp10/apicast-gateway:1.0.0-4' +  name: THREESCALE_GATEWAY_IMAGE +  required: true +- description: "DNS Resolver for openresty, if empty it will be autodiscovered" +  value: +  name: RESOLVER +  required: false +- description: "Subset of services to run. Use comma separated list of service ids (eg. 42,1337)" +  value: +  name: APICAST_SERVICES +  required: false +- description: "What to do on missing or invalid configuration. Allowed values are: log, exit." +  value: exit +  required: false +  name: MISSING_CONFIGURATION +- description: "Log level. One of the following: debug, info, notice, warn, error, crit, alert, or emerg." +  name: APICAST_LOG_LEVEL +  required: false +- description: "Enable path routing. Experimental feature." +  name: PATH_ROUTING +  required: false +  value: "false" +- description: "Enable traffic logging to 3scale. Includes whole request and response." +  value: "false" +  name: REQUEST_LOGS +  required: false +- description: "Enable logging response codes to 3scale." +  value: "false" +  name: RESPONSE_CODES +  required: false +- description: "Reload config on every request" +  value: "false" +  name: APICAST_RELOAD_CONFIG +  required: false 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 354978891..9dbbf89d1 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 @@ -16,6 +16,17 @@    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${NAME}" +      }, +      "stringData" : { +        "databaseUser" : "${DATABASE_USER}", +        "databasePassword" : "${DATABASE_PASSWORD}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -212,11 +223,21 @@                    },                    {                      "name": "DATABASE_USER", -                    "value": "${DATABASE_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databaseUser" +                      } +                    }                    },                    {                      "name": "DATABASE_PASSWORD", -                    "value": "${DATABASE_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databasePassword" +                      } +                    }                    },                    {                      "name": "CAKEPHP_SECRET_TOKEN", @@ -349,12 +370,22 @@                  },                  "env": [                      { -                        "name": "MYSQL_USER", -                        "value": "${DATABASE_USER}" +                      "name": "MYSQL_USER", +                      "valueFrom": { +                        "secretKeyRef" : { +                          "name" : "${NAME}", +                          "key" : "databaseUser" +                        } +                      }                      },                      { -                        "name": "MYSQL_PASSWORD", -                        "value": "${DATABASE_PASSWORD}" +                      "name": "MYSQL_PASSWORD", +                      "valueFrom": { +                        "secretKeyRef" : { +                          "name" : "${NAME}", +                          "key" : "databasePassword" +                          } +                        }                      },                      {                          "name": "MYSQL_DATABASE", 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 9fc5be5e0..dccb8bf7f 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 @@ -16,6 +16,17 @@    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${NAME}" +      }, +      "stringData" : { +        "databaseUser" : "${DATABASE_USER}", +        "databasePassword" : "${DATABASE_PASSWORD}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -115,7 +126,10 @@                "secret": "${GITHUB_WEBHOOK_SECRET}"              }            } -        ] +        ], +        "postCommit": { +          "script": "perl -I extlib/lib/perl5 -I lib t/*" +        }        }      },      { @@ -190,11 +204,21 @@                    },                    {                      "name": "MYSQL_USER", -                    "value": "${DATABASE_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databaseUser" +                      } +                    }                    },                    {                      "name": "MYSQL_PASSWORD", -                    "value": "${DATABASE_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databasePassword" +                      } +                    }                    },                    {                      "name": "MYSQL_DATABASE", @@ -324,11 +348,21 @@                  "env": [                    {                      "name": "MYSQL_USER", -                    "value": "${DATABASE_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databaseUser" +                      } +                    }                    },                    {                      "name": "MYSQL_PASSWORD", -                    "value": "${DATABASE_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databasePassword" +                      } +                    }                    },                    {                        "name": "MYSQL_DATABASE", @@ -407,18 +441,6 @@        "from": "[a-zA-Z0-9]{40}"      },      { -      "name": "ADMIN_USERNAME", -      "displayName": "Administrator Username", -      "generate": "expression", -      "from": "admin[A-Z0-9]{3}" -    }, -    { -      "name": "ADMIN_PASSWORD", -      "displayName": "Administrator Password", -      "generate": "expression", -      "from": "[a-zA-Z0-9]{8}" -    }, -    {        "name": "DATABASE_SERVICE_NAME",        "displayName": "Database Service Name",        "required": true, 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 590d5fd4f..59ff8a988 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 @@ -16,6 +16,17 @@    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${NAME}" +      }, +      "stringData" : { +        "databaseUser" : "${DATABASE_USER}", +        "databasePassword" : "${DATABASE_PASSWORD}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -204,11 +215,21 @@                    },                    {                      "name": "DATABASE_USER", -                    "value": "${DATABASE_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databaseUser" +                      } +                    }                    },                    {                      "name": "DATABASE_PASSWORD", -                    "value": "${DATABASE_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databasePassword" +                      } +                    }                    },                    {                      "name": "APP_CONFIG", @@ -314,11 +335,21 @@                  "env": [                    {                      "name": "POSTGRESQL_USER", -                    "value": "${DATABASE_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databaseUser" +                      } +                    }                    },                    {                      "name": "POSTGRESQL_PASSWORD", -                    "value": "${DATABASE_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databasePassword" +                      } +                    }                    },                    {                      "name": "POSTGRESQL_DATABASE", diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-ephemeral-template.json index fc7423840..62ccc5b7f 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-ephemeral-template.json @@ -89,7 +89,7 @@                  },                  "livenessProbe": {                      "timeoutSeconds": 3, -                    "initialDelaySeconds": 120, +                    "initialDelaySeconds": 420,                      "failureThreshold" : 30,                      "httpGet": {                          "path": "/login", diff --git a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-persistent-template.json b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-persistent-template.json index acf59ee94..50c4ad566 100644 --- a/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.4/quickstart-templates/jenkins-persistent-template.json @@ -106,7 +106,7 @@                  },                  "livenessProbe": {                      "timeoutSeconds": 3, -                    "initialDelaySeconds": 120, +                    "initialDelaySeconds": 420,                      "failureThreshold" : 30,                      "httpGet": {                          "path": "/login", 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 d4b4add18..91f9ec7b3 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 @@ -16,6 +16,18 @@    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${NAME}" +      }, +      "stringData": { +        "databaseUser": "${DATABASE_USER}", +        "databasePassword": "${DATABASE_PASSWORD}", +        "databaseAdminPassword" : "${DATABASE_ADMIN_PASSWORD}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -88,10 +100,10 @@                "namespace": "${NAMESPACE}",                "name": "nodejs:4"              }, -            "env":  [ +            "env": [                { -                  "name": "NPM_MIRROR", -                  "value": "${NPM_MIRROR}" +                "name": "NPM_MIRROR", +                "value": "${NPM_MIRROR}"                }              ]            } @@ -186,11 +198,21 @@                    },                    {                      "name": "MONGODB_USER", -                    "value": "${DATABASE_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databaseUser" +                      } +                    }                    },                    {                      "name": "MONGODB_PASSWORD", -                    "value": "${DATABASE_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databasePassword" +                      } +                    }                    },                    {                      "name": "MONGODB_DATABASE", @@ -198,7 +220,12 @@                    },                    {                      "name": "MONGODB_ADMIN_PASSWORD", -                    "value": "${DATABASE_ADMIN_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databaseAdminPassword" +                      } +                    }                    }                  ],                  "readinessProbe": { @@ -210,17 +237,17 @@                    }                  },                  "livenessProbe": { -                    "timeoutSeconds": 3, -                    "initialDelaySeconds": 30, -                    "httpGet": { -                        "path": "/pagecount", -                        "port": 8080 -                    } +                  "timeoutSeconds": 3, +                  "initialDelaySeconds": 30, +                  "httpGet": { +                    "path": "/pagecount", +                    "port": 8080 +                  }                  },                  "resources": { -                    "limits": { -                        "memory": "${MEMORY_LIMIT}" -                    } +                  "limits": { +                    "memory": "${MEMORY_LIMIT}" +                  }                  }                }              ] @@ -306,11 +333,21 @@                  "env": [                    {                      "name": "MONGODB_USER", -                    "value": "${DATABASE_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databaseUser" +                      } +                    }                    },                    {                      "name": "MONGODB_PASSWORD", -                    "value": "${DATABASE_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databasePassword" +                      } +                    }                    },                    {                      "name": "MONGODB_DATABASE", @@ -318,14 +355,24 @@                    },                    {                      "name": "MONGODB_ADMIN_PASSWORD", -                    "value": "${DATABASE_ADMIN_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databaseAdminPassword" +                      } +                    }                    }                  ],                  "readinessProbe": {                    "timeoutSeconds": 1,                    "initialDelaySeconds": 3,                    "exec": { -                    "command": [ "/bin/sh", "-i", "-c", "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\""] +                    "command": [ +                      "/bin/sh", +                      "-i", +                      "-c", +                      "mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD --eval=\"quit()\"" +                    ]                    }                  },                  "livenessProbe": { @@ -336,9 +383,9 @@                    }                  },                  "resources": { -                    "limits": { -                        "memory": "${MEMORY_MONGODB_LIMIT}" -                    } +                  "limits": { +                    "memory": "${MEMORY_MONGODB_LIMIT}" +                  }                  },                  "volumeMounts": [                    { 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 baed15d8a..6373562c4 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 @@ -16,6 +16,20 @@    },    "objects": [      { +      "kind": "Secret", +      "apiVersion": "v1", +      "metadata": { +        "name": "${NAME}" +      }, +      "stringData" : { +        "databaseUser" : "${DATABASE_USER}", +        "databasePassword" : "${DATABASE_PASSWORD}", +        "applicationUser" : "${APPLICATION_USER}", +        "applicationPassword" : "${APPLICATION_PASSWORD}", +        "keyBase" : "${SECRET_KEY_BASE}" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { @@ -207,11 +221,21 @@                    },                    {                      "name": "POSTGRESQL_USER", -                    "value": "${DATABASE_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databaseUser" +                      } +                    }                    },                    {                      "name": "POSTGRESQL_PASSWORD", -                    "value": "${DATABASE_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "databasePassword" +                      } +                    }                    },                    {                      "name": "POSTGRESQL_DATABASE", @@ -219,7 +243,12 @@                    },                    {                      "name": "SECRET_KEY_BASE", -                    "value": "${SECRET_KEY_BASE}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "keyBase" +                      } +                    }                    },                    {                      "name": "POSTGRESQL_MAX_CONNECTIONS", @@ -235,11 +264,21 @@                    },                    {                      "name": "APPLICATION_USER", -                    "value": "${APPLICATION_USER}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "applicationUser" +                      } +                    }                    },                    {                      "name": "APPLICATION_PASSWORD", -                    "value": "${APPLICATION_PASSWORD}" +                    "valueFrom": { +                      "secretKeyRef" : { +                        "name" : "${NAME}", +                        "key" : "applicationPassword" +                      } +                    }                    },                    {                      "name": "RAILS_ENV",  | 
