diff options
| author | Scott Dodson <sdodson@redhat.com> | 2016-08-26 16:27:24 -0400 | 
|---|---|---|
| committer | Scott Dodson <sdodson@redhat.com> | 2016-08-26 16:56:22 -0400 | 
| commit | 5b66d9476db6a61d8ad98b3b14301ad7afda5811 (patch) | |
| tree | 4cba4d6586f859e6cc48676fd97932dd1d3d82fb | |
| parent | 54cac00a37f8070f5073021478a30c8fda90e346 (diff) | |
Sync image stream data
6 files changed, 163 insertions, 300 deletions
| diff --git a/roles/openshift_examples/examples-sync.sh b/roles/openshift_examples/examples-sync.sh index f598cf8f2..1ad0d93a2 100755 --- a/roles/openshift_examples/examples-sync.sh +++ b/roles/openshift_examples/examples-sync.sh @@ -9,7 +9,7 @@ XPAAS_VERSION=ose-v1.3.3  ORIGIN_VERSION=${1:-v1.3}  EXAMPLES_BASE=$(pwd)/files/examples/${ORIGIN_VERSION}  find ${EXAMPLES_BASE} -name '*.json' -delete -find ${EXAMPLES_BASE} -name '*.yaml' -delete +find ${EXAMPLES_BASE} -name '*.yaml' -delete -exclude registry-console.json  TEMP=`mktemp -d`  pushd $TEMP @@ -29,7 +29,6 @@ unzip cakephp-ex-master.zip  unzip application-templates-master.zip  cp origin-master/examples/db-templates/* ${EXAMPLES_BASE}/db-templates/  cp origin-master/examples/jenkins/jenkins-*template.json ${EXAMPLES_BASE}/quickstart-templates/ -cp origin-master/examples/jenkins/pipeline/jenkinstemplate.json ${EXAMPLES_BASE}/quickstart-templates/  cp origin-master/examples/image-streams/* ${EXAMPLES_BASE}/image-streams/  cp django-ex-master/openshift/templates/* ${EXAMPLES_BASE}/quickstart-templates/  cp rails-ex-master/openshift/templates/* ${EXAMPLES_BASE}/quickstart-templates/ diff --git a/roles/openshift_examples/files/examples/v1.3/db-templates/README.md b/roles/openshift_examples/files/examples/v1.3/db-templates/README.md index 609f4dec9..c66bdb8bf 100644 --- a/roles/openshift_examples/files/examples/v1.3/db-templates/README.md +++ b/roles/openshift_examples/files/examples/v1.3/db-templates/README.md @@ -38,35 +38,11 @@ Replace `/path/to/template.json` with an appropriate path, that can be either a  local path or an URL. Example:      $ oc new-app https://raw.githubusercontent.com/openshift/origin/master/examples/db-templates/mongodb-ephemeral-template.json -    --> Deploying template mongodb-ephemeral for "https://raw.githubusercontent.com/openshift/origin/master/examples/db-templates/mongodb-ephemeral-template.json" -     With parameters: -      DATABASE_SERVICE_NAME=mongodb -      MONGODB_USER=userJNX # generated -      MONGODB_PASSWORD=tnEDilMVrgjp5AI2 # generated -      MONGODB_DATABASE=sampledb -      MONGODB_ADMIN_PASSWORD=8bYEs8OlNYhVyMBs # generated -    --> Creating resources ... -    Service "mongodb" created -    DeploymentConfig "mongodb" created -    --> Success -    Run 'oc status' to view your app.  The parameters listed in the output above can be tweaked by specifying values in  the command line with the `-p` option:      $ oc new-app examples/db-templates/mongodb-ephemeral-template.json -p DATABASE_SERVICE_NAME=mydb -p MONGODB_USER=default -    --> Deploying template mongodb-ephemeral for "examples/db-templates/mongodb-ephemeral-template.json" -         With parameters: -          DATABASE_SERVICE_NAME=mydb -          MONGODB_USER=default -          MONGODB_PASSWORD=RPvMbWlQFOevSowQ # generated -          MONGODB_DATABASE=sampledb -          MONGODB_ADMIN_PASSWORD=K7tIjDxDHHYCvFrJ # generated -    --> Creating resources ... -        Service "mydb" created -        DeploymentConfig "mydb" created -    --> Success -        Run 'oc status' to view your app.  Note that the persistent template requires an existing persistent volume,  otherwise the deployment won't ever succeed. diff --git a/roles/openshift_examples/files/examples/v1.3/quickstart-templates/cakephp-mysql.json b/roles/openshift_examples/files/examples/v1.3/quickstart-templates/cakephp-mysql.json index f85e7e537..ab4982690 100644 --- a/roles/openshift_examples/files/examples/v1.3/quickstart-templates/cakephp-mysql.json +++ b/roles/openshift_examples/files/examples/v1.3/quickstart-templates/cakephp-mysql.json @@ -126,9 +126,9 @@        },        "spec": {          "strategy": { -          "type": "Rolling", +          "type": "Recreate",            "recreateParams": { -          "pre": { +            "pre": {                "failurePolicy": "Retry",                "execNewPod": {                  "command": [ diff --git a/roles/openshift_examples/files/examples/v1.3/quickstart-templates/jenkins-ephemeral-template.json b/roles/openshift_examples/files/examples/v1.3/quickstart-templates/jenkins-ephemeral-template.json index 4f565206f..e8e361415 100644 --- a/roles/openshift_examples/files/examples/v1.3/quickstart-templates/jenkins-ephemeral-template.json +++ b/roles/openshift_examples/files/examples/v1.3/quickstart-templates/jenkins-ephemeral-template.json @@ -5,12 +5,12 @@      "name": "jenkins-ephemeral",      "creationTimestamp": null,      "annotations": { -      "description": "Jenkins service, without persistent storage.\nThe username is 'admin' and the tutorial at https://github.com/openshift/origin/blob/master/examples/jenkins/README.md contains more information about using this template.\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing", +      "description": "Jenkins service, without persistent storage.\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing",        "iconClass": "icon-jenkins",        "tags": "instant-app,jenkins"      }    }, -  "message": "A Jenkins service has been created in your project.  The username/password are admin/${JENKINS_PASSWORD}.", +  "message": "A Jenkins service has been created in your project.  The username/password are admin/${JENKINS_PASSWORD}.  The tutorial at https://github.com/openshift/origin/blob/master/examples/jenkins/README.md contains more information about using this template.",    "objects": [      {        "kind": "Route", @@ -26,6 +26,7 @@          },          "tls": {            "termination": "edge", +          "insecureEdgeTerminationPolicy": "Redirect",            "certificate": "-----BEGIN CERTIFICATE-----\nMIIDIjCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBoTELMAkGA1UEBhMCVVMx\nCzAJBgNVBAgMAlNDMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0Rl\nZmF1bHQgQ29tcGFueSBMdGQxEDAOBgNVBAsMB1Rlc3QgQ0ExGjAYBgNVBAMMEXd3\ndy5leGFtcGxlY2EuY29tMSIwIAYJKoZIhvcNAQkBFhNleGFtcGxlQGV4YW1wbGUu\nY29tMB4XDTE1MDExMjE0MTk0MVoXDTE2MDExMjE0MTk0MVowfDEYMBYGA1UEAwwP\nd3d3LmV4YW1wbGUuY29tMQswCQYDVQQIDAJTQzELMAkGA1UEBhMCVVMxIjAgBgkq\nhkiG9w0BCQEWE2V4YW1wbGVAZXhhbXBsZS5jb20xEDAOBgNVBAoMB0V4YW1wbGUx\nEDAOBgNVBAsMB0V4YW1wbGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMrv\ngu6ZTTefNN7jjiZbS/xvQjyXjYMN7oVXv76jbX8gjMOmg9m0xoVZZFAE4XyQDuCm\n47VRx5Qrf/YLXmB2VtCFvB0AhXr5zSeWzPwaAPrjA4ebG+LUo24ziS8KqNxrFs1M\nmNrQUgZyQC6XIe1JHXc9t+JlL5UZyZQC1IfaJulDAgMBAAGjDTALMAkGA1UdEwQC\nMAAwDQYJKoZIhvcNAQEFBQADggEBAFCi7ZlkMnESvzlZCvv82Pq6S46AAOTPXdFd\nTMvrh12E1sdVALF1P1oYFJzG1EiZ5ezOx88fEDTW+Lxb9anw5/KJzwtWcfsupf1m\nV7J0D3qKzw5C1wjzYHh9/Pz7B1D0KthQRATQCfNf8s6bbFLaw/dmiIUhHLtIH5Qc\nyfrejTZbOSP77z8NOWir+BWWgIDDB2//3AkDIQvT20vmkZRhkqSdT7et4NmXOX/j\njhPti4b2Fie0LeuvgaOdKjCpQQNrYthZHXeVlOLRhMTSk3qUczenkKTOhvP7IS9q\n+Dzv5hqgSfvMG392KWh5f8xXfJNs4W5KLbZyl901MeReiLrPH3w=\n-----END CERTIFICATE-----",            "key": "-----BEGIN PRIVATE KEY-----\nMIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMrvgu6ZTTefNN7j\njiZbS/xvQjyXjYMN7oVXv76jbX8gjMOmg9m0xoVZZFAE4XyQDuCm47VRx5Qrf/YL\nXmB2VtCFvB0AhXr5zSeWzPwaAPrjA4ebG+LUo24ziS8KqNxrFs1MmNrQUgZyQC6X\nIe1JHXc9t+JlL5UZyZQC1IfaJulDAgMBAAECgYEAnxOjEj/vrLNLMZE1Q9H7PZVF\nWdP/JQVNvQ7tCpZ3ZdjxHwkvf//aQnuxS5yX2Rnf37BS/TZu+TIkK4373CfHomSx\nUTAn2FsLmOJljupgGcoeLx5K5nu7B7rY5L1NHvdpxZ4YjeISrRtEPvRakllENU5y\ngJE8c2eQOx08ZSRE4TkCQQD7dws2/FldqwdjJucYijsJVuUdoTqxP8gWL6bB251q\nelP2/a6W2elqOcWId28560jG9ZS3cuKvnmu/4LG88vZFAkEAzphrH3673oTsHN+d\nuBd5uyrlnGjWjuiMKv2TPITZcWBjB8nJDSvLneHF59MYwejNNEof2tRjgFSdImFH\nmi995wJBAMtPjW6wiqRz0i41VuT9ZgwACJBzOdvzQJfHgSD9qgFb1CU/J/hpSRIM\nkYvrXK9MbvQFvG6x4VuyT1W8mpe1LK0CQAo8VPpffhFdRpF7psXLK/XQ/0VLkG3O\nKburipLyBg/u9ZkaL0Ley5zL5dFBjTV2Qkx367Ic2b0u9AYTCcgi2DsCQQD3zZ7B\nv7BOm7MkylKokY2MduFFXU0Bxg6pfZ7q3rvg8gqhUFbaMStPRYg6myiDiW/JfLhF\nTcFT4touIo7oriFJ\n-----END PRIVATE KEY-----",            "caCertificate": "-----BEGIN CERTIFICATE-----\nMIIEFzCCAv+gAwIBAgIJALK1iUpF2VQLMA0GCSqGSIb3DQEBBQUAMIGhMQswCQYD\nVQQGEwJVUzELMAkGA1UECAwCU0MxFTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoG\nA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDEQMA4GA1UECwwHVGVzdCBDQTEaMBgG\nA1UEAwwRd3d3LmV4YW1wbGVjYS5jb20xIjAgBgkqhkiG9w0BCQEWE2V4YW1wbGVA\nZXhhbXBsZS5jb20wHhcNMTUwMTEyMTQxNTAxWhcNMjUwMTA5MTQxNTAxWjCBoTEL\nMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlNDMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkx\nHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxEDAOBgNVBAsMB1Rlc3QgQ0Ex\nGjAYBgNVBAMMEXd3dy5leGFtcGxlY2EuY29tMSIwIAYJKoZIhvcNAQkBFhNleGFt\ncGxlQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nw2rK1J2NMtQj0KDug7g7HRKl5jbf0QMkMKyTU1fBtZ0cCzvsF4CqV11LK4BSVWaK\nrzkaXe99IVJnH8KdOlDl5Dh/+cJ3xdkClSyeUT4zgb6CCBqg78ePp+nN11JKuJlV\nIG1qdJpB1J5O/kCLsGcTf7RS74MtqMFo96446Zvt7YaBhWPz6gDaO/TUzfrNcGLA\nEfHVXkvVWqb3gqXUztZyVex/gtP9FXQ7gxTvJml7UkmT0VAFjtZnCqmFxpLZFZ15\n+qP9O7Q2MpsGUO/4vDAuYrKBeg1ZdPSi8gwqUP2qWsGd9MIWRv3thI2903BczDc7\nr8WaIbm37vYZAS9G56E4+wIDAQABo1AwTjAdBgNVHQ4EFgQUugLrSJshOBk5TSsU\nANs4+SmJUGwwHwYDVR0jBBgwFoAUugLrSJshOBk5TSsUANs4+SmJUGwwDAYDVR0T\nBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaMJ33zAMV4korHo5aPfayV3uHoYZ\n1ChzP3eSsF+FjoscpoNSKs91ZXZF6LquzoNezbfiihK4PYqgwVD2+O0/Ty7UjN4S\nqzFKVR4OS/6lCJ8YncxoFpTntbvjgojf1DEataKFUN196PAANc3yz8cWHF4uvjPv\nWkgFqbIjb+7D1YgglNyovXkRDlRZl0LD1OQ0ZWhd4Ge1qx8mmmanoBeYZ9+DgpFC\nj9tQAbS867yeOryNe7sEOIpXAAqK/DTu0hB6+ySsDfMo4piXCc2aA/eI2DCuw08e\nw17Dz9WnupZjVdwTKzDhFgJZMLDqn37HQnT6EemLFqbcR0VPEnfyhDtZIQ==\n-----END CERTIFICATE-----" @@ -75,6 +76,7 @@              }            },            "spec": { +            "serviceAccountName": "${JENKINS_SERVICE_NAME}",              "containers": [                {                  "name": "jenkins", @@ -89,7 +91,7 @@                  },                  "livenessProbe": {                      "timeoutSeconds": 3, -                    "initialDelaySeconds": 60, +                    "initialDelaySeconds": 120,                      "httpGet": {                          "path": "/login",                          "port": 8080 @@ -99,6 +101,18 @@                    {                      "name": "JENKINS_PASSWORD",                      "value": "${JENKINS_PASSWORD}" +                  }, +                  { +                    "name": "KUBERNETES_MASTER", +                    "value": "https://kubernetes.default:443" +                  }, +                  { +                    "name": "KUBERNETES_TRUST_CERTIFICATES", +                    "value": "true" +                  }, +                  { +                    "name": "JNLP_SERVICE_NAME", +                    "value": "${JNLP_SERVICE_NAME}"                    }                  ],                  "resources": { @@ -136,19 +150,42 @@        }      },      { +      "kind": "ServiceAccount", +        "apiVersion": "v1", +        "metadata": { +            "name": "${JENKINS_SERVICE_NAME}" +        } +    }, +    { +      "kind": "RoleBinding", +      "apiVersion": "v1", +      "metadata": { +          "name": "${JENKINS_SERVICE_NAME}_edit" +      }, +      "groupNames": null, +      "subjects": [ +          { +              "kind": "ServiceAccount", +              "name": "${JENKINS_SERVICE_NAME}" +          } +      ], +      "roleRef": { +          "name": "edit" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { -        "name": "${JENKINS_SERVICE_NAME}", -        "creationTimestamp": null +        "name": "${JNLP_SERVICE_NAME}"        },        "spec": {          "ports": [            { -            "name": "web", +            "name": "agent",              "protocol": "TCP", -            "port": 8080, -            "targetPort": 8080, +            "port": 50000, +            "targetPort": 50000,              "nodePort": 0            }          ], @@ -159,6 +196,35 @@          "type": "ClusterIP",          "sessionAffinity": "None"        } +    }, +    { +       "kind": "Service", +       "apiVersion": "v1", +       "metadata": { +         "name": "${JENKINS_SERVICE_NAME}", +         "annotations": { +           "service.alpha.openshift.io/dependencies": "[{\"name\": \"${JNLP_SERVICE_NAME}\", \"namespace\": \"\", \"kind\": \"Service\"}]", +           "service.openshift.io/infrastructure": "true" +         }, +         "creationTimestamp": null +       }, +       "spec": { +         "ports": [ +           { +             "name": "web", +             "protocol": "TCP", +             "port": 80, +             "targetPort": 8080, +             "nodePort": 0 +           } +         ], +         "selector": { +           "name": "${JENKINS_SERVICE_NAME}" +         }, +         "portalIP": "", +         "type": "ClusterIP", +         "sessionAffinity": "None" +       }      }    ],    "parameters": [ @@ -169,6 +235,12 @@        "value": "jenkins"      },      { +      "name": "JNLP_SERVICE_NAME", +      "displayName": "Jenkins JNLP Service Name", +      "description": "The name of the service used for master/slave communication.", +      "value": "jenkins-jnlp" +    }, +    {        "name": "JENKINS_PASSWORD",        "displayName": "Jenkins Password",        "description": "Password for the Jenkins 'admin' user.", diff --git a/roles/openshift_examples/files/examples/v1.3/quickstart-templates/jenkins-persistent-template.json b/roles/openshift_examples/files/examples/v1.3/quickstart-templates/jenkins-persistent-template.json index eda826a5b..e4a18961e 100644 --- a/roles/openshift_examples/files/examples/v1.3/quickstart-templates/jenkins-persistent-template.json +++ b/roles/openshift_examples/files/examples/v1.3/quickstart-templates/jenkins-persistent-template.json @@ -5,12 +5,12 @@      "name": "jenkins-persistent",      "creationTimestamp": null,      "annotations": { -      "description": "Jenkins service, with persistent storage.\nThe username is 'admin' and the tutorial at https://github.com/openshift/origin/blob/master/examples/jenkins/README.md contains more information about using this template.\nYou must have persistent volumes available in your cluster to use this template.", +      "description": "Jenkins service, with persistent storage.\nYou must have persistent volumes available in your cluster to use this template.",        "iconClass": "icon-jenkins",        "tags": "instant-app,jenkins"      }    }, -  "message": "A Jenkins service has been created in your project.  The username/password are admin/${JENKINS_PASSWORD}.", +  "message": "A Jenkins service has been created in your project.  The username/password are admin/${JENKINS_PASSWORD}.  The tutorial at https://github.com/openshift/origin/blob/master/examples/jenkins/README.md contains more information about using this template.",    "objects": [      {        "kind": "Route", @@ -26,6 +26,7 @@          },          "tls": {            "termination": "edge", +          "insecureEdgeTerminationPolicy": "Redirect",            "certificate": "-----BEGIN CERTIFICATE-----\nMIIDIjCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBoTELMAkGA1UEBhMCVVMx\nCzAJBgNVBAgMAlNDMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0Rl\nZmF1bHQgQ29tcGFueSBMdGQxEDAOBgNVBAsMB1Rlc3QgQ0ExGjAYBgNVBAMMEXd3\ndy5leGFtcGxlY2EuY29tMSIwIAYJKoZIhvcNAQkBFhNleGFtcGxlQGV4YW1wbGUu\nY29tMB4XDTE1MDExMjE0MTk0MVoXDTE2MDExMjE0MTk0MVowfDEYMBYGA1UEAwwP\nd3d3LmV4YW1wbGUuY29tMQswCQYDVQQIDAJTQzELMAkGA1UEBhMCVVMxIjAgBgkq\nhkiG9w0BCQEWE2V4YW1wbGVAZXhhbXBsZS5jb20xEDAOBgNVBAoMB0V4YW1wbGUx\nEDAOBgNVBAsMB0V4YW1wbGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMrv\ngu6ZTTefNN7jjiZbS/xvQjyXjYMN7oVXv76jbX8gjMOmg9m0xoVZZFAE4XyQDuCm\n47VRx5Qrf/YLXmB2VtCFvB0AhXr5zSeWzPwaAPrjA4ebG+LUo24ziS8KqNxrFs1M\nmNrQUgZyQC6XIe1JHXc9t+JlL5UZyZQC1IfaJulDAgMBAAGjDTALMAkGA1UdEwQC\nMAAwDQYJKoZIhvcNAQEFBQADggEBAFCi7ZlkMnESvzlZCvv82Pq6S46AAOTPXdFd\nTMvrh12E1sdVALF1P1oYFJzG1EiZ5ezOx88fEDTW+Lxb9anw5/KJzwtWcfsupf1m\nV7J0D3qKzw5C1wjzYHh9/Pz7B1D0KthQRATQCfNf8s6bbFLaw/dmiIUhHLtIH5Qc\nyfrejTZbOSP77z8NOWir+BWWgIDDB2//3AkDIQvT20vmkZRhkqSdT7et4NmXOX/j\njhPti4b2Fie0LeuvgaOdKjCpQQNrYthZHXeVlOLRhMTSk3qUczenkKTOhvP7IS9q\n+Dzv5hqgSfvMG392KWh5f8xXfJNs4W5KLbZyl901MeReiLrPH3w=\n-----END CERTIFICATE-----",            "key": "-----BEGIN PRIVATE KEY-----\nMIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMrvgu6ZTTefNN7j\njiZbS/xvQjyXjYMN7oVXv76jbX8gjMOmg9m0xoVZZFAE4XyQDuCm47VRx5Qrf/YL\nXmB2VtCFvB0AhXr5zSeWzPwaAPrjA4ebG+LUo24ziS8KqNxrFs1MmNrQUgZyQC6X\nIe1JHXc9t+JlL5UZyZQC1IfaJulDAgMBAAECgYEAnxOjEj/vrLNLMZE1Q9H7PZVF\nWdP/JQVNvQ7tCpZ3ZdjxHwkvf//aQnuxS5yX2Rnf37BS/TZu+TIkK4373CfHomSx\nUTAn2FsLmOJljupgGcoeLx5K5nu7B7rY5L1NHvdpxZ4YjeISrRtEPvRakllENU5y\ngJE8c2eQOx08ZSRE4TkCQQD7dws2/FldqwdjJucYijsJVuUdoTqxP8gWL6bB251q\nelP2/a6W2elqOcWId28560jG9ZS3cuKvnmu/4LG88vZFAkEAzphrH3673oTsHN+d\nuBd5uyrlnGjWjuiMKv2TPITZcWBjB8nJDSvLneHF59MYwejNNEof2tRjgFSdImFH\nmi995wJBAMtPjW6wiqRz0i41VuT9ZgwACJBzOdvzQJfHgSD9qgFb1CU/J/hpSRIM\nkYvrXK9MbvQFvG6x4VuyT1W8mpe1LK0CQAo8VPpffhFdRpF7psXLK/XQ/0VLkG3O\nKburipLyBg/u9ZkaL0Ley5zL5dFBjTV2Qkx367Ic2b0u9AYTCcgi2DsCQQD3zZ7B\nv7BOm7MkylKokY2MduFFXU0Bxg6pfZ7q3rvg8gqhUFbaMStPRYg6myiDiW/JfLhF\nTcFT4touIo7oriFJ\n-----END PRIVATE KEY-----",            "caCertificate": "-----BEGIN CERTIFICATE-----\nMIIEFzCCAv+gAwIBAgIJALK1iUpF2VQLMA0GCSqGSIb3DQEBBQUAMIGhMQswCQYD\nVQQGEwJVUzELMAkGA1UECAwCU0MxFTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoG\nA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDEQMA4GA1UECwwHVGVzdCBDQTEaMBgG\nA1UEAwwRd3d3LmV4YW1wbGVjYS5jb20xIjAgBgkqhkiG9w0BCQEWE2V4YW1wbGVA\nZXhhbXBsZS5jb20wHhcNMTUwMTEyMTQxNTAxWhcNMjUwMTA5MTQxNTAxWjCBoTEL\nMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlNDMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkx\nHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxEDAOBgNVBAsMB1Rlc3QgQ0Ex\nGjAYBgNVBAMMEXd3dy5leGFtcGxlY2EuY29tMSIwIAYJKoZIhvcNAQkBFhNleGFt\ncGxlQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nw2rK1J2NMtQj0KDug7g7HRKl5jbf0QMkMKyTU1fBtZ0cCzvsF4CqV11LK4BSVWaK\nrzkaXe99IVJnH8KdOlDl5Dh/+cJ3xdkClSyeUT4zgb6CCBqg78ePp+nN11JKuJlV\nIG1qdJpB1J5O/kCLsGcTf7RS74MtqMFo96446Zvt7YaBhWPz6gDaO/TUzfrNcGLA\nEfHVXkvVWqb3gqXUztZyVex/gtP9FXQ7gxTvJml7UkmT0VAFjtZnCqmFxpLZFZ15\n+qP9O7Q2MpsGUO/4vDAuYrKBeg1ZdPSi8gwqUP2qWsGd9MIWRv3thI2903BczDc7\nr8WaIbm37vYZAS9G56E4+wIDAQABo1AwTjAdBgNVHQ4EFgQUugLrSJshOBk5TSsU\nANs4+SmJUGwwHwYDVR0jBBgwFoAUugLrSJshOBk5TSsUANs4+SmJUGwwDAYDVR0T\nBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaMJ33zAMV4korHo5aPfayV3uHoYZ\n1ChzP3eSsF+FjoscpoNSKs91ZXZF6LquzoNezbfiihK4PYqgwVD2+O0/Ty7UjN4S\nqzFKVR4OS/6lCJ8YncxoFpTntbvjgojf1DEataKFUN196PAANc3yz8cWHF4uvjPv\nWkgFqbIjb+7D1YgglNyovXkRDlRZl0LD1OQ0ZWhd4Ge1qx8mmmanoBeYZ9+DgpFC\nj9tQAbS867yeOryNe7sEOIpXAAqK/DTu0hB6+ySsDfMo4piXCc2aA/eI2DCuw08e\nw17Dz9WnupZjVdwTKzDhFgJZMLDqn37HQnT6EemLFqbcR0VPEnfyhDtZIQ==\n-----END CERTIFICATE-----" @@ -92,6 +93,7 @@              }            },            "spec": { +            "serviceAccountName": "${JENKINS_SERVICE_NAME}",              "containers": [                {                  "name": "jenkins", @@ -106,7 +108,7 @@                  },                  "livenessProbe": {                      "timeoutSeconds": 3, -                    "initialDelaySeconds": 60, +                    "initialDelaySeconds": 120,                      "httpGet": {                          "path": "/login",                          "port": 8080 @@ -116,6 +118,18 @@                    {                      "name": "JENKINS_PASSWORD",                      "value": "${JENKINS_PASSWORD}" +                  }, +                  { +                    "name": "KUBERNETES_MASTER", +                    "value": "https://kubernetes.default:443" +                  }, +                  { +                    "name": "KUBERNETES_TRUST_CERTIFICATES", +                    "value": "true" +                  }, +                  { +                    "name": "JNLP_SERVICE_NAME", +                    "value": "${JNLP_SERVICE_NAME}"                    }                  ],                  "resources": { @@ -153,19 +167,42 @@        }      },      { +      "kind": "ServiceAccount", +        "apiVersion": "v1", +        "metadata": { +            "name": "${JENKINS_SERVICE_NAME}" +        } +    }, +    { +      "kind": "RoleBinding", +      "apiVersion": "v1", +      "metadata": { +          "name": "${JENKINS_SERVICE_NAME}_edit" +      }, +      "groupNames": null, +      "subjects": [ +          { +              "kind": "ServiceAccount", +              "name": "${JENKINS_SERVICE_NAME}" +          } +      ], +      "roleRef": { +          "name": "edit" +      } +    }, +    {        "kind": "Service",        "apiVersion": "v1",        "metadata": { -        "name": "${JENKINS_SERVICE_NAME}", -        "creationTimestamp": null +        "name": "${JNLP_SERVICE_NAME}"        },        "spec": {          "ports": [            { -            "name": "web", +            "name": "agent",              "protocol": "TCP", -            "port": 8080, -            "targetPort": 8080, +            "port": 50000, +            "targetPort": 50000,              "nodePort": 0            }          ], @@ -176,6 +213,35 @@          "type": "ClusterIP",          "sessionAffinity": "None"        } +    }, +    { +       "kind": "Service", +       "apiVersion": "v1", +       "metadata": { +         "name": "${JENKINS_SERVICE_NAME}", +         "annotations": { +           "service.alpha.openshift.io/dependencies": "[{\"name\": \"${JNLP_SERVICE_NAME}\", \"namespace\": \"\", \"kind\": \"Service\"}]", +           "service.openshift.io/infrastructure": "true" +         }, +         "creationTimestamp": null +       }, +       "spec": { +         "ports": [ +           { +             "name": "web", +             "protocol": "TCP", +             "port": 80, +             "targetPort": 8080, +             "nodePort": 0 +           } +         ], +         "selector": { +           "name": "${JENKINS_SERVICE_NAME}" +         }, +         "portalIP": "", +         "type": "ClusterIP", +         "sessionAffinity": "None" +       }      }    ],    "parameters": [ @@ -186,6 +252,12 @@        "value": "jenkins"      },      { +      "name": "JNLP_SERVICE_NAME", +      "displayName": "Jenkins JNLP Service Name", +      "description": "The name of the service used for master/slave communication.", +      "value": "jenkins-jnlp" +    }, +    {        "name": "JENKINS_PASSWORD",        "displayName": "Jenkins Password",        "description": "Password for the Jenkins 'admin' user.", diff --git a/roles/openshift_examples/files/examples/v1.3/quickstart-templates/jenkinstemplate.json b/roles/openshift_examples/files/examples/v1.3/quickstart-templates/jenkinstemplate.json deleted file mode 100644 index fc409f709..000000000 --- a/roles/openshift_examples/files/examples/v1.3/quickstart-templates/jenkinstemplate.json +++ /dev/null @@ -1,256 +0,0 @@ -{ -  "kind": "Template", -  "apiVersion": "v1", -  "metadata": { -    "name": "jenkins", -    "creationTimestamp": null, -    "annotations": { -      "description": "Jenkins service, without persistent storage. WARNING: Any data stored will be lost upon pod destruction. Only use this template for testing", -      "iconClass": "icon-jenkins", -      "tags": "instant-app,jenkins" -    } -  }, -  "message": "A Jenkins service has been created in your project.  The username/password are admin/${JENKINS_PASSWORD}.", -  "objects": [ -    { -      "kind": "Route", -      "apiVersion": "v1", -      "metadata": { -        "name": "jenkins", -        "creationTimestamp": null -      }, -      "spec": { -        "to": { -          "kind": "Service", -          "name": "${JENKINS_SERVICE_NAME}" -        }, -        "tls": { -          "termination": "edge", -          "insecureEdgeTerminationPolicy": "Redirect", -          "certificate": "-----BEGIN CERTIFICATE-----\nMIIDIjCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBoTELMAkGA1UEBhMCVVMx\nCzAJBgNVBAgMAlNDMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0Rl\nZmF1bHQgQ29tcGFueSBMdGQxEDAOBgNVBAsMB1Rlc3QgQ0ExGjAYBgNVBAMMEXd3\ndy5leGFtcGxlY2EuY29tMSIwIAYJKoZIhvcNAQkBFhNleGFtcGxlQGV4YW1wbGUu\nY29tMB4XDTE1MDExMjE0MTk0MVoXDTE2MDExMjE0MTk0MVowfDEYMBYGA1UEAwwP\nd3d3LmV4YW1wbGUuY29tMQswCQYDVQQIDAJTQzELMAkGA1UEBhMCVVMxIjAgBgkq\nhkiG9w0BCQEWE2V4YW1wbGVAZXhhbXBsZS5jb20xEDAOBgNVBAoMB0V4YW1wbGUx\nEDAOBgNVBAsMB0V4YW1wbGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMrv\ngu6ZTTefNN7jjiZbS/xvQjyXjYMN7oVXv76jbX8gjMOmg9m0xoVZZFAE4XyQDuCm\n47VRx5Qrf/YLXmB2VtCFvB0AhXr5zSeWzPwaAPrjA4ebG+LUo24ziS8KqNxrFs1M\nmNrQUgZyQC6XIe1JHXc9t+JlL5UZyZQC1IfaJulDAgMBAAGjDTALMAkGA1UdEwQC\nMAAwDQYJKoZIhvcNAQEFBQADggEBAFCi7ZlkMnESvzlZCvv82Pq6S46AAOTPXdFd\nTMvrh12E1sdVALF1P1oYFJzG1EiZ5ezOx88fEDTW+Lxb9anw5/KJzwtWcfsupf1m\nV7J0D3qKzw5C1wjzYHh9/Pz7B1D0KthQRATQCfNf8s6bbFLaw/dmiIUhHLtIH5Qc\nyfrejTZbOSP77z8NOWir+BWWgIDDB2//3AkDIQvT20vmkZRhkqSdT7et4NmXOX/j\njhPti4b2Fie0LeuvgaOdKjCpQQNrYthZHXeVlOLRhMTSk3qUczenkKTOhvP7IS9q\n+Dzv5hqgSfvMG392KWh5f8xXfJNs4W5KLbZyl901MeReiLrPH3w=\n-----END CERTIFICATE-----", -          "key": "-----BEGIN PRIVATE KEY-----\nMIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMrvgu6ZTTefNN7j\njiZbS/xvQjyXjYMN7oVXv76jbX8gjMOmg9m0xoVZZFAE4XyQDuCm47VRx5Qrf/YL\nXmB2VtCFvB0AhXr5zSeWzPwaAPrjA4ebG+LUo24ziS8KqNxrFs1MmNrQUgZyQC6X\nIe1JHXc9t+JlL5UZyZQC1IfaJulDAgMBAAECgYEAnxOjEj/vrLNLMZE1Q9H7PZVF\nWdP/JQVNvQ7tCpZ3ZdjxHwkvf//aQnuxS5yX2Rnf37BS/TZu+TIkK4373CfHomSx\nUTAn2FsLmOJljupgGcoeLx5K5nu7B7rY5L1NHvdpxZ4YjeISrRtEPvRakllENU5y\ngJE8c2eQOx08ZSRE4TkCQQD7dws2/FldqwdjJucYijsJVuUdoTqxP8gWL6bB251q\nelP2/a6W2elqOcWId28560jG9ZS3cuKvnmu/4LG88vZFAkEAzphrH3673oTsHN+d\nuBd5uyrlnGjWjuiMKv2TPITZcWBjB8nJDSvLneHF59MYwejNNEof2tRjgFSdImFH\nmi995wJBAMtPjW6wiqRz0i41VuT9ZgwACJBzOdvzQJfHgSD9qgFb1CU/J/hpSRIM\nkYvrXK9MbvQFvG6x4VuyT1W8mpe1LK0CQAo8VPpffhFdRpF7psXLK/XQ/0VLkG3O\nKburipLyBg/u9ZkaL0Ley5zL5dFBjTV2Qkx367Ic2b0u9AYTCcgi2DsCQQD3zZ7B\nv7BOm7MkylKokY2MduFFXU0Bxg6pfZ7q3rvg8gqhUFbaMStPRYg6myiDiW/JfLhF\nTcFT4touIo7oriFJ\n-----END PRIVATE KEY-----", -          "caCertificate": "-----BEGIN CERTIFICATE-----\nMIIEFzCCAv+gAwIBAgIJALK1iUpF2VQLMA0GCSqGSIb3DQEBBQUAMIGhMQswCQYD\nVQQGEwJVUzELMAkGA1UECAwCU0MxFTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoG\nA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDEQMA4GA1UECwwHVGVzdCBDQTEaMBgG\nA1UEAwwRd3d3LmV4YW1wbGVjYS5jb20xIjAgBgkqhkiG9w0BCQEWE2V4YW1wbGVA\nZXhhbXBsZS5jb20wHhcNMTUwMTEyMTQxNTAxWhcNMjUwMTA5MTQxNTAxWjCBoTEL\nMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlNDMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkx\nHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxEDAOBgNVBAsMB1Rlc3QgQ0Ex\nGjAYBgNVBAMMEXd3dy5leGFtcGxlY2EuY29tMSIwIAYJKoZIhvcNAQkBFhNleGFt\ncGxlQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nw2rK1J2NMtQj0KDug7g7HRKl5jbf0QMkMKyTU1fBtZ0cCzvsF4CqV11LK4BSVWaK\nrzkaXe99IVJnH8KdOlDl5Dh/+cJ3xdkClSyeUT4zgb6CCBqg78ePp+nN11JKuJlV\nIG1qdJpB1J5O/kCLsGcTf7RS74MtqMFo96446Zvt7YaBhWPz6gDaO/TUzfrNcGLA\nEfHVXkvVWqb3gqXUztZyVex/gtP9FXQ7gxTvJml7UkmT0VAFjtZnCqmFxpLZFZ15\n+qP9O7Q2MpsGUO/4vDAuYrKBeg1ZdPSi8gwqUP2qWsGd9MIWRv3thI2903BczDc7\nr8WaIbm37vYZAS9G56E4+wIDAQABo1AwTjAdBgNVHQ4EFgQUugLrSJshOBk5TSsU\nANs4+SmJUGwwHwYDVR0jBBgwFoAUugLrSJshOBk5TSsUANs4+SmJUGwwDAYDVR0T\nBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaMJ33zAMV4korHo5aPfayV3uHoYZ\n1ChzP3eSsF+FjoscpoNSKs91ZXZF6LquzoNezbfiihK4PYqgwVD2+O0/Ty7UjN4S\nqzFKVR4OS/6lCJ8YncxoFpTntbvjgojf1DEataKFUN196PAANc3yz8cWHF4uvjPv\nWkgFqbIjb+7D1YgglNyovXkRDlRZl0LD1OQ0ZWhd4Ge1qx8mmmanoBeYZ9+DgpFC\nj9tQAbS867yeOryNe7sEOIpXAAqK/DTu0hB6+ySsDfMo4piXCc2aA/eI2DCuw08e\nw17Dz9WnupZjVdwTKzDhFgJZMLDqn37HQnT6EemLFqbcR0VPEnfyhDtZIQ==\n-----END CERTIFICATE-----" -        } -      } -    }, -    { -      "kind": "DeploymentConfig", -      "apiVersion": "v1", -      "metadata": { -        "name": "${JENKINS_SERVICE_NAME}", -        "creationTimestamp": null -      }, -      "spec": { -        "strategy": { -          "type": "Recreate" -        }, -        "triggers": [ -          { -            "type": "ImageChange", -            "imageChangeParams": { -              "automatic": true, -              "containerNames": [ -                "jenkins" -              ], -              "from": { -                "kind": "ImageStreamTag", -                "name": "jenkins:1", -                "namespace": "openshift" -              } -            } -          }, -          { -            "type": "ConfigChange" -          } -        ], -        "replicas": 1, -        "selector": { -          "name": "${JENKINS_SERVICE_NAME}" -        }, -        "template": { -          "metadata": { -            "creationTimestamp": null, -            "labels": { -              "name": "${JENKINS_SERVICE_NAME}" -            } -          }, -          "spec": { -            "serviceAccountName": "${JENKINS_SERVICE_NAME}", -            "containers": [ -              { -                "name": "jenkins", -                "image": " ", -                "readinessProbe": { -                  "timeoutSeconds": 3, -                  "initialDelaySeconds": 3, -                  "httpGet": { -                    "path": "/login", -                    "port": 8080 -                  } -                }, -                "livenessProbe": { -                    "timeoutSeconds": 3, -                    "initialDelaySeconds": 120, -                    "httpGet": { -                        "path": "/login", -                        "port": 8080 -                    } -                }, -                "env": [ -                  { -                    "name": "JENKINS_PASSWORD", -                    "value": "${JENKINS_PASSWORD}" -                  }, -                  { -                    "name": "KUBERNETES_MASTER", -                    "value": "https://kubernetes.default:443" -                  }, -                  { -                    "name": "KUBERNETES_TRUST_CERTIFICATES", -                    "value": "true" -                  } -                ], -                "resources": { -                  "limits": { -                    "memory": "${MEMORY_LIMIT}" -                  } -                }, -                "volumeMounts": [ -                  { -                    "name": "${JENKINS_SERVICE_NAME}-data", -                    "mountPath": "/var/lib/jenkins" -                  } -                ], -                "terminationMessagePath": "/dev/termination-log", -                "imagePullPolicy": "IfNotPresent", -                "capabilities": {}, -                "securityContext": { -                  "capabilities": {}, -                  "privileged": false -                } -              } -            ], -            "volumes": [ -              { -                "name": "${JENKINS_SERVICE_NAME}-data", -                "emptyDir": { -                  "medium": "" -                } -              } -            ], -            "restartPolicy": "Always", -            "dnsPolicy": "ClusterFirst" -          } -        } -      } -    }, -    { -      "kind": "ServiceAccount", -        "apiVersion": "v1", -        "metadata": { -            "name": "${JENKINS_SERVICE_NAME}" -        } -    }, -    { -      "kind": "RoleBinding", -      "apiVersion": "v1", -      "metadata": { -          "name": "${JENKINS_SERVICE_NAME}_edit" -      }, -      "groupNames": null, -      "subjects": [ -          { -              "kind": "ServiceAccount", -              "name": "${JENKINS_SERVICE_NAME}" -          } -      ], -      "roleRef": { -          "name": "edit" -      } -    }, -    { -      "kind": "Service", -      "apiVersion": "v1", -      "metadata": { -        "name": "jenkins-jnlp" -      }, -      "spec": { -        "ports": [ -          { -            "name": "agent", -            "protocol": "TCP", -            "port": 50000, -            "targetPort": 50000, -            "nodePort": 0 -          } -        ], -        "selector": { -          "name": "${JENKINS_SERVICE_NAME}" -        }, -        "portalIP": "", -        "type": "ClusterIP", -        "sessionAffinity": "None" -      } -    }, -    { -       "kind": "Service", -       "apiVersion": "v1", -       "metadata": { -         "name": "${JENKINS_SERVICE_NAME}", -         "annotations": { -           "service.alpha.openshift.io/dependencies": "[{\"name\": \"jenkins-jnlp\", \"namespace\": \"\", \"kind\": \"Service\"}]", -           "service.openshift.io/infrastructure": "true" -         }, -         "creationTimestamp": null -       }, -       "spec": { -         "ports": [ -           { -             "name": "web", -             "protocol": "TCP", -             "port": 80, -             "targetPort": 8080, -             "nodePort": 0 -           } -         ], -         "selector": { -           "name": "${JENKINS_SERVICE_NAME}" -         }, -         "portalIP": "", -         "type": "ClusterIP", -         "sessionAffinity": "None" -       } -    } -  ], -  "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": "JENKINS_SERVICE_NAME", -      "displayName": "Jenkins Service Name", -      "description": "The name of the OpenShift Service exposed for the Jenkins container.", -      "value": "jenkins" -    }, -    { -      "name": "JENKINS_PASSWORD", -      "displayName": "Jenkins Password", -      "description": "Password for the Jenkins 'admin' user.", -      "generate": "expression", -      "from": "[a-zA-Z0-9]{16}", -      "required": true -    } -  ], -  "labels": { -    "template": "jenkins-pipeline-template" -  } -} | 
