Browse code

Migrate all JSON examples to v1beta3

Michal Fojtik authored on 2015/05/26 19:55:05
Showing 40 changed files
... ...
@@ -1,127 +1,150 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3 2
   "kind": "Template",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5
+    "name": "mongodb",
6
+    "creationTimestamp": null,
5 7
     "annotations": {
6 8
       "description": "This template creates a basic MongoDB database service",
7
-      "tags": "database,mongodb",
8
-      "iconClass" : "icon-mongodb"
9
-    },
10
-    "name": "mongodb"
11
-  },
12
-  "parameters": [
13
-    {
14
-      "description": "database username",
15
-      "from": "user[A-Z0-9]{3}",
16
-      "generate": "expression",
17
-      "name": "MONGODB_USER"
18
-    },
19
-    {
20
-      "description": "database password",
21
-      "from": "[a-zA-Z0-9]{8}",
22
-      "generate": "expression",
23
-      "name": "MONGODB_PASSWORD"
24
-    },
25
-    {
26
-      "description": "database name",
27
-      "name": "MONGODB_DATABASE",
28
-      "value": "sampledb"
9
+      "iconClass": "icon-mongodb",
10
+      "tags": "database,mongodb"
29 11
     }
30
-  ],
31
-  "labels": {
32
-    "template": "mongodb-template"
33 12
   },
34
-  "items": [
13
+  "objects": [
35 14
     {
36
-      "apiVersion": "v1beta3",
37 15
       "kind": "Service",
16
+      "apiVersion": "v1beta3",
38 17
       "metadata": {
39
-        "name": "mongodb"
18
+        "name": "mongodb",
19
+        "creationTimestamp": null
40 20
       },
41 21
       "spec": {
42 22
         "ports": [
43 23
           {
44 24
             "name": "mongo",
45
-            "port": 27017,
46 25
             "protocol": "TCP",
47
-            "targetPort": 27017
26
+            "port": 27017,
27
+            "targetPort": 27017,
28
+            "nodePort": 0
48 29
           }
49 30
         ],
50 31
         "selector": {
51 32
           "name": "mongodb"
52
-        }
33
+        },
34
+        "portalIP": "",
35
+        "type": "ClusterIP",
36
+        "sessionAffinity": "None"
37
+      },
38
+      "status": {
39
+        "loadBalancer": {}
53 40
       }
54 41
     },
55 42
     {
56
-      "apiVersion": "v1beta1",
57 43
       "kind": "DeploymentConfig",
44
+      "apiVersion": "v1beta3",
58 45
       "metadata": {
59
-        "name": "mongodb"
46
+        "name": "mongodb",
47
+        "creationTimestamp": null
60 48
       },
61
-      "template": {
62
-        "controllerTemplate": {
63
-          "podTemplate": {
64
-            "desiredState": {
65
-              "manifest": {
66
-                "containers": [
67
-                  {
68
-                    "env": [
69
-                      {
70
-                        "name": "MONGODB_USER",
71
-                        "value": "${MONGODB_USER}"
72
-                      },
73
-                      {
74
-                        "name": "MONGODB_PASSWORD",
75
-                        "value": "${MONGODB_PASSWORD}"
76
-                      },
77
-                      {
78
-                        "name": "MONGODB_DATABASE",
79
-                        "value": "${MONGODB_DATABASE}"
80
-                      }
81
-                    ],
82
-                    "image": "mongodb",
83
-                    "name": "mongodb",
84
-                    "ports": [
85
-                      {
86
-                        "containerPort": 27017
87
-                      }
88
-                    ]
89
-                  }
90
-                ],
91
-                "version": "v1beta1"
92
-              }
93
-            },
94
-            "labels": {
95
-              "name": "mongodb"
49
+      "spec": {
50
+        "strategy": {
51
+          "type": "Recreate",
52
+          "resources": {}
53
+        },
54
+        "triggers": [
55
+          {
56
+            "type": "ImageChange",
57
+            "imageChangeParams": {
58
+              "automatic": true,
59
+              "containerNames": [
60
+                "mongodb"
61
+              ],
62
+              "from": {
63
+                "kind": "ImageStreamTag",
64
+                "name": "mongodb:latest"
65
+              },
66
+              "lastTriggeredImage": ""
96 67
             }
97 68
           },
98
-          "replicaSelector": {
99
-            "name": "mongodb"
100
-          },
101
-          "replicas": 1
69
+          {
70
+            "type": "ConfigChange"
71
+          }
72
+        ],
73
+        "replicas": 1,
74
+        "selector": {
75
+          "name": "mongodb"
102 76
         },
103
-        "strategy": {
104
-          "type": "Recreate"
105
-        }
106
-      },
107
-      "triggers": [
108
-        {
109
-          "imageChangeParams": {
110
-            "automatic": true,
111
-            "containerNames": [
112
-              "mongodb"
113
-            ],
114
-            "from": {
77
+        "template": {
78
+          "metadata": {
79
+            "creationTimestamp": null,
80
+            "labels": {
115 81
               "name": "mongodb"
116
-            },
117
-            "tag": "latest"
82
+            }
118 83
           },
119
-          "type": "ImageChange"
120
-        },
121
-        {
122
-          "type": "ConfigChange"
84
+          "spec": {
85
+            "containers": [
86
+              {
87
+                "name": "mongodb",
88
+                "image": "mongodb",
89
+                "ports": [
90
+                  {
91
+                    "containerPort": 27017,
92
+                    "protocol": "TCP"
93
+                  }
94
+                ],
95
+                "env": [
96
+                  {
97
+                    "name": "MONGODB_USER",
98
+                    "value": "${MONGODB_USER}"
99
+                  },
100
+                  {
101
+                    "name": "MONGODB_PASSWORD",
102
+                    "value": "${MONGODB_PASSWORD}"
103
+                  },
104
+                  {
105
+                    "name": "MONGODB_DATABASE",
106
+                    "value": "${MONGODB_DATABASE}"
107
+                  }
108
+                ],
109
+                "resources": {},
110
+                "terminationMessagePath": "/dev/termination-log",
111
+                "imagePullPolicy": "IfNotPresent",
112
+                "capabilities": {},
113
+                "securityContext": {
114
+                  "capabilities": {},
115
+                  "privileged": false
116
+                }
117
+              }
118
+            ],
119
+            "restartPolicy": "Always",
120
+            "dnsPolicy": "ClusterFirst",
121
+            "serviceAccount": ""
122
+          }
123 123
         }
124
-      ]
124
+      },
125
+      "status": {}
125 126
     }
126
-  ]
127
-}
127
+  ],
128
+  "parameters": [
129
+    {
130
+      "name": "MONGODB_USER",
131
+      "description": "database username",
132
+      "generate": "expression",
133
+      "from": "user[A-Z0-9]{3}"
134
+    },
135
+    {
136
+      "name": "MONGODB_PASSWORD",
137
+      "description": "database password",
138
+      "generate": "expression",
139
+      "from": "[a-zA-Z0-9]{8}"
140
+    },
141
+    {
142
+      "name": "MONGODB_DATABASE",
143
+      "description": "database name",
144
+      "value": "sampledb"
145
+    }
146
+  ],
147
+  "labels": {
148
+    "template": "mongodb-template"
149
+  }
150
+}
128 151
\ No newline at end of file
... ...
@@ -1,127 +1,150 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3 2
   "kind": "Template",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5
+    "name": "mysql",
6
+    "creationTimestamp": null,
5 7
     "annotations": {
6 8
       "description": "This template creates a basic MySQL database service",
7
-      "tags": "database,mysql",
8
-      "iconClass" : "icon-mysql-database"
9
-    },
10
-    "name": "mysql"
11
-  },
12
-  "parameters": [
13
-    {
14
-      "description": "database username",
15
-      "from": "user[A-Z0-9]{3}",
16
-      "generate": "expression",
17
-      "name": "MYSQL_USER"
18
-    },
19
-    {
20
-      "description": "database password",
21
-      "from": "[a-zA-Z0-9]{8}",
22
-      "generate": "expression",
23
-      "name": "MYSQL_PASSWORD"
24
-    },
25
-    {
26
-      "description": "database name",
27
-      "name": "MYSQL_DATABASE",
28
-      "value": "sampledb"
9
+      "iconClass": "icon-mysql-database",
10
+      "tags": "database,mysql"
29 11
     }
30
-  ],
31
-  "labels": {
32
-    "template": "mysql-template"
33 12
   },
34
-  "items": [
13
+  "objects": [
35 14
     {
36
-      "apiVersion": "v1beta3",
37 15
       "kind": "Service",
16
+      "apiVersion": "v1beta3",
38 17
       "metadata": {
39
-        "name": "mysql"
18
+        "name": "mysql",
19
+        "creationTimestamp": null
40 20
       },
41 21
       "spec": {
42 22
         "ports": [
43 23
           {
44 24
             "name": "mysql",
45
-            "port": 3306,
46 25
             "protocol": "TCP",
47
-            "targetPort": 3306
26
+            "port": 3306,
27
+            "targetPort": 3306,
28
+            "nodePort": 0
48 29
           }
49 30
         ],
50 31
         "selector": {
51 32
           "name": "mysql"
52
-        }
33
+        },
34
+        "portalIP": "",
35
+        "type": "ClusterIP",
36
+        "sessionAffinity": "None"
37
+      },
38
+      "status": {
39
+        "loadBalancer": {}
53 40
       }
54 41
     },
55 42
     {
56
-      "apiVersion": "v1beta1",
57 43
       "kind": "DeploymentConfig",
44
+      "apiVersion": "v1beta3",
58 45
       "metadata": {
59
-        "name": "mysql"
46
+        "name": "mysql",
47
+        "creationTimestamp": null
60 48
       },
61
-      "template": {
62
-        "controllerTemplate": {
63
-          "podTemplate": {
64
-            "desiredState": {
65
-              "manifest": {
66
-                "containers": [
67
-                  {
68
-                    "env": [
69
-                      {
70
-                        "name": "MYSQL_USER",
71
-                        "value": "${MYSQL_USER}"
72
-                      },
73
-                      {
74
-                        "name": "MYSQL_PASSWORD",
75
-                        "value": "${MYSQL_PASSWORD}"
76
-                      },
77
-                      {
78
-                        "name": "MYSQL_DATABASE",
79
-                        "value": "${MYSQL_DATABASE}"
80
-                      }
81
-                    ],
82
-                    "image": "mysql",
83
-                    "name": "mysql",
84
-                    "ports": [
85
-                      {
86
-                        "containerPort": 3306
87
-                      }
88
-                    ]
89
-                  }
90
-                ],
91
-                "version": "v1beta1"
92
-              }
93
-            },
94
-            "labels": {
95
-              "name": "mysql"
49
+      "spec": {
50
+        "strategy": {
51
+          "type": "Recreate",
52
+          "resources": {}
53
+        },
54
+        "triggers": [
55
+          {
56
+            "type": "ImageChange",
57
+            "imageChangeParams": {
58
+              "automatic": true,
59
+              "containerNames": [
60
+                "mysql"
61
+              ],
62
+              "from": {
63
+                "kind": "ImageStreamTag",
64
+                "name": "mysql:latest"
65
+              },
66
+              "lastTriggeredImage": ""
96 67
             }
97 68
           },
98
-          "replicaSelector": {
99
-            "name": "mysql"
100
-          },
101
-          "replicas": 1
69
+          {
70
+            "type": "ConfigChange"
71
+          }
72
+        ],
73
+        "replicas": 1,
74
+        "selector": {
75
+          "name": "mysql"
102 76
         },
103
-        "strategy": {
104
-          "type": "Recreate"
105
-        }
106
-      },
107
-      "triggers": [
108
-        {
109
-          "imageChangeParams": {
110
-            "automatic": true,
111
-            "containerNames": [
112
-              "mysql"
113
-            ],
114
-            "from": {
77
+        "template": {
78
+          "metadata": {
79
+            "creationTimestamp": null,
80
+            "labels": {
115 81
               "name": "mysql"
116
-            },
117
-            "tag": "latest"
82
+            }
118 83
           },
119
-          "type": "ImageChange"
120
-        },
121
-        {
122
-          "type": "ConfigChange"
84
+          "spec": {
85
+            "containers": [
86
+              {
87
+                "name": "mysql",
88
+                "image": "mysql",
89
+                "ports": [
90
+                  {
91
+                    "containerPort": 3306,
92
+                    "protocol": "TCP"
93
+                  }
94
+                ],
95
+                "env": [
96
+                  {
97
+                    "name": "MYSQL_USER",
98
+                    "value": "${MYSQL_USER}"
99
+                  },
100
+                  {
101
+                    "name": "MYSQL_PASSWORD",
102
+                    "value": "${MYSQL_PASSWORD}"
103
+                  },
104
+                  {
105
+                    "name": "MYSQL_DATABASE",
106
+                    "value": "${MYSQL_DATABASE}"
107
+                  }
108
+                ],
109
+                "resources": {},
110
+                "terminationMessagePath": "/dev/termination-log",
111
+                "imagePullPolicy": "IfNotPresent",
112
+                "capabilities": {},
113
+                "securityContext": {
114
+                  "capabilities": {},
115
+                  "privileged": false
116
+                }
117
+              }
118
+            ],
119
+            "restartPolicy": "Always",
120
+            "dnsPolicy": "ClusterFirst",
121
+            "serviceAccount": ""
122
+          }
123 123
         }
124
-      ]
124
+      },
125
+      "status": {}
125 126
     }
126
-  ]
127
-}
127
+  ],
128
+  "parameters": [
129
+    {
130
+      "name": "MYSQL_USER",
131
+      "description": "database username",
132
+      "generate": "expression",
133
+      "from": "user[A-Z0-9]{3}"
134
+    },
135
+    {
136
+      "name": "MYSQL_PASSWORD",
137
+      "description": "database password",
138
+      "generate": "expression",
139
+      "from": "[a-zA-Z0-9]{8}"
140
+    },
141
+    {
142
+      "name": "MYSQL_DATABASE",
143
+      "description": "database name",
144
+      "value": "sampledb"
145
+    }
146
+  ],
147
+  "labels": {
148
+    "template": "mysql-template"
149
+  }
150
+}
128 151
\ No newline at end of file
... ...
@@ -1,127 +1,150 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3 2
   "kind": "Template",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5
+    "name": "postgresql",
6
+    "creationTimestamp": null,
5 7
     "annotations": {
6 8
       "description": "This template creates a basic PostgreSQL database service",
7
-      "tags": "database,postgresql",
8
-      "iconClass" : "icon-postgresql"
9
-    },
10
-    "name": "postgresql"
11
-  },
12
-  "parameters": [
13
-    {
14
-      "description": "database username",
15
-      "from": "user[A-Z0-9]{3}",
16
-      "generate": "expression",
17
-      "name": "POSTGRESQL_USER"
18
-    },
19
-    {
20
-      "description": "database password",
21
-      "from": "[a-zA-Z0-9]{8}",
22
-      "generate": "expression",
23
-      "name": "POSTGRESQL_PASSWORD"
24
-    },
25
-    {
26
-      "description": "database name",
27
-      "name": "POSTGRESQL_DATABASE",
28
-      "value": "sampledb"
9
+      "iconClass": "icon-postgresql",
10
+      "tags": "database,postgresql"
29 11
     }
30
-  ],
31
-  "labels": {
32
-    "template": "postgresql-template"
33 12
   },
34
-  "items": [
13
+  "objects": [
35 14
     {
36
-      "apiVersion": "v1beta3",
37 15
       "kind": "Service",
16
+      "apiVersion": "v1beta3",
38 17
       "metadata": {
39
-        "name": "postgresql"
18
+        "name": "postgresql",
19
+        "creationTimestamp": null
40 20
       },
41 21
       "spec": {
42 22
         "ports": [
43 23
           {
44 24
             "name": "postgresql",
45
-            "port": 5432,
46 25
             "protocol": "TCP",
47
-            "targetPort": 5432
26
+            "port": 5432,
27
+            "targetPort": 5432,
28
+            "nodePort": 0
48 29
           }
49 30
         ],
50 31
         "selector": {
51 32
           "name": "postgresql"
52
-        }
33
+        },
34
+        "portalIP": "",
35
+        "type": "ClusterIP",
36
+        "sessionAffinity": "None"
37
+      },
38
+      "status": {
39
+        "loadBalancer": {}
53 40
       }
54 41
     },
55 42
     {
56
-      "apiVersion": "v1beta1",
57 43
       "kind": "DeploymentConfig",
44
+      "apiVersion": "v1beta3",
58 45
       "metadata": {
59
-        "name": "postgresql"
46
+        "name": "postgresql",
47
+        "creationTimestamp": null
60 48
       },
61
-      "template": {
62
-        "controllerTemplate": {
63
-          "podTemplate": {
64
-            "desiredState": {
65
-              "manifest": {
66
-                "containers": [
67
-                  {
68
-                    "env": [
69
-                      {
70
-                        "name": "POSTGRESQL_USER",
71
-                        "value": "${POSTGRESQL_USER}"
72
-                      },
73
-                      {
74
-                        "name": "POSTGRESQL_PASSWORD",
75
-                        "value": "${POSTGRESQL_PASSWORD}"
76
-                      },
77
-                      {
78
-                        "name": "POSTGRESQL_DATABASE",
79
-                        "value": "${POSTGRESQL_DATABASE}"
80
-                      }
81
-                    ],
82
-                    "image": "postgresql",
83
-                    "name": "postgresql",
84
-                    "ports": [
85
-                      {
86
-                        "containerPort": 5432
87
-                      }
88
-                    ]
89
-                  }
90
-                ],
91
-                "version": "v1beta1"
92
-              }
93
-            },
94
-            "labels": {
95
-              "name": "postgresql"
49
+      "spec": {
50
+        "strategy": {
51
+          "type": "Recreate",
52
+          "resources": {}
53
+        },
54
+        "triggers": [
55
+          {
56
+            "type": "ImageChange",
57
+            "imageChangeParams": {
58
+              "automatic": true,
59
+              "containerNames": [
60
+                "postgresql"
61
+              ],
62
+              "from": {
63
+                "kind": "ImageStreamTag",
64
+                "name": "postgresql:latest"
65
+              },
66
+              "lastTriggeredImage": ""
96 67
             }
97 68
           },
98
-          "replicaSelector": {
99
-            "name": "postgresql"
100
-          },
101
-          "replicas": 1
69
+          {
70
+            "type": "ConfigChange"
71
+          }
72
+        ],
73
+        "replicas": 1,
74
+        "selector": {
75
+          "name": "postgresql"
102 76
         },
103
-        "strategy": {
104
-          "type": "Recreate"
105
-        }
106
-      },
107
-      "triggers": [
108
-        {
109
-          "imageChangeParams": {
110
-            "automatic": true,
111
-            "containerNames": [
112
-              "postgresql"
113
-            ],
114
-            "from": {
77
+        "template": {
78
+          "metadata": {
79
+            "creationTimestamp": null,
80
+            "labels": {
115 81
               "name": "postgresql"
116
-            },
117
-            "tag": "latest"
82
+            }
118 83
           },
119
-          "type": "ImageChange"
120
-        },
121
-        {
122
-          "type": "ConfigChange"
84
+          "spec": {
85
+            "containers": [
86
+              {
87
+                "name": "postgresql",
88
+                "image": "postgresql",
89
+                "ports": [
90
+                  {
91
+                    "containerPort": 5432,
92
+                    "protocol": "TCP"
93
+                  }
94
+                ],
95
+                "env": [
96
+                  {
97
+                    "name": "POSTGRESQL_USER",
98
+                    "value": "${POSTGRESQL_USER}"
99
+                  },
100
+                  {
101
+                    "name": "POSTGRESQL_PASSWORD",
102
+                    "value": "${POSTGRESQL_PASSWORD}"
103
+                  },
104
+                  {
105
+                    "name": "POSTGRESQL_DATABASE",
106
+                    "value": "${POSTGRESQL_DATABASE}"
107
+                  }
108
+                ],
109
+                "resources": {},
110
+                "terminationMessagePath": "/dev/termination-log",
111
+                "imagePullPolicy": "IfNotPresent",
112
+                "capabilities": {},
113
+                "securityContext": {
114
+                  "capabilities": {},
115
+                  "privileged": false
116
+                }
117
+              }
118
+            ],
119
+            "restartPolicy": "Always",
120
+            "dnsPolicy": "ClusterFirst",
121
+            "serviceAccount": ""
122
+          }
123 123
         }
124
-      ]
124
+      },
125
+      "status": {}
125 126
     }
126
-  ]
127
-}
127
+  ],
128
+  "parameters": [
129
+    {
130
+      "name": "POSTGRESQL_USER",
131
+      "description": "database username",
132
+      "generate": "expression",
133
+      "from": "user[A-Z0-9]{3}"
134
+    },
135
+    {
136
+      "name": "POSTGRESQL_PASSWORD",
137
+      "description": "database password",
138
+      "generate": "expression",
139
+      "from": "[a-zA-Z0-9]{8}"
140
+    },
141
+    {
142
+      "name": "POSTGRESQL_DATABASE",
143
+      "description": "database name",
144
+      "value": "sampledb"
145
+    }
146
+  ],
147
+  "labels": {
148
+    "template": "postgresql-template"
149
+  }
150
+}
128 151
\ No newline at end of file
... ...
@@ -1,47 +1,22 @@
1 1
 {
2 2
   "kind": "Template",
3
-  "apiVersion": "v1beta1",
4
-  "labels": {
5
-    "template": "etcd"
6
-  },
3
+  "apiVersion": "v1beta3",
7 4
   "metadata": {
5
+    "name": "etcd",
6
+    "creationTimestamp": null,
8 7
     "annotations": {
9 8
       "description": "Example of clustered etcd",
10
-      "tags": "database,etcd",
11
-      "iconClass" : "icon-database"
12
-    },
13
-    "name": "etcd"
14
-  },
15
-  "parameters": [
16
-    {
17
-      "name": "ETCD_IMAGE",
18
-      "description": "The name of etcd Docker image to use",
19
-      "value": "openshift/etcd-20-centos7"
20
-    },
21
-    {
22
-      "name": "ETCD_NUM_MEMBERS",
23
-      "description": "Maximum number of members to launch (have to match with # of replicas)",
24
-      "value": "3"
25
-    },
26
-    {
27
-      "name": "ETCD_DISCOVERY",
28
-      "description": "A token used for etcd discovery",
29
-      "from": "http://etcd-discovery:2379/v2/keys/discovery/[a-z0-9]{40}",
30
-      "generate": "expression"
31
-    },
32
-    {
33
-      "name": "ETCD_CLUSTER_TOKEN",
34
-      "description": "A token etcd use to generate unique cluster ID and member ID",
35
-      "from": "etcd-cluster-[a-z0-9]{5}",
36
-      "generate": "expression"
9
+      "iconClass": "icon-database",
10
+      "tags": "database,etcd"
37 11
     }
38
-  ],
39
-  "items":[
12
+  },
13
+  "objects": [
40 14
     {
41
-      "apiVersion": "v1beta1",
42 15
       "kind": "ImageStream",
16
+      "apiVersion": "v1beta3",
43 17
       "metadata": {
44
-        "name": "etcd"
18
+        "name": "etcd",
19
+        "creationTimestamp": null
45 20
       },
46 21
       "spec": {
47 22
         "dockerImageRepository": "${ETCD_IMAGE}",
... ...
@@ -56,6 +31,9 @@
56 56
             }
57 57
           }
58 58
         ]
59
+      },
60
+      "status": {
61
+        "dockerImageRepository": ""
59 62
       }
60 63
     },
61 64
     {
... ...
@@ -63,21 +41,29 @@
63 63
       "apiVersion": "v1beta3",
64 64
       "metadata": {
65 65
         "name": "etcd-discovery",
66
+        "creationTimestamp": null,
66 67
         "labels": {
67 68
           "name": "etcd-discovery"
68 69
         }
69 70
       },
70 71
       "spec": {
71
-        "portalIp": "None",
72 72
         "ports": [
73 73
           {
74
+            "protocol": "TCP",
74 75
             "port": 2379,
75
-            "targetPort": 2379
76
+            "targetPort": 2379,
77
+            "nodePort": 0
76 78
           }
77 79
         ],
78 80
         "selector": {
79 81
           "name": "etcd-discovery"
80
-        }
82
+        },
83
+        "portalIP": "None",
84
+        "type": "ClusterIP",
85
+        "sessionAffinity": "None"
86
+      },
87
+      "status": {
88
+        "loadBalancer": {}
81 89
       }
82 90
     },
83 91
     {
... ...
@@ -85,138 +71,204 @@
85 85
       "apiVersion": "v1beta3",
86 86
       "metadata": {
87 87
         "name": "etcd",
88
+        "creationTimestamp": null,
88 89
         "labels": {
89 90
           "name": "etcd"
90 91
         }
91 92
       },
92 93
       "spec": {
93
-        "portalIP": "None",
94 94
         "ports": [
95 95
           {
96 96
             "name": "client",
97
+            "protocol": "TCP",
97 98
             "port": 2379,
98
-            "targetPort": 2379
99
+            "targetPort": 2379,
100
+            "nodePort": 0
99 101
           },
100 102
           {
101 103
             "name": "server",
104
+            "protocol": "TCP",
102 105
             "port": 2380,
103
-            "targetPort": 2380
106
+            "targetPort": 2380,
107
+            "nodePort": 0
104 108
           }
105 109
         ],
106 110
         "selector": {
107 111
           "name": "etcd"
108
-        }
112
+        },
113
+        "portalIP": "None",
114
+        "type": "ClusterIP",
115
+        "sessionAffinity": "None"
116
+      },
117
+      "status": {
118
+        "loadBalancer": {}
109 119
       }
110 120
     },
111 121
     {
112
-      "apiVersion": "v1beta1",
113 122
       "kind": "DeploymentConfig",
123
+      "apiVersion": "v1beta3",
114 124
       "metadata": {
115
-        "name": "etcd-discovery"
125
+        "name": "etcd-discovery",
126
+        "creationTimestamp": null
116 127
       },
117
-      "template": {
118
-        "controllerTemplate": {
119
-          "podTemplate": {
120
-            "desiredState": {
121
-              "manifest": {
122
-                "containers":[
123
-                  {
124
-                    "name":  "discovery",
125
-                    "image": "${ETCD_IMAGE}",
126
-                    "command": ["etcd-discovery.sh"],
127
-                    "ports":[
128
-                      {
129
-                        "containerPort": 2379
130
-                      }
131
-                    ]
132
-                  }
133
-                ],
134
-                "version": "v1beta1"
135
-              }
136
-            },
128
+      "spec": {
129
+        "strategy": {
130
+          "type": "Recreate",
131
+          "resources": {}
132
+        },
133
+        "triggers": [
134
+          {
135
+            "type": "ConfigChange"
136
+          }
137
+        ],
138
+        "replicas": 1,
139
+        "selector": {
140
+          "name": "etcd-discovery"
141
+        },
142
+        "template": {
143
+          "metadata": {
144
+            "creationTimestamp": null,
137 145
             "labels": {
138 146
               "name": "etcd-discovery"
139 147
             }
140 148
           },
141
-          "replicaSelector": {
142
-            "name": "etcd-discovery"
143
-          },
144
-          "replicas": 1
145
-        },
146
-        "strategy": {
147
-          "type": "Recreate"
149
+          "spec": {
150
+            "containers": [
151
+              {
152
+                "name": "discovery",
153
+                "image": "${ETCD_IMAGE}",
154
+                "args": [
155
+                  "etcd-discovery.sh"
156
+                ],
157
+                "ports": [
158
+                  {
159
+                    "containerPort": 2379,
160
+                    "protocol": "TCP"
161
+                  }
162
+                ],
163
+                "resources": {},
164
+                "terminationMessagePath": "/dev/termination-log",
165
+                "imagePullPolicy": "IfNotPresent",
166
+                "capabilities": {},
167
+                "securityContext": {
168
+                  "capabilities": {},
169
+                  "privileged": false
170
+                }
171
+              }
172
+            ],
173
+            "restartPolicy": "Always",
174
+            "dnsPolicy": "ClusterFirst",
175
+            "serviceAccount": ""
176
+          }
148 177
         }
149 178
       },
150
-      "triggers": [
151
-        {
152
-          "type": "ConfigChange"
153
-        }
154
-      ]
155
-    },   
179
+      "status": {}
180
+    },
156 181
     {
157
-      "apiVersion": "v1beta1",
158 182
       "kind": "DeploymentConfig",
183
+      "apiVersion": "v1beta3",
159 184
       "metadata": {
160
-        "name": "etcd"
185
+        "name": "etcd",
186
+        "creationTimestamp": null
161 187
       },
162
-      "template": {
163
-        "controllerTemplate": {
164
-          "podTemplate": {
165
-            "desiredState": {
166
-              "manifest": {
167
-                "containers":[
168
-                  {
169
-                    "name":  "member",
170
-                    "image": "${ETCD_IMAGE}",
171
-                    "env": [
172
-                      {
173
-                        "name": "ETCD_NUM_MEMBERS",
174
-                        "value": "${ETCD_NUM_MEMBERS}"
175
-                      },
176
-                      {
177
-                        "name": "ETCD_INITIAL_CLUSTER_STATE",
178
-                        "value": "new"
179
-                      },
180
-                      {
181
-                        "name": "ETCD_INITIAL_CLUSTER_TOKEN",
182
-                        "value": "${ETCD_CLUSTER_TOKEN}"
183
-                      },
184
-                      {
185
-                        "name": "ETCD_DISCOVERY",
186
-                        "value": "${ETCD_DISCOVERY}"
187
-                      }
188
-                    ],
189
-                    "ports":[
190
-                      {
191
-                        "containerPort": 2379
192
-                      },
193
-                      {
194
-                        "containerPort": 2380
195
-                      }
196
-                    ]
197
-                  }
198
-                ],
199
-                "version": "v1beta1"
200
-              }
201
-            },
188
+      "spec": {
189
+        "strategy": {
190
+          "type": "Recreate",
191
+          "resources": {}
192
+        },
193
+        "triggers": [
194
+          {
195
+            "type": "ConfigChange"
196
+          }
197
+        ],
198
+        "replicas": 3,
199
+        "selector": {
200
+          "name": "etcd"
201
+        },
202
+        "template": {
203
+          "metadata": {
204
+            "creationTimestamp": null,
202 205
             "labels": {
203 206
               "name": "etcd"
204 207
             }
205 208
           },
206
-          "replicaSelector": {
207
-            "name": "etcd"
208
-          },
209
-          "replicas": 3
210
-        },
211
-        "strategy": {
212
-          "type": "Recreate"
209
+          "spec": {
210
+            "containers": [
211
+              {
212
+                "name": "member",
213
+                "image": "${ETCD_IMAGE}",
214
+                "ports": [
215
+                  {
216
+                    "containerPort": 2379,
217
+                    "protocol": "TCP"
218
+                  },
219
+                  {
220
+                    "containerPort": 2380,
221
+                    "protocol": "TCP"
222
+                  }
223
+                ],
224
+                "env": [
225
+                  {
226
+                    "name": "ETCD_NUM_MEMBERS",
227
+                    "value": "${ETCD_NUM_MEMBERS}"
228
+                  },
229
+                  {
230
+                    "name": "ETCD_INITIAL_CLUSTER_STATE",
231
+                    "value": "new"
232
+                  },
233
+                  {
234
+                    "name": "ETCD_INITIAL_CLUSTER_TOKEN",
235
+                    "value": "${ETCD_CLUSTER_TOKEN}"
236
+                  },
237
+                  {
238
+                    "name": "ETCD_DISCOVERY",
239
+                    "value": "${ETCD_DISCOVERY}"
240
+                  }
241
+                ],
242
+                "resources": {},
243
+                "terminationMessagePath": "/dev/termination-log",
244
+                "imagePullPolicy": "IfNotPresent",
245
+                "capabilities": {},
246
+                "securityContext": {
247
+                  "capabilities": {},
248
+                  "privileged": false
249
+                }
250
+              }
251
+            ],
252
+            "restartPolicy": "Always",
253
+            "dnsPolicy": "ClusterFirst",
254
+            "serviceAccount": ""
255
+          }
213 256
         }
214 257
       },
215
-      "triggers": [
216
-        {
217
-          "type": "ConfigChange"
218
-        }
219
-      ]
220
-    }    
221
-  ]
222
-}
258
+      "status": {}
259
+    }
260
+  ],
261
+  "parameters": [
262
+    {
263
+      "name": "ETCD_IMAGE",
264
+      "description": "The name of etcd Docker image to use",
265
+      "value": "openshift/etcd-20-centos7"
266
+    },
267
+    {
268
+      "name": "ETCD_NUM_MEMBERS",
269
+      "description": "Maximum number of members to launch (have to match with # of replicas)",
270
+      "value": "3"
271
+    },
272
+    {
273
+      "name": "ETCD_DISCOVERY",
274
+      "description": "A token used for etcd discovery",
275
+      "generate": "expression",
276
+      "from": "http://etcd-discovery:2379/v2/keys/discovery/[a-z0-9]{40}"
277
+    },
278
+    {
279
+      "name": "ETCD_CLUSTER_TOKEN",
280
+      "description": "A token etcd use to generate unique cluster ID and member ID",
281
+      "generate": "expression",
282
+      "from": "etcd-cluster-[a-z0-9]{5}"
283
+    }
284
+  ],
285
+  "labels": {
286
+    "template": "etcd"
287
+  }
288
+}
223 289
\ No newline at end of file
... ...
@@ -1,26 +1,38 @@
1 1
 {
2
-  "apiVersion": "v1beta2",
3
-  "desiredState": {
4
-    "manifest": {
5
-      "containers": [
6
-        {
7
-          "image": "openshift/hello-openshift",
8
-          "name": "hello-openshift",
9
-          "ports": [
10
-            {
11
-              "containerPort": 8080,
12
-              "hostPort": 6061
13
-            }
14
-          ]
15
-        }
16
-      ],
17
-      "id": "hello-openshift",
18
-      "version": "v1beta1"
2
+  "kind": "Pod",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {
5
+    "name": "hello-openshift",
6
+    "creationTimestamp": null,
7
+    "labels": {
8
+      "name": "hello-openshift"
19 9
     }
20 10
   },
21
-  "id": "hello-openshift",
22
-  "kind": "Pod",
23
-  "labels": {
24
-    "name": "hello-openshift"
25
-  }
26
-}
11
+  "spec": {
12
+    "containers": [
13
+      {
14
+        "name": "hello-openshift",
15
+        "image": "openshift/hello-openshift",
16
+        "ports": [
17
+          {
18
+            "hostPort": 6061,
19
+            "containerPort": 8080,
20
+            "protocol": "TCP"
21
+          }
22
+        ],
23
+        "resources": {},
24
+        "terminationMessagePath": "/dev/termination-log",
25
+        "imagePullPolicy": "IfNotPresent",
26
+        "capabilities": {},
27
+        "securityContext": {
28
+          "capabilities": {},
29
+          "privileged": false
30
+        }
31
+      }
32
+    ],
33
+    "restartPolicy": "Always",
34
+    "dnsPolicy": "ClusterFirst",
35
+    "serviceAccount": ""
36
+  },
37
+  "status": {}
38
+}
27 39
\ No newline at end of file
... ...
@@ -1,14 +1,17 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3
-  "displayName": "Hello OpenShift",
4 2
   "kind": "Project",
3
+  "apiVersion": "v1beta3",
5 4
   "metadata": {
6
-    "annotations": {
7
-      "description": "This is an example project to demonstrate OpenShift v3"
8
-    },
5
+    "name": "hello-openshift-project",
6
+    "creationTimestamp": null,
9 7
     "labels": {
10 8
       "name": "hello-openshift-project"
11 9
     },
12
-    "name": "hello-openshift-project"
13
-  }
14
-}
10
+    "annotations": {
11
+      "description": "This is an example project to demonstrate OpenShift v3",
12
+      "displayName": "Hello OpenShift"
13
+    }
14
+  },
15
+  "spec": {},
16
+  "status": {}
17
+}
15 18
\ No newline at end of file
... ...
@@ -1,14 +1,17 @@
1 1
 {
2
-  "apiVersion": "v1beta3",
3 2
   "kind": "Project",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5
-    "annotations": {
6
-      "description": "This is an example project to demonstrate OpenShift v3",
7
-      "displayName": "Hello OpenShift"
8
-    },
5
+    "name": "hello-openshift-project",
6
+    "creationTimestamp": null,
9 7
     "labels": {
10 8
       "name": "hello-openshift-project"
11 9
     },
12
-    "name": "hello-openshift-project"
13
-  }
14
-}
10
+    "annotations": {
11
+      "description": "This is an example project to demonstrate OpenShift v3",
12
+      "displayName": "Hello OpenShift"
13
+    }
14
+  },
15
+  "spec": {},
16
+  "status": {}
17
+}
15 18
\ No newline at end of file
... ...
@@ -1,66 +1,79 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
2
+  "kind": "ImageStreamList",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
3 5
   "items": [
4 6
     {
5
-      "apiVersion": "v1beta1",
6
-      "dockerImageRepository": "openshift/ruby-20-centos7",
7
-      "kind": "ImageRepository",
8 7
       "metadata": {
9
-        "name": "ruby-20-centos7"
8
+        "name": "ruby-20-centos7",
9
+        "creationTimestamp": null
10 10
       },
11
-      "tags": {
11
+      "spec": {
12
+        "dockerImageRepository": "openshift/ruby-20-centos7"
13
+      },
14
+      "status": {
15
+        "dockerImageRepository": ""
12 16
       }
13 17
     },
14 18
     {
15
-      "apiVersion": "v1beta1",
16
-      "dockerImageRepository": "openshift/nodejs-010-centos7",
17
-      "kind": "ImageRepository",
18 19
       "metadata": {
19
-        "name": "nodejs-010-centos7"
20
+        "name": "nodejs-010-centos7",
21
+        "creationTimestamp": null
22
+      },
23
+      "spec": {
24
+        "dockerImageRepository": "openshift/nodejs-010-centos7"
20 25
       },
21
-      "tags": {
26
+      "status": {
27
+        "dockerImageRepository": ""
22 28
       }
23 29
     },
24 30
     {
25
-      "apiVersion": "v1beta1",
26
-      "dockerImageRepository": "openshift/wildfly-8-centos",
27
-      "kind": "ImageRepository",
28 31
       "metadata": {
29
-        "name": "wildfly-8-centos"
32
+        "name": "wildfly-8-centos",
33
+        "creationTimestamp": null
34
+      },
35
+      "spec": {
36
+        "dockerImageRepository": "openshift/wildfly-8-centos"
30 37
       },
31
-      "tags": {
38
+      "status": {
39
+        "dockerImageRepository": ""
32 40
       }
33 41
     },
34 42
     {
35
-      "apiVersion": "v1beta1",
36
-      "dockerImageRepository": "openshift/mysql-55-centos7",
37
-      "kind": "ImageRepository",
38 43
       "metadata": {
39
-        "name": "mysql-55-centos7"
44
+        "name": "mysql-55-centos7",
45
+        "creationTimestamp": null
40 46
       },
41
-      "tags": {
47
+      "spec": {
48
+        "dockerImageRepository": "openshift/mysql-55-centos7"
49
+      },
50
+      "status": {
51
+        "dockerImageRepository": ""
42 52
       }
43 53
     },
44 54
     {
45
-      "apiVersion": "v1beta1",
46
-      "dockerImageRepository": "openshift/postgresql-92-centos7",
47
-      "kind": "ImageRepository",
48 55
       "metadata": {
49
-        "name": "postgresql-92-centos7"
56
+        "name": "postgresql-92-centos7",
57
+        "creationTimestamp": null
58
+      },
59
+      "spec": {
60
+        "dockerImageRepository": "openshift/postgresql-92-centos7"
50 61
       },
51
-      "tags": {
62
+      "status": {
63
+        "dockerImageRepository": ""
52 64
       }
53 65
     },
54 66
     {
55
-      "apiVersion": "v1beta1",
56
-      "dockerImageRepository": "openshift/mongodb-24-centos7",
57
-      "kind": "ImageRepository",
58 67
       "metadata": {
59
-        "name": "mongodb-24-centos7"
68
+        "name": "mongodb-24-centos7",
69
+        "creationTimestamp": null
70
+      },
71
+      "spec": {
72
+        "dockerImageRepository": "openshift/mongodb-24-centos7"
60 73
       },
61
-      "tags": {
74
+      "status": {
75
+        "dockerImageRepository": ""
62 76
       }
63 77
     }
64
-  ],
65
-  "kind": "ImageRepositoryList"
66
-}
78
+  ]
79
+}
67 80
\ No newline at end of file
... ...
@@ -1,12 +1,14 @@
1 1
 {
2
-  "apiVersion": "v1beta3",
3 2
   "kind": "ImageStreamList",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
4 5
   "items": [
5 6
     {
6
-      "apiVersion": "v1beta3",
7 7
       "kind": "ImageStream",
8
+      "apiVersion": "v1beta3",
8 9
       "metadata": {
9
-        "name": "ruby"
10
+        "name": "ruby",
11
+        "creationTimestamp": null
10 12
       },
11 13
       "spec": {
12 14
         "dockerImageRepository": "openshift/ruby-20-centos7",
... ...
@@ -21,13 +23,17 @@
21 21
             }
22 22
           }
23 23
         ]
24
+      },
25
+      "status": {
26
+        "dockerImageRepository": ""
24 27
       }
25 28
     },
26 29
     {
27
-      "apiVersion": "v1beta3",
28 30
       "kind": "ImageStream",
31
+      "apiVersion": "v1beta3",
29 32
       "metadata": {
30
-        "name": "nodejs"
33
+        "name": "nodejs",
34
+        "creationTimestamp": null
31 35
       },
32 36
       "spec": {
33 37
         "dockerImageRepository": "openshift/nodejs-010-centos7",
... ...
@@ -35,20 +41,24 @@
35 35
           {
36 36
             "name": "latest",
37 37
             "annotations": {
38
-              "description" : "Build and run NodeJS 0.10 applications",
39
-              "iconClass" : "icon-nodejs",
40
-              "tags" : "builder,nodejs",
41
-              "version" : "0.10"
38
+              "description": "Build and run NodeJS 0.10 applications",
39
+              "iconClass": "icon-nodejs",
40
+              "tags": "builder,nodejs",
41
+              "version": "0.10"
42 42
             }
43 43
           }
44 44
         ]
45
+      },
46
+      "status": {
47
+        "dockerImageRepository": ""
45 48
       }
46 49
     },
47 50
     {
48
-      "apiVersion": "v1beta3",
49 51
       "kind": "ImageStream",
52
+      "apiVersion": "v1beta3",
50 53
       "metadata": {
51
-        "name": "perl"
54
+        "name": "perl",
55
+        "creationTimestamp": null
52 56
       },
53 57
       "spec": {
54 58
         "dockerImageRepository": "openshift/perl-516-centos7",
... ...
@@ -63,13 +73,17 @@
63 63
             }
64 64
           }
65 65
         ]
66
+      },
67
+      "status": {
68
+        "dockerImageRepository": ""
66 69
       }
67 70
     },
68 71
     {
69
-      "apiVersion": "v1beta3",
70 72
       "kind": "ImageStream",
73
+      "apiVersion": "v1beta3",
71 74
       "metadata": {
72
-        "name": "php"
75
+        "name": "php",
76
+        "creationTimestamp": null
73 77
       },
74 78
       "spec": {
75 79
         "dockerImageRepository": "openshift/php-55-centos7",
... ...
@@ -84,13 +98,17 @@
84 84
             }
85 85
           }
86 86
         ]
87
+      },
88
+      "status": {
89
+        "dockerImageRepository": ""
87 90
       }
88 91
     },
89 92
     {
90
-      "apiVersion": "v1beta3",
91 93
       "kind": "ImageStream",
94
+      "apiVersion": "v1beta3",
92 95
       "metadata": {
93
-        "name": "python"
96
+        "name": "python",
97
+        "creationTimestamp": null
94 98
       },
95 99
       "spec": {
96 100
         "dockerImageRepository": "openshift/python-33-centos7",
... ...
@@ -105,13 +123,17 @@
105 105
             }
106 106
           }
107 107
         ]
108
+      },
109
+      "status": {
110
+        "dockerImageRepository": ""
108 111
       }
109 112
     },
110 113
     {
111
-      "apiVersion": "v1beta3",
112 114
       "kind": "ImageStream",
115
+      "apiVersion": "v1beta3",
113 116
       "metadata": {
114
-        "name": "wildfly"
117
+        "name": "wildfly",
118
+        "creationTimestamp": null
115 119
       },
116 120
       "spec": {
117 121
         "dockerImageRepository": "openshift/wildfly-8-centos",
... ...
@@ -119,59 +141,74 @@
119 119
           {
120 120
             "name": "latest",
121 121
             "annotations": {
122
-              "description" : "Build and run Java applications on Wildfly 8",
123
-              "iconClass" : "icon-wildfly",
124
-              "tags" : "builder,wildfly,java",
125
-              "version" : "8"
122
+              "description": "Build and run Java applications on Wildfly 8",
123
+              "iconClass": "icon-wildfly",
124
+              "tags": "builder,wildfly,java",
125
+              "version": "8"
126 126
             }
127 127
           }
128 128
         ]
129
+      },
130
+      "status": {
131
+        "dockerImageRepository": ""
129 132
       }
130 133
     },
131 134
     {
132
-      "apiVersion": "v1beta3",
133 135
       "kind": "ImageStream",
136
+      "apiVersion": "v1beta3",
134 137
       "metadata": {
135
-        "name": "mysql"
138
+        "name": "mysql",
139
+        "creationTimestamp": null
136 140
       },
137 141
       "spec": {
138 142
         "dockerImageRepository": "openshift/mysql-55-centos7",
139 143
         "tags": [
140 144
           {
141
-            "name":"latest"
145
+            "name": "latest"
142 146
           }
143 147
         ]
148
+      },
149
+      "status": {
150
+        "dockerImageRepository": ""
144 151
       }
145 152
     },
146 153
     {
147
-      "apiVersion": "v1beta3",
148 154
       "kind": "ImageStream",
155
+      "apiVersion": "v1beta3",
149 156
       "metadata": {
150
-        "name": "postgresql"
157
+        "name": "postgresql",
158
+        "creationTimestamp": null
151 159
       },
152 160
       "spec": {
153 161
         "dockerImageRepository": "openshift/postgresql-92-centos7",
154 162
         "tags": [
155 163
           {
156
-            "name":"latest"
164
+            "name": "latest"
157 165
           }
158 166
         ]
167
+      },
168
+      "status": {
169
+        "dockerImageRepository": ""
159 170
       }
160 171
     },
161 172
     {
162
-      "apiVersion": "v1beta3",
163 173
       "kind": "ImageStream",
174
+      "apiVersion": "v1beta3",
164 175
       "metadata": {
165
-        "name": "mongodb"
176
+        "name": "mongodb",
177
+        "creationTimestamp": null
166 178
       },
167 179
       "spec": {
168 180
         "dockerImageRepository": "openshift/mongodb-24-centos7",
169 181
         "tags": [
170 182
           {
171
-            "name":"latest"
183
+            "name": "latest"
172 184
           }
173 185
         ]
186
+      },
187
+      "status": {
188
+        "dockerImageRepository": ""
174 189
       }
175 190
     }
176 191
   ]
177
-}
192
+}
178 193
\ No newline at end of file
... ...
@@ -1,12 +1,14 @@
1 1
 {
2
-  "apiVersion": "v1beta3",
3 2
   "kind": "ImageStreamList",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
4 5
   "items": [
5 6
     {
6
-      "apiVersion": "v1beta3",
7 7
       "kind": "ImageStream",
8
+      "apiVersion": "v1beta3",
8 9
       "metadata": {
9
-        "name": "ruby"
10
+        "name": "ruby",
11
+        "creationTimestamp": null
10 12
       },
11 13
       "spec": {
12 14
         "dockerImageRepository": "registry.access.redhat.com/openshift3_beta/ruby-20-rhel7",
... ...
@@ -21,13 +23,17 @@
21 21
             }
22 22
           }
23 23
         ]
24
+      },
25
+      "status": {
26
+        "dockerImageRepository": ""
24 27
       }
25 28
     },
26 29
     {
27
-      "apiVersion": "v1beta3",
28 30
       "kind": "ImageStream",
31
+      "apiVersion": "v1beta3",
29 32
       "metadata": {
30
-        "name": "nodejs"
33
+        "name": "nodejs",
34
+        "creationTimestamp": null
31 35
       },
32 36
       "spec": {
33 37
         "dockerImageRepository": "registry.access.redhat.com/openshift3_beta/nodejs-010-rhel7",
... ...
@@ -35,20 +41,24 @@
35 35
           {
36 36
             "name": "latest",
37 37
             "annotations": {
38
-              "description" : "Build and run NodeJS 0.10 applications",
39
-              "iconClass" : "icon-nodejs",
40
-              "tags" : "builder,nodejs",
41
-              "version" : "0.10"
38
+              "description": "Build and run NodeJS 0.10 applications",
39
+              "iconClass": "icon-nodejs",
40
+              "tags": "builder,nodejs",
41
+              "version": "0.10"
42 42
             }
43 43
           }
44 44
         ]
45
+      },
46
+      "status": {
47
+        "dockerImageRepository": ""
45 48
       }
46 49
     },
47 50
     {
48
-      "apiVersion": "v1beta3",
49 51
       "kind": "ImageStream",
52
+      "apiVersion": "v1beta3",
50 53
       "metadata": {
51
-        "name": "perl"
54
+        "name": "perl",
55
+        "creationTimestamp": null
52 56
       },
53 57
       "spec": {
54 58
         "dockerImageRepository": "registry.access.redhat.com/openshift3_beta/perl-516-rhel7",
... ...
@@ -63,13 +73,17 @@
63 63
             }
64 64
           }
65 65
         ]
66
+      },
67
+      "status": {
68
+        "dockerImageRepository": ""
66 69
       }
67 70
     },
68 71
     {
69
-      "apiVersion": "v1beta3",
70 72
       "kind": "ImageStream",
73
+      "apiVersion": "v1beta3",
71 74
       "metadata": {
72
-        "name": "php"
75
+        "name": "php",
76
+        "creationTimestamp": null
73 77
       },
74 78
       "spec": {
75 79
         "dockerImageRepository": "registry.access.redhat.com/openshift3_beta/php-55-rhel7",
... ...
@@ -84,13 +98,17 @@
84 84
             }
85 85
           }
86 86
         ]
87
+      },
88
+      "status": {
89
+        "dockerImageRepository": ""
87 90
       }
88 91
     },
89 92
     {
90
-      "apiVersion": "v1beta3",
91 93
       "kind": "ImageStream",
94
+      "apiVersion": "v1beta3",
92 95
       "metadata": {
93
-        "name": "python"
96
+        "name": "python",
97
+        "creationTimestamp": null
94 98
       },
95 99
       "spec": {
96 100
         "dockerImageRepository": "registry.access.redhat.com/openshift3_beta/python-33-rhel7",
... ...
@@ -105,52 +123,67 @@
105 105
             }
106 106
           }
107 107
         ]
108
+      },
109
+      "status": {
110
+        "dockerImageRepository": ""
108 111
       }
109 112
     },
110 113
     {
111
-      "apiVersion": "v1beta3",
112 114
       "kind": "ImageStream",
115
+      "apiVersion": "v1beta3",
113 116
       "metadata": {
114
-        "name": "mysql"
117
+        "name": "mysql",
118
+        "creationTimestamp": null
115 119
       },
116 120
       "spec": {
117 121
         "dockerImageRepository": "registry.access.redhat.com/openshift3_beta/mysql-55-rhel7",
118 122
         "tags": [
119 123
           {
120
-            "name":"latest"
124
+            "name": "latest"
121 125
           }
122 126
         ]
127
+      },
128
+      "status": {
129
+        "dockerImageRepository": ""
123 130
       }
124 131
     },
125 132
     {
126
-      "apiVersion": "v1beta3",
127 133
       "kind": "ImageStream",
134
+      "apiVersion": "v1beta3",
128 135
       "metadata": {
129
-        "name": "postgresql"
136
+        "name": "postgresql",
137
+        "creationTimestamp": null
130 138
       },
131 139
       "spec": {
132 140
         "dockerImageRepository": "registry.access.redhat.com/openshift3_beta/postgresql-92-rhel7",
133 141
         "tags": [
134 142
           {
135
-            "name":"latest"
143
+            "name": "latest"
136 144
           }
137 145
         ]
146
+      },
147
+      "status": {
148
+        "dockerImageRepository": ""
138 149
       }
139 150
     },
140 151
     {
141
-      "apiVersion": "v1beta3",
142 152
       "kind": "ImageStream",
153
+      "apiVersion": "v1beta3",
143 154
       "metadata": {
144
-        "name": "mongodb"
155
+        "name": "mongodb",
156
+        "creationTimestamp": null
145 157
       },
146 158
       "spec": {
147 159
         "dockerImageRepository": "registry.access.redhat.com/openshift3_beta/mongodb-24-rhel7",
148 160
         "tags": [
149 161
           {
150
-            "name":"latest"
162
+            "name": "latest"
151 163
           }
152 164
         ]
165
+      },
166
+      "status": {
167
+        "dockerImageRepository": ""
153 168
       }
154 169
     }
155 170
   ]
156
-}
171
+}
157 172
\ No newline at end of file
... ...
@@ -1,397 +1,530 @@
1 1
 {
2
-    "annotations": {
3
-        "description": "This example shows how to create a simple ruby application in openshift origin v3"
2
+  "kind": "Template",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {
5
+    "name": "ruby-helloworld-sample",
6
+    "creationTimestamp": null
7
+  },
8
+  "objects": [
9
+    {
10
+      "kind": "ImageStream",
11
+      "apiVersion": "v1beta3",
12
+      "metadata": {
13
+        "name": "origin-ruby-sample",
14
+        "creationTimestamp": null
15
+      },
16
+      "spec": {},
17
+      "status": {
18
+        "dockerImageRepository": ""
19
+      }
4 20
     },
5
-    "apiVersion": "v1beta1",
6
-    "items": [
7
-        {
8
-            "apiVersion": "v1beta1",
9
-            "kind": "ImageStream",
10
-            "metadata": {
11
-                "name": "origin-ruby-sample"
21
+    {
22
+      "kind": "BuildConfig",
23
+      "apiVersion": "v1beta3",
24
+      "metadata": {
25
+        "name": "ruby-test-build",
26
+        "creationTimestamp": null,
27
+        "labels": {
28
+          "name": "ruby-test-build"
29
+        }
30
+      },
31
+      "spec": {
32
+        "triggers": [
33
+          {
34
+            "type": "github",
35
+            "github": {
36
+              "secret": "secret101"
37
+            }
38
+          },
39
+          {
40
+            "type": "generic",
41
+            "generic": {
42
+              "secret": "secret101"
12 43
             }
44
+          }
45
+        ],
46
+        "source": {
47
+          "type": "Git",
48
+          "git": {
49
+            "uri": "git://github.com/openshift/ruby-hello-world.git"
50
+          }
13 51
         },
14
-        {
15
-            "apiVersion": "v1beta1",
16
-            "kind": "BuildConfig",
17
-            "metadata": {
18
-                "labels": {
19
-                    "name": "ruby-test-build"
20
-                },
21
-                "name": "ruby-test-build"
22
-            },
23
-            "parameters": {
24
-                "output": {
25
-                    "tag": "test",
26
-                    "to": {
27
-                        "name": "origin-ruby-sample"
28
-                    }
29
-                },
30
-                "source": {
31
-                    "git": {
32
-                        "uri": "git://github.com/openshift/ruby-hello-world.git"
33
-                    },
34
-                    "type": "Git"
35
-                },
36
-                "strategy": {
37
-                    "stiStrategy": {
38
-                        "image": "openshift/ruby-20-centos7"
39
-                    },
40
-                    "type": "STI"
41
-                }
52
+        "strategy": {
53
+          "type": "Source",
54
+          "sourceStrategy": {
55
+            "from": {
56
+              "kind": "DockerImage",
57
+              "name": "openshift/ruby-20-centos7"
42 58
             },
43
-            "triggers": [
44
-                {
45
-                    "github": {
46
-                        "secret": "secret101"
47
-                    },
48
-                    "type": "github"
49
-                },
50
-                {
51
-                    "generic": {
52
-                        "secret": "secret101"
53
-                    },
54
-                    "type": "generic"
55
-                }
56
-            ]
59
+            "incremental": true
60
+          }
61
+        },
62
+        "output": {
63
+          "to": {
64
+            "kind": "ImageStreamTag",
65
+            "name": "origin-ruby-sample:test"
66
+          }
57 67
         },
58
-        {
59
-            "apiVersion": "v1beta2",
60
-            "containerPort": 8080,
61
-            "id": "frontend-prod",
62
-            "kind": "Service",
63
-            "name": "origin-ruby-sample",
68
+        "resources": {}
69
+      },
70
+      "status": {
71
+        "lastVersion": 0
72
+      }
73
+    },
74
+    {
75
+      "kind": "Service",
76
+      "apiVersion": "v1beta3",
77
+      "metadata": {
78
+        "name": "frontend-prod",
79
+        "creationTimestamp": null
80
+      },
81
+      "spec": {
82
+        "ports": [
83
+          {
84
+            "protocol": "TCP",
64 85
             "port": 5432,
65
-            "selector": {
66
-                "name": "frontend-prod"
67
-            }
86
+            "targetPort": 8080,
87
+            "nodePort": 0
88
+          }
89
+        ],
90
+        "selector": {
91
+          "name": "frontend-prod"
68 92
         },
69
-        {
70
-            "apiVersion": "v1beta1",
71
-            "kind": "DeploymentConfig",
72
-            "metadata": {
73
-                "name": "frontend-prod"
74
-            },
75
-            "template": {
76
-                "controllerTemplate": {
77
-                    "podTemplate": {
78
-                        "desiredState": {
79
-                            "manifest": {
80
-                                "containers": [
81
-                                    {
82
-                                        "env": [
83
-                                            {
84
-                                                "name": "ADMIN_USERNAME",
85
-                                                "value": "${ADMIN_USERNAME}"
86
-                                            },
87
-                                            {
88
-                                                "name": "ADMIN_PASSWORD",
89
-                                                "value": "${ADMIN_PASSWORD}"
90
-                                            },
91
-                                            {
92
-                                                "name": "MYSQL_ROOT_PASSWORD",
93
-                                                "value": "${MYSQL_ROOT_PASSWORD}"
94
-                                            },
95
-                                            {
96
-                                                "name": "MYSQL_DATABASE",
97
-                                                "value": "${MYSQL_DATABASE}"
98
-                                            },
99
-                                            {
100
-                                                "name": "RACK_ENV",
101
-                                                "value": "production"
102
-                                            },
103
-                                            {
104
-                                                "name": "RAILS_ENV",
105
-                                                "value": "production"
106
-                                            }
107
-                                        ],
108
-                                        "image": "origin-ruby-sample",
109
-                                        "name": "ruby-helloworld-prod",
110
-                                        "ports": [
111
-                                            {
112
-                                                "containerPort": 8080
113
-                                            }
114
-                                        ]
115
-                                    }
116
-                                ],
117
-                                "version": "v1beta1"
118
-                            }
119
-                        },
120
-                        "labels": {
121
-                            "name": "frontend-prod"
122
-                        }
123
-                    },
124
-                    "replicaSelector": {
125
-                        "name": "frontend-prod"
126
-                    },
127
-                    "replicas": 1
128
-                },
129
-                "strategy": {
130
-                    "type": "Recreate"
131
-                }
132
-            },
133
-            "triggers": [
134
-                {
135
-                    "imageChangeParams": {
136
-                        "automatic": true,
137
-                        "containerNames": [
138
-                            "ruby-helloworld-prod"
139
-                        ],
140
-                        "from": {
141
-                            "name": "origin-ruby-sample"
142
-                        },
143
-                        "tag": "prod"
144
-                    },
145
-                    "type": "ImageChange"
146
-                }
147
-            ]
93
+        "portalIP": "",
94
+        "type": "ClusterIP",
95
+        "sessionAffinity": "None"
96
+      },
97
+      "status": {
98
+        "loadBalancer": {}
99
+      }
100
+    },
101
+    {
102
+      "kind": "DeploymentConfig",
103
+      "apiVersion": "v1beta3",
104
+      "metadata": {
105
+        "name": "frontend-prod",
106
+        "creationTimestamp": null
107
+      },
108
+      "spec": {
109
+        "strategy": {
110
+          "type": "Recreate",
111
+          "resources": {}
148 112
         },
149
-        {
150
-            "apiVersion": "v1beta2",
151
-            "containerPort": 3306,
152
-            "id": "database",
153
-            "kind": "Service",
154
-            "port": 5434,
155
-            "selector": {
156
-                "name": "database-prod"
113
+        "triggers": [
114
+          {
115
+            "type": "ImageChange",
116
+            "imageChangeParams": {
117
+              "automatic": true,
118
+              "containerNames": [
119
+                "ruby-helloworld-prod"
120
+              ],
121
+              "from": {
122
+                "kind": "ImageStreamTag",
123
+                "name": "origin-ruby-sample:latest"
124
+              },
125
+              "lastTriggeredImage": ""
157 126
             }
127
+          }
128
+        ],
129
+        "replicas": 1,
130
+        "selector": {
131
+          "name": "frontend-prod"
158 132
         },
159
-        {
160
-            "apiVersion": "v1beta1",
161
-            "kind": "DeploymentConfig",
162
-            "metadata": {
163
-                "name": "database-prod"
164
-            },
165
-            "template": {
166
-                "controllerTemplate": {
167
-                    "podTemplate": {
168
-                        "desiredState": {
169
-                            "manifest": {
170
-                                "containers": [
171
-                                    {
172
-                                        "env": [
173
-                                            {
174
-                                                "name": "MYSQL_ROOT_PASSWORD",
175
-                                                "value": "${MYSQL_ROOT_PASSWORD}"
176
-                                            },
177
-                                            {
178
-                                                "name": "MYSQL_DATABASE",
179
-                                                "value": "${MYSQL_DATABASE}"
180
-                                            }
181
-                                        ],
182
-                                        "image": "mysql",
183
-                                        "name": "ruby-helloworld-database",
184
-                                        "ports": [
185
-                                            {
186
-                                                "containerPort": 3306
187
-                                            }
188
-                                        ]
189
-                                    }
190
-                                ],
191
-                                "version": "v1beta1"
192
-                            }
193
-                        },
194
-                        "labels": {
195
-                            "name": "database-prod"
196
-                        }
197
-                    },
198
-                    "replicaSelector": {
199
-                        "name": "database-prod"
200
-                    },
201
-                    "replicas": 1
202
-                },
203
-                "strategy": {
204
-                    "type": "Recreate"
205
-                }
206
-            },
207
-            "triggers": [
208
-                {
209
-                    "type": "ConfigChange"
133
+        "template": {
134
+          "metadata": {
135
+            "creationTimestamp": null,
136
+            "labels": {
137
+              "name": "frontend-prod"
138
+            }
139
+          },
140
+          "spec": {
141
+            "containers": [
142
+              {
143
+                "name": "ruby-helloworld-prod",
144
+                "image": "origin-ruby-sample",
145
+                "ports": [
146
+                  {
147
+                    "containerPort": 8080,
148
+                    "protocol": "TCP"
149
+                  }
150
+                ],
151
+                "env": [
152
+                  {
153
+                    "name": "ADMIN_USERNAME",
154
+                    "value": "${ADMIN_USERNAME}"
155
+                  },
156
+                  {
157
+                    "name": "ADMIN_PASSWORD",
158
+                    "value": "${ADMIN_PASSWORD}"
159
+                  },
160
+                  {
161
+                    "name": "MYSQL_ROOT_PASSWORD",
162
+                    "value": "${MYSQL_ROOT_PASSWORD}"
163
+                  },
164
+                  {
165
+                    "name": "MYSQL_DATABASE",
166
+                    "value": "${MYSQL_DATABASE}"
167
+                  },
168
+                  {
169
+                    "name": "RACK_ENV",
170
+                    "value": "production"
171
+                  },
172
+                  {
173
+                    "name": "RAILS_ENV",
174
+                    "value": "production"
175
+                  }
176
+                ],
177
+                "resources": {},
178
+                "terminationMessagePath": "/dev/termination-log",
179
+                "imagePullPolicy": "IfNotPresent",
180
+                "capabilities": {},
181
+                "securityContext": {
182
+                  "capabilities": {},
183
+                  "privileged": false
210 184
                 }
211
-            ]
185
+              }
186
+            ],
187
+            "restartPolicy": "Always",
188
+            "dnsPolicy": "ClusterFirst",
189
+            "serviceAccount": ""
190
+          }
191
+        }
192
+      },
193
+      "status": {}
194
+    },
195
+    {
196
+      "kind": "Service",
197
+      "apiVersion": "v1beta3",
198
+      "metadata": {
199
+        "name": "database",
200
+        "creationTimestamp": null
201
+      },
202
+      "spec": {
203
+        "ports": [
204
+          {
205
+            "protocol": "TCP",
206
+            "port": 5434,
207
+            "targetPort": 3306,
208
+            "nodePort": 0
209
+          }
210
+        ],
211
+        "selector": {
212
+          "name": "database-prod"
212 213
         },
213
-        {
214
-            "apiVersion": "v1beta2",
215
-            "containerPort": 8080,
216
-            "id": "frontend-test",
217
-            "kind": "Service",
218
-            "port": 5432,
219
-            "selector": {
220
-                "name": "frontend-test"
221
-            }
214
+        "portalIP": "",
215
+        "type": "ClusterIP",
216
+        "sessionAffinity": "None"
217
+      },
218
+      "status": {
219
+        "loadBalancer": {}
220
+      }
221
+    },
222
+    {
223
+      "kind": "DeploymentConfig",
224
+      "apiVersion": "v1beta3",
225
+      "metadata": {
226
+        "name": "database-prod",
227
+        "creationTimestamp": null
228
+      },
229
+      "spec": {
230
+        "strategy": {
231
+          "type": "Recreate",
232
+          "resources": {}
222 233
         },
223
-        {
224
-            "apiVersion": "v1beta1",
225
-            "kind": "DeploymentConfig",
226
-            "metadata": {
227
-                "name": "frontend-test"
228
-            },
229
-            "template": {
230
-                "controllerTemplate": {
231
-                    "podTemplate": {
232
-                        "desiredState": {
233
-                            "manifest": {
234
-                                "containers": [
235
-                                    {
236
-                                        "env": [
237
-                                            {
238
-                                                "name": "ADMIN_USERNAME",
239
-                                                "value": "${ADMIN_USERNAME}"
240
-                                            },
241
-                                            {
242
-                                                "name": "ADMIN_PASSWORD",
243
-                                                "value": "${ADMIN_PASSWORD}"
244
-                                            },
245
-                                            {
246
-                                                "name": "MYSQL_ROOT_PASSWORD",
247
-                                                "value": "${MYSQL_ROOT_PASSWORD}"
248
-                                            },
249
-                                            {
250
-                                                "name": "MYSQL_DATABASE",
251
-                                                "value": "${MYSQL_DATABASE}"
252
-                                            },
253
-                                            {
254
-                                                "name": "RACK_ENV",
255
-                                                "value": "test"
256
-                                            },
257
-                                            {
258
-                                                "name": "RAILS_ENV",
259
-                                                "value": "test"
260
-                                            }
261
-                                        ],
262
-                                        "image": "origin-ruby-sample",
263
-                                        "name": "ruby-helloworld-test",
264
-                                        "ports": [
265
-                                            {
266
-                                                "containerPort": 8080
267
-                                            }
268
-                                        ]
269
-                                    }
270
-                                ],
271
-                                "version": "v1beta1"
272
-                            }
273
-                        },
274
-                        "labels": {
275
-                            "name": "frontend-test"
276
-                        }
277
-                    },
278
-                    "replicaSelector": {
279
-                        "name": "frontend-test"
280
-                    },
281
-                    "replicas": 1
282
-                },
283
-                "strategy": {
284
-                    "type": "Recreate"
285
-                }
286
-            },
287
-            "triggers": [
288
-                {
289
-                    "imageChangeParams": {
290
-                        "automatic": true,
291
-                        "containerNames": [
292
-                            "ruby-helloworld-test"
293
-                        ],
294
-                        "from": {
295
-                            "name": "origin-ruby-sample"
296
-                        },
297
-                        "tag": "test"
298
-                    },
299
-                    "type": "ImageChange"
234
+        "triggers": [
235
+          {
236
+            "type": "ConfigChange"
237
+          }
238
+        ],
239
+        "replicas": 1,
240
+        "selector": {
241
+          "name": "database-prod"
242
+        },
243
+        "template": {
244
+          "metadata": {
245
+            "creationTimestamp": null,
246
+            "labels": {
247
+              "name": "database-prod"
248
+            }
249
+          },
250
+          "spec": {
251
+            "containers": [
252
+              {
253
+                "name": "ruby-helloworld-database",
254
+                "image": "mysql",
255
+                "ports": [
256
+                  {
257
+                    "containerPort": 3306,
258
+                    "protocol": "TCP"
259
+                  }
260
+                ],
261
+                "env": [
262
+                  {
263
+                    "name": "MYSQL_ROOT_PASSWORD",
264
+                    "value": "${MYSQL_ROOT_PASSWORD}"
265
+                  },
266
+                  {
267
+                    "name": "MYSQL_DATABASE",
268
+                    "value": "${MYSQL_DATABASE}"
269
+                  }
270
+                ],
271
+                "resources": {},
272
+                "terminationMessagePath": "/dev/termination-log",
273
+                "imagePullPolicy": "IfNotPresent",
274
+                "capabilities": {},
275
+                "securityContext": {
276
+                  "capabilities": {},
277
+                  "privileged": false
300 278
                 }
301
-            ]
279
+              }
280
+            ],
281
+            "restartPolicy": "Always",
282
+            "dnsPolicy": "ClusterFirst",
283
+            "serviceAccount": ""
284
+          }
285
+        }
286
+      },
287
+      "status": {}
288
+    },
289
+    {
290
+      "kind": "Service",
291
+      "apiVersion": "v1beta3",
292
+      "metadata": {
293
+        "name": "frontend-test",
294
+        "creationTimestamp": null
295
+      },
296
+      "spec": {
297
+        "ports": [
298
+          {
299
+            "protocol": "TCP",
300
+            "port": 5432,
301
+            "targetPort": 8080,
302
+            "nodePort": 0
303
+          }
304
+        ],
305
+        "selector": {
306
+          "name": "frontend-test"
302 307
         },
303
-        {
304
-            "apiVersion": "v1beta2",
305
-            "containerPort": 3306,
306
-            "id": "database-test",
307
-            "kind": "Service",
308
-            "port": 6434,
309
-            "selector": {
310
-                "name": "database-test"
308
+        "portalIP": "",
309
+        "type": "ClusterIP",
310
+        "sessionAffinity": "None"
311
+      },
312
+      "status": {
313
+        "loadBalancer": {}
314
+      }
315
+    },
316
+    {
317
+      "kind": "DeploymentConfig",
318
+      "apiVersion": "v1beta3",
319
+      "metadata": {
320
+        "name": "frontend-test",
321
+        "creationTimestamp": null
322
+      },
323
+      "spec": {
324
+        "strategy": {
325
+          "type": "Recreate",
326
+          "resources": {}
327
+        },
328
+        "triggers": [
329
+          {
330
+            "type": "ImageChange",
331
+            "imageChangeParams": {
332
+              "automatic": true,
333
+              "containerNames": [
334
+                "ruby-helloworld-test"
335
+              ],
336
+              "from": {
337
+                "kind": "ImageStreamTag",
338
+                "name": "origin-ruby-sample:test"
339
+              },
340
+              "lastTriggeredImage": ""
311 341
             }
342
+          }
343
+        ],
344
+        "replicas": 1,
345
+        "selector": {
346
+          "name": "frontend-test"
312 347
         },
313
-        {
314
-            "apiVersion": "v1beta1",
315
-            "kind": "DeploymentConfig",
316
-            "metadata": {
317
-                "name": "database-test"
318
-            },
319
-            "template": {
320
-                "controllerTemplate": {
321
-                    "podTemplate": {
322
-                        "desiredState": {
323
-                            "manifest": {
324
-                                "containers": [
325
-                                    {
326
-                                        "env": [
327
-                                            {
328
-                                                "name": "MYSQL_ROOT_PASSWORD",
329
-                                                "value": "${MYSQL_ROOT_PASSWORD}"
330
-                                            },
331
-                                            {
332
-                                                "name": "MYSQL_DATABASE",
333
-                                                "value": "${MYSQL_DATABASE}"
334
-                                            }
335
-                                        ],
336
-                                        "image": "mysql",
337
-                                        "name": "ruby-helloworld-database",
338
-                                        "ports": [
339
-                                            {
340
-                                                "containerPort": 3306
341
-                                            }
342
-                                        ]
343
-                                    }
344
-                                ],
345
-                                "version": "v1beta1"
346
-                            }
347
-                        },
348
-                        "labels": {
349
-                            "name": "database-test"
350
-                        }
351
-                    },
352
-                    "replicaSelector": {
353
-                        "name": "database-test"
354
-                    },
355
-                    "replicas": 1
356
-                },
357
-                "strategy": {
358
-                    "type": "Recreate"
359
-                }
360
-            },
361
-            "triggers": [
362
-                {
363
-                    "type": "ConfigChange"
348
+        "template": {
349
+          "metadata": {
350
+            "creationTimestamp": null,
351
+            "labels": {
352
+              "name": "frontend-test"
353
+            }
354
+          },
355
+          "spec": {
356
+            "containers": [
357
+              {
358
+                "name": "ruby-helloworld-test",
359
+                "image": "origin-ruby-sample:test",
360
+                "ports": [
361
+                  {
362
+                    "containerPort": 8080,
363
+                    "protocol": "TCP"
364
+                  }
365
+                ],
366
+                "env": [
367
+                  {
368
+                    "name": "ADMIN_USERNAME",
369
+                    "value": "${ADMIN_USERNAME}"
370
+                  },
371
+                  {
372
+                    "name": "ADMIN_PASSWORD",
373
+                    "value": "${ADMIN_PASSWORD}"
374
+                  },
375
+                  {
376
+                    "name": "MYSQL_ROOT_PASSWORD",
377
+                    "value": "${MYSQL_ROOT_PASSWORD}"
378
+                  },
379
+                  {
380
+                    "name": "MYSQL_DATABASE",
381
+                    "value": "${MYSQL_DATABASE}"
382
+                  },
383
+                  {
384
+                    "name": "RACK_ENV",
385
+                    "value": "test"
386
+                  },
387
+                  {
388
+                    "name": "RAILS_ENV",
389
+                    "value": "test"
390
+                  }
391
+                ],
392
+                "resources": {},
393
+                "terminationMessagePath": "/dev/termination-log",
394
+                "imagePullPolicy": "IfNotPresent",
395
+                "capabilities": {},
396
+                "securityContext": {
397
+                  "capabilities": {},
398
+                  "privileged": false
364 399
                 }
365
-            ]
400
+              }
401
+            ],
402
+            "restartPolicy": "Always",
403
+            "dnsPolicy": "ClusterFirst",
404
+            "serviceAccount": ""
405
+          }
366 406
         }
367
-    ],
368
-    "kind": "Template",
369
-    "metadata": {
370
-        "name": "ruby-helloworld-sample"
407
+      },
408
+      "status": {}
371 409
     },
372
-    "parameters": [
373
-        {
374
-            "description": "administrator username",
375
-            "from": "admin[A-Z0-9]{3}",
376
-            "generate": "expression",
377
-            "name": "ADMIN_USERNAME"
410
+    {
411
+      "kind": "Service",
412
+      "apiVersion": "v1beta3",
413
+      "metadata": {
414
+        "name": "database-test",
415
+        "creationTimestamp": null
416
+      },
417
+      "spec": {
418
+        "ports": [
419
+          {
420
+            "protocol": "TCP",
421
+            "port": 6434,
422
+            "targetPort": 3306,
423
+            "nodePort": 0
424
+          }
425
+        ],
426
+        "selector": {
427
+          "name": "database-test"
378 428
         },
379
-        {
380
-            "description": "administrator password",
381
-            "from": "[a-zA-Z0-9]{8}",
382
-            "generate": "expression",
383
-            "name": "ADMIN_PASSWORD"
429
+        "portalIP": "",
430
+        "type": "ClusterIP",
431
+        "sessionAffinity": "None"
432
+      },
433
+      "status": {
434
+        "loadBalancer": {}
435
+      }
436
+    },
437
+    {
438
+      "kind": "DeploymentConfig",
439
+      "apiVersion": "v1beta3",
440
+      "metadata": {
441
+        "name": "database-test",
442
+        "creationTimestamp": null
443
+      },
444
+      "spec": {
445
+        "strategy": {
446
+          "type": "Recreate",
447
+          "resources": {}
384 448
         },
385
-        {
386
-            "description": "database password",
387
-            "from": "[a-zA-Z0-9]{8}",
388
-            "generate": "expression",
389
-            "name": "MYSQL_ROOT_PASSWORD"
449
+        "triggers": [
450
+          {
451
+            "type": "ConfigChange"
452
+          }
453
+        ],
454
+        "replicas": 1,
455
+        "selector": {
456
+          "name": "database-test"
390 457
         },
391
-        {
392
-            "description": "database name",
393
-            "name": "MYSQL_DATABASE",
394
-            "value": "root"
458
+        "template": {
459
+          "metadata": {
460
+            "creationTimestamp": null,
461
+            "labels": {
462
+              "name": "database-test"
463
+            }
464
+          },
465
+          "spec": {
466
+            "containers": [
467
+              {
468
+                "name": "ruby-helloworld-database",
469
+                "image": "mysql",
470
+                "ports": [
471
+                  {
472
+                    "containerPort": 3306,
473
+                    "protocol": "TCP"
474
+                  }
475
+                ],
476
+                "env": [
477
+                  {
478
+                    "name": "MYSQL_ROOT_PASSWORD",
479
+                    "value": "${MYSQL_ROOT_PASSWORD}"
480
+                  },
481
+                  {
482
+                    "name": "MYSQL_DATABASE",
483
+                    "value": "${MYSQL_DATABASE}"
484
+                  }
485
+                ],
486
+                "resources": {},
487
+                "terminationMessagePath": "/dev/termination-log",
488
+                "imagePullPolicy": "IfNotPresent",
489
+                "capabilities": {},
490
+                "securityContext": {
491
+                  "capabilities": {},
492
+                  "privileged": false
493
+                }
494
+              }
495
+            ],
496
+            "restartPolicy": "Always",
497
+            "dnsPolicy": "ClusterFirst",
498
+            "serviceAccount": ""
499
+          }
395 500
         }
396
-    ]
397
-}
501
+      },
502
+      "status": {}
503
+    }
504
+  ],
505
+  "parameters": [
506
+    {
507
+      "name": "ADMIN_USERNAME",
508
+      "description": "administrator username",
509
+      "generate": "expression",
510
+      "from": "admin[A-Z0-9]{3}"
511
+    },
512
+    {
513
+      "name": "ADMIN_PASSWORD",
514
+      "description": "administrator password",
515
+      "generate": "expression",
516
+      "from": "[a-zA-Z0-9]{8}"
517
+    },
518
+    {
519
+      "name": "MYSQL_ROOT_PASSWORD",
520
+      "description": "database password",
521
+      "generate": "expression",
522
+      "from": "[a-zA-Z0-9]{8}"
523
+    },
524
+    {
525
+      "name": "MYSQL_DATABASE",
526
+      "description": "database name",
527
+      "value": "root"
528
+    }
529
+  ]
530
+}
398 531
\ No newline at end of file
... ...
@@ -1,6 +1,7 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3
-  "creationTimestamp": "2014-09-18T18:28:38-04:00",
2
+  "kind": "Config",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
4 5
   "items": [
5 6
     {
6 7
       "apiVersion": "v1beta2",
... ...
@@ -59,9 +60,5 @@
59 59
         }
60 60
       ]
61 61
     }
62
-  ],
63
-  "kind": "Config",
64
-  "metadata": {
65
-    "name": "jenkins"
66
-  }
67
-}
62
+  ]
63
+}
68 64
\ No newline at end of file
... ...
@@ -1,313 +1,383 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3
-  "items": [
2
+  "kind": "Template",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {
5
+    "name": "ruby-helloworld-sample",
6
+    "creationTimestamp": null,
7
+    "annotations": {
8
+      "description": "This example shows how to create a simple ruby application in openshift origin v3"
9
+    }
10
+  },
11
+  "objects": [
4 12
     {
5
-      "apiVersion": "v1beta3",
6 13
       "kind": "Service",
14
+      "apiVersion": "v1beta3",
7 15
       "metadata": {
8
-        "name": "frontend"
16
+        "name": "frontend",
17
+        "creationTimestamp": null
9 18
       },
10 19
       "spec": {
11 20
         "ports": [
12 21
           {
13 22
             "name": "web",
14
-            "port": 5432,
15 23
             "protocol": "TCP",
16
-            "targetPort": 8080
24
+            "port": 5432,
25
+            "targetPort": 8080,
26
+            "nodePort": 0
17 27
           }
18 28
         ],
19 29
         "selector": {
20 30
           "name": "frontend"
21
-        }
31
+        },
32
+        "portalIP": "",
33
+        "type": "ClusterIP",
34
+        "sessionAffinity": "None"
35
+      },
36
+      "status": {
37
+        "loadBalancer": {}
22 38
       }
23 39
     },
24 40
     {
25
-      "apiVersion": "v1beta1",
26
-      "host": "www.example.com",
27
-      "id": "sample-app-secure",
28 41
       "kind": "Route",
42
+      "apiVersion": "v1beta3",
29 43
       "metadata": {
30
-        "name": "route-edge"
44
+        "name": "route-edge",
45
+        "creationTimestamp": null
31 46
       },
32
-      "serviceName": "frontend",
33
-      "tls": {
34
-        "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-----",
35
-        "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-----",
36
-        "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-----",
37
-        "termination": "edge"
38
-      }
47
+      "spec": {
48
+        "host": "www.example.com",
49
+        "to": {
50
+          "kind": "Service",
51
+          "name": "frontend"
52
+        },
53
+        "tls": {
54
+          "termination": "edge",
55
+          "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-----",
56
+          "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-----",
57
+          "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-----"
58
+        }
59
+      },
60
+      "status": {}
39 61
     },
40 62
     {
41
-      "apiVersion": "v1beta1",
42 63
       "kind": "ImageStream",
64
+      "apiVersion": "v1beta3",
43 65
       "metadata": {
44
-        "name": "origin-ruby-sample"
66
+        "name": "origin-ruby-sample",
67
+        "creationTimestamp": null
68
+      },
69
+      "spec": {},
70
+      "status": {
71
+        "dockerImageRepository": ""
45 72
       }
46 73
     },
47 74
     {
48
-      "apiVersion": "v1beta1",
49 75
       "kind": "ImageStream",
76
+      "apiVersion": "v1beta3",
50 77
       "metadata": {
51
-        "name": "origin-custom-docker-builder"
78
+        "name": "origin-custom-docker-builder",
79
+        "creationTimestamp": null
52 80
       },
53 81
       "spec": {
54 82
         "dockerImageRepository": "openshift/origin-custom-docker-builder"
83
+      },
84
+      "status": {
85
+        "dockerImageRepository": ""
55 86
       }
56 87
     },
57 88
     {
58
-      "apiVersion": "v1beta1",
59 89
       "kind": "BuildConfig",
90
+      "apiVersion": "v1beta3",
60 91
       "metadata": {
61 92
         "name": "ruby-sample-build",
93
+        "creationTimestamp": null,
62 94
         "labels": {
63 95
           "name": "ruby-sample-build"
64 96
         }
65 97
       },
66
-      "parameters": {
67
-        "output": {
68
-          "to": {
69
-            "name": "origin-ruby-sample"
98
+      "spec": {
99
+        "triggers": [
100
+          {
101
+            "type": "github",
102
+            "github": {
103
+              "secret": "secret101"
104
+            }
105
+          },
106
+          {
107
+            "type": "generic",
108
+            "generic": {
109
+              "secret": "secret101"
110
+            }
111
+          },
112
+          {
113
+            "type": "imageChange",
114
+            "imageChange": {}
115
+          },
116
+          {
117
+            "type": "ConfigChange"
70 118
           }
71
-        },
119
+        ],
72 120
         "source": {
121
+          "type": "Git",
73 122
           "git": {
74 123
             "uri": "git://github.com/openshift/ruby-hello-world.git"
75
-          },
76
-          "type": "Git"
124
+          }
77 125
         },
78 126
         "strategy": {
127
+          "type": "Custom",
79 128
           "customStrategy": {
129
+            "from": {
130
+              "kind": "ImageStreamTag",
131
+              "name": "origin-custom-docker-builder:latest"
132
+            },
80 133
             "env": [
81 134
               {
82 135
                 "name": "OPENSHIFT_CUSTOM_BUILD_BASE_IMAGE",
83 136
                 "value": "openshift/origin-custom-docker-builder"
84 137
               }
85 138
             ],
86
-            "exposeDockerSocket": true,
87
-            "from": {
88
-              "kind": "ImageStreamTag",
89
-              "name": "origin-custom-docker-builder:latest"
90
-            }
91
-          },
92
-          "type": "Custom"
93
-        }
94
-      },
95
-      "triggers": [
96
-        {
97
-          "github": {
98
-            "secret": "secret101"
99
-          },
100
-          "type": "github"
101
-        },
102
-        {
103
-          "generic": {
104
-            "secret": "secret101"
105
-          },
106
-          "type": "generic"
139
+            "exposeDockerSocket": true
140
+          }
107 141
         },
108
-        {
109
-          "imageChange": {},
110
-          "type": "imageChange"
142
+        "output": {
143
+          "to": {
144
+            "kind": "ImageStreamTag",
145
+            "name": "origin-ruby-sample:latest"
146
+          }
111 147
         },
112
-        {
113
-          "type": "ConfigChange"
114
-        }
115
-      ]
148
+        "resources": {}
149
+      },
150
+      "status": {
151
+        "lastVersion": 0
152
+      }
116 153
     },
117 154
     {
118
-      "apiVersion": "v1beta1",
119 155
       "kind": "DeploymentConfig",
156
+      "apiVersion": "v1beta3",
120 157
       "metadata": {
121
-        "name": "frontend"
158
+        "name": "frontend",
159
+        "creationTimestamp": null
122 160
       },
123
-      "template": {
124
-        "controllerTemplate": {
125
-          "podTemplate": {
126
-            "desiredState": {
127
-              "manifest": {
128
-                "containers": [
129
-                  {
130
-                    "env": [
131
-                      {
132
-                        "name": "ADMIN_USERNAME",
133
-                        "value": "${ADMIN_USERNAME}"
134
-                      },
135
-                      {
136
-                        "name": "ADMIN_PASSWORD",
137
-                        "value": "${ADMIN_PASSWORD}"
138
-                      },
139
-                      {
140
-                        "name": "MYSQL_USER",
141
-                        "value": "${MYSQL_USER}"
142
-                      },
143
-                      {
144
-                        "name": "MYSQL_PASSWORD",
145
-                        "value": "${MYSQL_PASSWORD}"
146
-                      },
147
-                      {
148
-                        "name": "MYSQL_DATABASE",
149
-                        "value": "${MYSQL_DATABASE}"
150
-                      }
151
-                    ],
152
-                    "image": "origin-ruby-sample",
153
-                    "name": "ruby-helloworld",
154
-                    "ports": [
155
-                      {
156
-                        "containerPort": 8080
157
-                      }
158
-                    ]
159
-                  }
160
-                ],
161
-                "version": "v1beta1"
162
-              }
163
-            },
161
+      "spec": {
162
+        "strategy": {
163
+          "type": "Rolling",
164
+          "rollingParams": {
165
+            "updatePeriodSeconds": 1,
166
+            "intervalSeconds": 1,
167
+            "timeoutSeconds": 120
168
+          },
169
+          "resources": {}
170
+        },
171
+        "triggers": [
172
+          {
173
+            "type": "ImageChange",
174
+            "imageChangeParams": {
175
+              "automatic": true,
176
+              "containerNames": [
177
+                "ruby-helloworld"
178
+              ],
179
+              "from": {
180
+                "kind": "ImageStreamTag",
181
+                "name": "origin-ruby-sample:latest"
182
+              },
183
+              "lastTriggeredImage": ""
184
+            }
185
+          }
186
+        ],
187
+        "replicas": 2,
188
+        "selector": {
189
+          "name": "frontend"
190
+        },
191
+        "template": {
192
+          "metadata": {
193
+            "creationTimestamp": null,
164 194
             "labels": {
165 195
               "name": "frontend"
166 196
             }
167 197
           },
168
-          "replicaSelector": {
169
-            "name": "frontend"
170
-          },
171
-          "replicas": 2
172
-        },
173
-        "strategy": {
174
-          "type": "Rolling"
175
-        }
176
-      },
177
-      "triggers": [
178
-        {
179
-          "imageChangeParams": {
180
-            "automatic": true,
181
-            "containerNames": [
182
-              "ruby-helloworld"
198
+          "spec": {
199
+            "containers": [
200
+              {
201
+                "name": "ruby-helloworld",
202
+                "image": "origin-ruby-sample",
203
+                "ports": [
204
+                  {
205
+                    "containerPort": 8080,
206
+                    "protocol": "TCP"
207
+                  }
208
+                ],
209
+                "env": [
210
+                  {
211
+                    "name": "ADMIN_USERNAME",
212
+                    "value": "${ADMIN_USERNAME}"
213
+                  },
214
+                  {
215
+                    "name": "ADMIN_PASSWORD",
216
+                    "value": "${ADMIN_PASSWORD}"
217
+                  },
218
+                  {
219
+                    "name": "MYSQL_USER",
220
+                    "value": "${MYSQL_USER}"
221
+                  },
222
+                  {
223
+                    "name": "MYSQL_PASSWORD",
224
+                    "value": "${MYSQL_PASSWORD}"
225
+                  },
226
+                  {
227
+                    "name": "MYSQL_DATABASE",
228
+                    "value": "${MYSQL_DATABASE}"
229
+                  }
230
+                ],
231
+                "resources": {},
232
+                "terminationMessagePath": "/dev/termination-log",
233
+                "imagePullPolicy": "IfNotPresent",
234
+                "capabilities": {},
235
+                "securityContext": {
236
+                  "capabilities": {},
237
+                  "privileged": false
238
+                }
239
+              }
183 240
             ],
184
-            "from": {
185
-              "name": "origin-ruby-sample"
186
-            },
187
-            "tag": "latest"
188
-          },
189
-          "type": "ImageChange"
241
+            "restartPolicy": "Always",
242
+            "dnsPolicy": "ClusterFirst",
243
+            "serviceAccount": ""
244
+          }
190 245
         }
191
-      ]
246
+      },
247
+      "status": {}
192 248
     },
193 249
     {
194
-      "apiVersion": "v1beta3",
195 250
       "kind": "Service",
251
+      "apiVersion": "v1beta3",
196 252
       "metadata": {
197
-        "name": "database"
253
+        "name": "database",
254
+        "creationTimestamp": null
198 255
       },
199 256
       "spec": {
200 257
         "ports": [
201 258
           {
202 259
             "name": "db",
203
-            "port": 5434,
204 260
             "protocol": "TCP",
205
-            "targetPort": 3306
261
+            "port": 5434,
262
+            "targetPort": 3306,
263
+            "nodePort": 0
206 264
           }
207 265
         ],
208 266
         "selector": {
209 267
           "name": "database"
210
-        }
268
+        },
269
+        "portalIP": "",
270
+        "type": "ClusterIP",
271
+        "sessionAffinity": "None"
272
+      },
273
+      "status": {
274
+        "loadBalancer": {}
211 275
       }
212 276
     },
213 277
     {
214
-      "apiVersion": "v1beta1",
215 278
       "kind": "DeploymentConfig",
279
+      "apiVersion": "v1beta3",
216 280
       "metadata": {
217
-        "name": "database"
281
+        "name": "database",
282
+        "creationTimestamp": null
218 283
       },
219
-      "template": {
220
-        "controllerTemplate": {
221
-          "podTemplate": {
222
-            "desiredState": {
223
-              "manifest": {
224
-                "containers": [
225
-                  {
226
-                    "env": [
227
-                      {
228
-                        "name": "MYSQL_USER",
229
-                        "value": "${MYSQL_USER}"
230
-                      },
231
-                      {
232
-                        "name": "MYSQL_PASSWORD",
233
-                        "value": "${MYSQL_PASSWORD}"
234
-                      },
235
-                      {
236
-                        "name": "MYSQL_DATABASE",
237
-                        "value": "${MYSQL_DATABASE}"
238
-                      }
239
-                    ],
240
-                    "image": "openshift/mysql-55-centos7",
241
-                    "name": "ruby-helloworld-database",
242
-                    "ports": [
243
-                      {
244
-                        "containerPort": 3306
245
-                      }
246
-                    ]
247
-                  }
248
-                ],
249
-                "version": "v1beta1"
250
-              }
251
-            },
284
+      "spec": {
285
+        "strategy": {
286
+          "type": "Recreate",
287
+          "resources": {}
288
+        },
289
+        "triggers": [
290
+          {
291
+            "type": "ConfigChange"
292
+          }
293
+        ],
294
+        "replicas": 1,
295
+        "selector": {
296
+          "name": "database"
297
+        },
298
+        "template": {
299
+          "metadata": {
300
+            "creationTimestamp": null,
252 301
             "labels": {
253 302
               "name": "database"
254 303
             }
255 304
           },
256
-          "replicaSelector": {
257
-            "name": "database"
258
-          },
259
-          "replicas": 1
260
-        },
261
-        "strategy": {
262
-          "type": "Recreate"
305
+          "spec": {
306
+            "containers": [
307
+              {
308
+                "name": "ruby-helloworld-database",
309
+                "image": "openshift/mysql-55-centos7",
310
+                "ports": [
311
+                  {
312
+                    "containerPort": 3306,
313
+                    "protocol": "TCP"
314
+                  }
315
+                ],
316
+                "env": [
317
+                  {
318
+                    "name": "MYSQL_USER",
319
+                    "value": "${MYSQL_USER}"
320
+                  },
321
+                  {
322
+                    "name": "MYSQL_PASSWORD",
323
+                    "value": "${MYSQL_PASSWORD}"
324
+                  },
325
+                  {
326
+                    "name": "MYSQL_DATABASE",
327
+                    "value": "${MYSQL_DATABASE}"
328
+                  }
329
+                ],
330
+                "resources": {},
331
+                "terminationMessagePath": "/dev/termination-log",
332
+                "imagePullPolicy": "IfNotPresent",
333
+                "capabilities": {},
334
+                "securityContext": {
335
+                  "capabilities": {},
336
+                  "privileged": false
337
+                }
338
+              }
339
+            ],
340
+            "restartPolicy": "Always",
341
+            "dnsPolicy": "ClusterFirst",
342
+            "serviceAccount": ""
343
+          }
263 344
         }
264 345
       },
265
-      "triggers": [
266
-        {
267
-          "type": "ConfigChange"
268
-        }
269
-      ]
346
+      "status": {}
270 347
     }
271 348
   ],
272
-  "kind": "Template",
273
-  "metadata": {
274
-    "annotations": {
275
-      "description": "This example shows how to create a simple ruby application in openshift origin v3"
276
-    },
277
-    "name": "ruby-helloworld-sample"
278
-  },
279 349
   "parameters": [
280 350
     {
351
+      "name": "ADMIN_USERNAME",
281 352
       "description": "administrator username",
282
-      "from": "admin[A-Z0-9]{3}",
283 353
       "generate": "expression",
284
-      "name": "ADMIN_USERNAME"
354
+      "from": "admin[A-Z0-9]{3}"
285 355
     },
286 356
     {
357
+      "name": "ADMIN_PASSWORD",
287 358
       "description": "administrator password",
288
-      "from": "[a-zA-Z0-9]{8}",
289 359
       "generate": "expression",
290
-      "name": "ADMIN_PASSWORD"
360
+      "from": "[a-zA-Z0-9]{8}"
291 361
     },
292 362
     {
363
+      "name": "MYSQL_USER",
293 364
       "description": "database username",
294
-      "from": "user[A-Z0-9]{3}",
295 365
       "generate": "expression",
296
-      "name": "MYSQL_USER"
366
+      "from": "user[A-Z0-9]{3}"
297 367
     },
298 368
     {
369
+      "name": "MYSQL_PASSWORD",
299 370
       "description": "database password",
300
-      "from": "[a-zA-Z0-9]{8}",
301 371
       "generate": "expression",
302
-      "name": "MYSQL_PASSWORD"
372
+      "from": "[a-zA-Z0-9]{8}"
303 373
     },
304 374
     {
305
-      "description": "database name",
306 375
       "name": "MYSQL_DATABASE",
376
+      "description": "database name",
307 377
       "value": "root"
308 378
     }
309 379
   ],
310 380
   "labels": {
311 381
     "template": "application-template-custombuild"
312 382
   }
313
-}
383
+}
314 384
\ No newline at end of file
... ...
@@ -1,306 +1,376 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3
-  "items": [
2
+  "kind": "Template",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {
5
+    "name": "ruby-helloworld-sample",
6
+    "creationTimestamp": null,
7
+    "annotations": {
8
+      "description": "This example shows how to create a simple ruby application in openshift origin v3"
9
+    }
10
+  },
11
+  "objects": [
4 12
     {
5
-      "apiVersion": "v1beta3",
6 13
       "kind": "Service",
14
+      "apiVersion": "v1beta3",
7 15
       "metadata": {
8
-        "name": "frontend"
16
+        "name": "frontend",
17
+        "creationTimestamp": null
9 18
       },
10 19
       "spec": {
11 20
         "ports": [
12 21
           {
13 22
             "name": "web",
14
-            "port": 5432,
15 23
             "protocol": "TCP",
16
-            "targetPort": 8080
24
+            "port": 5432,
25
+            "targetPort": 8080,
26
+            "nodePort": 0
17 27
           }
18 28
         ],
19 29
         "selector": {
20 30
           "name": "frontend"
21
-        }
31
+        },
32
+        "portalIP": "",
33
+        "type": "ClusterIP",
34
+        "sessionAffinity": "None"
35
+      },
36
+      "status": {
37
+        "loadBalancer": {}
22 38
       }
23 39
     },
24 40
     {
25
-      "apiVersion": "v1beta1",
26
-      "host": "www.example.com",
27
-      "id": "sample-app-secure",
28 41
       "kind": "Route",
42
+      "apiVersion": "v1beta3",
29 43
       "metadata": {
30
-        "name": "route-edge"
44
+        "name": "route-edge",
45
+        "creationTimestamp": null
31 46
       },
32
-      "serviceName": "frontend",
33
-      "tls": {
34
-        "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-----",
35
-        "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-----",
36
-        "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-----",
37
-        "termination": "edge"
38
-      }
47
+      "spec": {
48
+        "host": "www.example.com",
49
+        "to": {
50
+          "kind": "Service",
51
+          "name": "frontend"
52
+        },
53
+        "tls": {
54
+          "termination": "edge",
55
+          "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-----",
56
+          "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-----",
57
+          "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-----"
58
+        }
59
+      },
60
+      "status": {}
39 61
     },
40 62
     {
41
-      "apiVersion": "v1beta1",
42 63
       "kind": "ImageStream",
64
+      "apiVersion": "v1beta3",
43 65
       "metadata": {
44
-        "name": "origin-ruby-sample"
66
+        "name": "origin-ruby-sample",
67
+        "creationTimestamp": null
68
+      },
69
+      "spec": {},
70
+      "status": {
71
+        "dockerImageRepository": ""
45 72
       }
46 73
     },
47 74
     {
48
-      "apiVersion": "v1beta1",
49 75
       "kind": "ImageStream",
76
+      "apiVersion": "v1beta3",
50 77
       "metadata": {
51
-        "name": "ruby-20-centos7"
78
+        "name": "ruby-20-centos7",
79
+        "creationTimestamp": null
52 80
       },
53 81
       "spec": {
54 82
         "dockerImageRepository": "openshift/ruby-20-centos7"
83
+      },
84
+      "status": {
85
+        "dockerImageRepository": ""
55 86
       }
56 87
     },
57 88
     {
58
-      "apiVersion": "v1beta1",
59 89
       "kind": "BuildConfig",
90
+      "apiVersion": "v1beta3",
60 91
       "metadata": {
61 92
         "name": "ruby-sample-build",
93
+        "creationTimestamp": null,
62 94
         "labels": {
63 95
           "name": "ruby-sample-build"
64 96
         }
65 97
       },
66
-      "parameters": {
67
-        "output": {
68
-          "to": {
69
-            "name": "origin-ruby-sample"
98
+      "spec": {
99
+        "triggers": [
100
+          {
101
+            "type": "github",
102
+            "github": {
103
+              "secret": "secret101"
104
+            }
105
+          },
106
+          {
107
+            "type": "generic",
108
+            "generic": {
109
+              "secret": "secret101"
110
+            }
111
+          },
112
+          {
113
+            "type": "imageChange",
114
+            "imageChange": {}
70 115
           }
71
-        },
116
+        ],
72 117
         "source": {
118
+          "type": "Git",
73 119
           "git": {
74 120
             "uri": "git://github.com/openshift/ruby-hello-world.git"
75
-          },
76
-          "type": "Git"
121
+          }
77 122
         },
78 123
         "strategy": {
79 124
           "type": "Docker",
80 125
           "dockerStrategy": {
81 126
             "from": {
82 127
               "kind": "ImageStreamTag",
83
-              "name":"ruby-20-centos7:latest"
128
+              "name": "ruby-20-centos7:latest"
84 129
             }
85 130
           }
86
-        }
87
-      },
88
-      "triggers": [
89
-        {
90
-          "github": {
91
-            "secret": "secret101"
92
-          },
93
-          "type": "github"
94 131
         },
95
-        {
96
-          "generic": {
97
-            "secret": "secret101"
98
-          },
99
-          "type": "generic"
132
+        "output": {
133
+          "to": {
134
+            "kind": "ImageStreamTag",
135
+            "name": "origin-ruby-sample:latest"
136
+          }
100 137
         },
101
-        {
102
-          "imageChange": {},
103
-          "type": "imageChange"
104
-        }
105
-      ]
138
+        "resources": {}
139
+      },
140
+      "status": {
141
+        "lastVersion": 0
142
+      }
106 143
     },
107 144
     {
108
-      "apiVersion": "v1beta1",
109 145
       "kind": "DeploymentConfig",
146
+      "apiVersion": "v1beta3",
110 147
       "metadata": {
111
-        "name": "frontend"
148
+        "name": "frontend",
149
+        "creationTimestamp": null
112 150
       },
113
-      "template": {
114
-        "controllerTemplate": {
115
-          "podTemplate": {
116
-            "desiredState": {
117
-              "manifest": {
118
-                "containers": [
119
-                  {
120
-                    "env": [
121
-                      {
122
-                        "name": "ADMIN_USERNAME",
123
-                        "value": "${ADMIN_USERNAME}"
124
-                      },
125
-                      {
126
-                        "name": "ADMIN_PASSWORD",
127
-                        "value": "${ADMIN_PASSWORD}"
128
-                      },
129
-                      {
130
-                        "name": "MYSQL_USER",
131
-                        "value": "${MYSQL_USER}"
132
-                      },
133
-                      {
134
-                        "name": "MYSQL_PASSWORD",
135
-                        "value": "${MYSQL_PASSWORD}"
136
-                      },
137
-                      {
138
-                        "name": "MYSQL_DATABASE",
139
-                        "value": "${MYSQL_DATABASE}"
140
-                      }
141
-                    ],
142
-                    "image": "origin-ruby-sample",
143
-                    "name": "ruby-helloworld",
144
-                    "ports": [
145
-                      {
146
-                        "containerPort": 8080
147
-                      }
148
-                    ]
149
-                  }
150
-                ],
151
-                "version": "v1beta1"
152
-              }
153
-            },
151
+      "spec": {
152
+        "strategy": {
153
+          "type": "Rolling",
154
+          "rollingParams": {
155
+            "updatePeriodSeconds": 1,
156
+            "intervalSeconds": 1,
157
+            "timeoutSeconds": 120
158
+          },
159
+          "resources": {}
160
+        },
161
+        "triggers": [
162
+          {
163
+            "type": "ImageChange",
164
+            "imageChangeParams": {
165
+              "automatic": true,
166
+              "containerNames": [
167
+                "ruby-helloworld"
168
+              ],
169
+              "from": {
170
+                "kind": "ImageStreamTag",
171
+                "name": "origin-ruby-sample:latest"
172
+              },
173
+              "lastTriggeredImage": ""
174
+            }
175
+          },
176
+          {
177
+            "type": "ConfigChange"
178
+          }
179
+        ],
180
+        "replicas": 2,
181
+        "selector": {
182
+          "name": "frontend"
183
+        },
184
+        "template": {
185
+          "metadata": {
186
+            "creationTimestamp": null,
154 187
             "labels": {
155 188
               "name": "frontend"
156 189
             }
157 190
           },
158
-          "replicaSelector": {
159
-            "name": "frontend"
160
-          },
161
-          "replicas": 2
162
-        },
163
-        "strategy": {
164
-          "type": "Rolling"
165
-        }
166
-      },
167
-      "triggers": [
168
-        {
169
-          "imageChangeParams": {
170
-            "automatic": true,
171
-            "containerNames": [
172
-              "ruby-helloworld"
191
+          "spec": {
192
+            "containers": [
193
+              {
194
+                "name": "ruby-helloworld",
195
+                "image": "origin-ruby-sample",
196
+                "ports": [
197
+                  {
198
+                    "containerPort": 8080,
199
+                    "protocol": "TCP"
200
+                  }
201
+                ],
202
+                "env": [
203
+                  {
204
+                    "name": "ADMIN_USERNAME",
205
+                    "value": "${ADMIN_USERNAME}"
206
+                  },
207
+                  {
208
+                    "name": "ADMIN_PASSWORD",
209
+                    "value": "${ADMIN_PASSWORD}"
210
+                  },
211
+                  {
212
+                    "name": "MYSQL_USER",
213
+                    "value": "${MYSQL_USER}"
214
+                  },
215
+                  {
216
+                    "name": "MYSQL_PASSWORD",
217
+                    "value": "${MYSQL_PASSWORD}"
218
+                  },
219
+                  {
220
+                    "name": "MYSQL_DATABASE",
221
+                    "value": "${MYSQL_DATABASE}"
222
+                  }
223
+                ],
224
+                "resources": {},
225
+                "terminationMessagePath": "/dev/termination-log",
226
+                "imagePullPolicy": "IfNotPresent",
227
+                "capabilities": {},
228
+                "securityContext": {
229
+                  "capabilities": {},
230
+                  "privileged": false
231
+                }
232
+              }
173 233
             ],
174
-            "from": {
175
-              "name": "origin-ruby-sample"
176
-            },
177
-            "tag": "latest"
178
-          },
179
-          "type": "ImageChange"
180
-        },
181
-        {
182
-          "type": "ConfigChange"
234
+            "restartPolicy": "Always",
235
+            "dnsPolicy": "ClusterFirst",
236
+            "serviceAccount": ""
237
+          }
183 238
         }
184
-      ]
239
+      },
240
+      "status": {}
185 241
     },
186 242
     {
187
-      "apiVersion": "v1beta3",
188 243
       "kind": "Service",
244
+      "apiVersion": "v1beta3",
189 245
       "metadata": {
190
-        "name": "database"
246
+        "name": "database",
247
+        "creationTimestamp": null
191 248
       },
192 249
       "spec": {
193 250
         "ports": [
194 251
           {
195 252
             "name": "db",
196
-            "port": 5434,
197 253
             "protocol": "TCP",
198
-            "targetPort": 3306
254
+            "port": 5434,
255
+            "targetPort": 3306,
256
+            "nodePort": 0
199 257
           }
200 258
         ],
201 259
         "selector": {
202 260
           "name": "database"
203
-        }
261
+        },
262
+        "portalIP": "",
263
+        "type": "ClusterIP",
264
+        "sessionAffinity": "None"
265
+      },
266
+      "status": {
267
+        "loadBalancer": {}
204 268
       }
205 269
     },
206 270
     {
207
-      "apiVersion": "v1beta1",
208 271
       "kind": "DeploymentConfig",
272
+      "apiVersion": "v1beta3",
209 273
       "metadata": {
210
-        "name": "database"
274
+        "name": "database",
275
+        "creationTimestamp": null
211 276
       },
212
-      "template": {
213
-        "controllerTemplate": {
214
-          "podTemplate": {
215
-            "desiredState": {
216
-              "manifest": {
217
-                "containers": [
218
-                  {
219
-                    "env": [
220
-                      {
221
-                        "name": "MYSQL_USER",
222
-                        "value": "${MYSQL_USER}"
223
-                      },
224
-                      {
225
-                        "name": "MYSQL_PASSWORD",
226
-                        "value": "${MYSQL_PASSWORD}"
227
-                      },
228
-                      {
229
-                        "name": "MYSQL_DATABASE",
230
-                        "value": "${MYSQL_DATABASE}"
231
-                      }
232
-                    ],
233
-                    "image": "openshift/mysql-55-centos7",
234
-                    "name": "ruby-helloworld-database",
235
-                    "ports": [
236
-                      {
237
-                        "containerPort": 3306
238
-                      }
239
-                    ]
240
-                  }
241
-                ],
242
-                "version": "v1beta1"
243
-              }
244
-            },
277
+      "spec": {
278
+        "strategy": {
279
+          "type": "Recreate",
280
+          "resources": {}
281
+        },
282
+        "triggers": [
283
+          {
284
+            "type": "ConfigChange"
285
+          }
286
+        ],
287
+        "replicas": 1,
288
+        "selector": {
289
+          "name": "database"
290
+        },
291
+        "template": {
292
+          "metadata": {
293
+            "creationTimestamp": null,
245 294
             "labels": {
246 295
               "name": "database"
247 296
             }
248 297
           },
249
-          "replicaSelector": {
250
-            "name": "database"
251
-          },
252
-          "replicas": 1
253
-        },
254
-        "strategy": {
255
-          "type": "Recreate"
298
+          "spec": {
299
+            "containers": [
300
+              {
301
+                "name": "ruby-helloworld-database",
302
+                "image": "openshift/mysql-55-centos7",
303
+                "ports": [
304
+                  {
305
+                    "containerPort": 3306,
306
+                    "protocol": "TCP"
307
+                  }
308
+                ],
309
+                "env": [
310
+                  {
311
+                    "name": "MYSQL_USER",
312
+                    "value": "${MYSQL_USER}"
313
+                  },
314
+                  {
315
+                    "name": "MYSQL_PASSWORD",
316
+                    "value": "${MYSQL_PASSWORD}"
317
+                  },
318
+                  {
319
+                    "name": "MYSQL_DATABASE",
320
+                    "value": "${MYSQL_DATABASE}"
321
+                  }
322
+                ],
323
+                "resources": {},
324
+                "terminationMessagePath": "/dev/termination-log",
325
+                "imagePullPolicy": "IfNotPresent",
326
+                "capabilities": {},
327
+                "securityContext": {
328
+                  "capabilities": {},
329
+                  "privileged": false
330
+                }
331
+              }
332
+            ],
333
+            "restartPolicy": "Always",
334
+            "dnsPolicy": "ClusterFirst",
335
+            "serviceAccount": ""
336
+          }
256 337
         }
257 338
       },
258
-      "triggers": [
259
-        {
260
-          "type": "ConfigChange"
261
-        }
262
-      ]
339
+      "status": {}
263 340
     }
264 341
   ],
265
-  "kind": "Template",
266
-  "metadata": {
267
-    "annotations": {
268
-      "description": "This example shows how to create a simple ruby application in openshift origin v3"
269
-    },
270
-    "name": "ruby-helloworld-sample"
271
-  },
272 342
   "parameters": [
273 343
     {
344
+      "name": "ADMIN_USERNAME",
274 345
       "description": "administrator username",
275
-      "from": "admin[A-Z0-9]{3}",
276 346
       "generate": "expression",
277
-      "name": "ADMIN_USERNAME"
347
+      "from": "admin[A-Z0-9]{3}"
278 348
     },
279 349
     {
350
+      "name": "ADMIN_PASSWORD",
280 351
       "description": "administrator password",
281
-      "from": "[a-zA-Z0-9]{8}",
282 352
       "generate": "expression",
283
-      "name": "ADMIN_PASSWORD"
353
+      "from": "[a-zA-Z0-9]{8}"
284 354
     },
285 355
     {
356
+      "name": "MYSQL_USER",
286 357
       "description": "database username",
287
-      "from": "user[A-Z0-9]{3}",
288 358
       "generate": "expression",
289
-      "name": "MYSQL_USER"
359
+      "from": "user[A-Z0-9]{3}"
290 360
     },
291 361
     {
362
+      "name": "MYSQL_PASSWORD",
292 363
       "description": "database password",
293
-      "from": "[a-zA-Z0-9]{8}",
294 364
       "generate": "expression",
295
-      "name": "MYSQL_PASSWORD"
365
+      "from": "[a-zA-Z0-9]{8}"
296 366
     },
297 367
     {
298
-      "description": "database name",
299 368
       "name": "MYSQL_DATABASE",
369
+      "description": "database name",
300 370
       "value": "root"
301 371
     }
302 372
   ],
303 373
   "labels": {
304 374
     "template": "application-template-dockerbuild"
305 375
   }
306
-}
376
+}
307 377
\ No newline at end of file
... ...
@@ -1,172 +1,166 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3
-  "items": [
2
+  "kind": "Template",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {
5
+    "name": "ruby-helloworld-sample",
6
+    "creationTimestamp": null,
7
+    "annotations": {
8
+      "description": "This example shows how to create a simple ruby application in openshift origin v3",
9
+      "iconClass": "icon-ruby",
10
+      "tags": "instant-app,ruby,mysql"
11
+    }
12
+  },
13
+  "objects": [
4 14
     {
5
-      "apiVersion": "v1beta3",
6 15
       "kind": "Service",
16
+      "apiVersion": "v1beta3",
7 17
       "metadata": {
8
-        "name": "frontend"
18
+        "name": "frontend",
19
+        "creationTimestamp": null
9 20
       },
10 21
       "spec": {
11 22
         "ports": [
12 23
           {
13 24
             "name": "web",
14
-            "port": 5432,
15 25
             "protocol": "TCP",
16
-            "targetPort": 8080
26
+            "port": 5432,
27
+            "targetPort": 8080,
28
+            "nodePort": 0
17 29
           }
18 30
         ],
19 31
         "selector": {
20 32
           "name": "frontend"
21
-        }
33
+        },
34
+        "portalIP": "",
35
+        "type": "ClusterIP",
36
+        "sessionAffinity": "None"
37
+      },
38
+      "status": {
39
+        "loadBalancer": {}
22 40
       }
23 41
     },
24 42
     {
25
-      "apiVersion": "v1beta1",
26
-      "host": "www.example.com",
27
-      "id": "sample-app-secure",
28 43
       "kind": "Route",
44
+      "apiVersion": "v1beta3",
29 45
       "metadata": {
30
-        "name": "route-edge"
46
+        "name": "route-edge",
47
+        "creationTimestamp": null
31 48
       },
32
-      "serviceName": "frontend",
33
-      "tls": {
34
-        "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-----",
35
-        "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-----",
36
-        "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-----",
37
-        "termination": "edge"
38
-      }
49
+      "spec": {
50
+        "host": "www.example.com",
51
+        "to": {
52
+          "kind": "Service",
53
+          "name": "frontend"
54
+        },
55
+        "tls": {
56
+          "termination": "edge",
57
+          "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-----",
58
+          "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-----",
59
+          "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-----"
60
+        }
61
+      },
62
+      "status": {}
39 63
     },
40 64
     {
41
-      "apiVersion": "v1beta1",
42 65
       "kind": "ImageStream",
66
+      "apiVersion": "v1beta3",
43 67
       "metadata": {
44
-        "name": "origin-ruby-sample"
68
+        "name": "origin-ruby-sample",
69
+        "creationTimestamp": null
70
+      },
71
+      "spec": {},
72
+      "status": {
73
+        "dockerImageRepository": ""
45 74
       }
46 75
     },
47 76
     {
48
-      "apiVersion": "v1beta1",
49 77
       "kind": "ImageStream",
78
+      "apiVersion": "v1beta3",
50 79
       "metadata": {
51
-        "name": "ruby-20-centos7"
80
+        "name": "ruby-20-centos7",
81
+        "creationTimestamp": null
52 82
       },
53 83
       "spec": {
54 84
         "dockerImageRepository": "openshift/ruby-20-centos7"
85
+      },
86
+      "status": {
87
+        "dockerImageRepository": ""
55 88
       }
56 89
     },
57 90
     {
58
-      "apiVersion": "v1beta1",
59 91
       "kind": "BuildConfig",
92
+      "apiVersion": "v1beta3",
60 93
       "metadata": {
61 94
         "name": "ruby-sample-build",
95
+        "creationTimestamp": null,
62 96
         "labels": {
63 97
           "name": "ruby-sample-build"
64
-       }
98
+        }
65 99
       },
66
-      "parameters": {
67
-        "output": {
68
-          "to": {
69
-            "name": "origin-ruby-sample"
100
+      "spec": {
101
+        "triggers": [
102
+          {
103
+            "type": "github",
104
+            "github": {
105
+              "secret": "secret101"
106
+            }
107
+          },
108
+          {
109
+            "type": "generic",
110
+            "generic": {
111
+              "secret": "secret101"
112
+            }
113
+          },
114
+          {
115
+            "type": "imageChange",
116
+            "imageChange": {}
70 117
           }
71
-        },
118
+        ],
72 119
         "source": {
120
+          "type": "Git",
73 121
           "git": {
74 122
             "uri": "git://github.com/openshift/ruby-hello-world.git"
75
-          },
76
-          "type": "Git"
123
+          }
77 124
         },
78 125
         "strategy": {
79
-          "stiStrategy": {
126
+          "type": "Source",
127
+          "sourceStrategy": {
80 128
             "from": {
81 129
               "kind": "ImageStreamTag",
82 130
               "name": "ruby-20-centos7:latest"
83
-            }
84
-          },
85
-          "type": "STI"
86
-        }
87
-      },
88
-      "triggers": [
89
-        {
90
-          "github": {
91
-            "secret": "secret101"
92
-          },
93
-          "type": "github"
131
+            },
132
+            "incremental": true
133
+          }
94 134
         },
95
-        {
96
-          "generic": {
97
-            "secret": "secret101"
98
-          },
99
-          "type": "generic"
135
+        "output": {
136
+          "to": {
137
+            "kind": "ImageStreamTag",
138
+            "name": "origin-ruby-sample:latest"
139
+          }
100 140
         },
101
-        {
102
-          "imageChange": {},
103
-          "type": "imageChange"
104
-        }
105
-      ]
141
+        "resources": {}
142
+      },
143
+      "status": {
144
+        "lastVersion": 0
145
+      }
106 146
     },
107 147
     {
108
-      "apiVersion": "v1beta1",
109 148
       "kind": "DeploymentConfig",
149
+      "apiVersion": "v1beta3",
110 150
       "metadata": {
111
-        "name": "frontend"
151
+        "name": "frontend",
152
+        "creationTimestamp": null
112 153
       },
113
-      "template": {
114
-        "controllerTemplate": {
115
-          "podTemplate": {
116
-            "desiredState": {
117
-              "manifest": {
118
-                "containers": [
119
-                  {
120
-                    "env": [
121
-                      {
122
-                        "name": "ADMIN_USERNAME",
123
-                        "value": "${ADMIN_USERNAME}"
124
-                      },
125
-                      {
126
-                        "name": "ADMIN_PASSWORD",
127
-                        "value": "${ADMIN_PASSWORD}"
128
-                      },
129
-                      {
130
-                        "name": "MYSQL_USER",
131
-                        "value": "${MYSQL_USER}"
132
-                      },
133
-                      {
134
-                        "name": "MYSQL_PASSWORD",
135
-                        "value": "${MYSQL_PASSWORD}"
136
-                      },
137
-                      {
138
-                        "name": "MYSQL_DATABASE",
139
-                        "value": "${MYSQL_DATABASE}"
140
-                      }
141
-                    ],
142
-                    "image": "origin-ruby-sample",
143
-                    "name": "ruby-helloworld",
144
-                    "ports": [
145
-                      {
146
-                        "containerPort": 8080
147
-                      }
148
-                    ]
149
-                  }
150
-                ],
151
-                "version": "v1beta1"
152
-              }
153
-            },
154
-            "labels": {
155
-              "name": "frontend"
156
-            }
157
-          },
158
-          "replicaSelector": {
159
-            "name": "frontend"
160
-          },
161
-          "replicas": 2
162
-        },
154
+      "spec": {
163 155
         "strategy": {
164 156
           "type": "Rolling",
165 157
           "rollingParams": {
158
+            "updatePeriodSeconds": 1,
159
+            "intervalSeconds": 1,
160
+            "timeoutSeconds": 120,
166 161
             "pre": {
167 162
               "failurePolicy": "Abort",
168 163
               "execNewPod": {
169
-                "containerName": "ruby-helloworld",
170 164
                 "command": [
171 165
                   "/bin/true"
172 166
                 ],
... ...
@@ -175,13 +169,13 @@
175 175
                     "name": "CUSTOM_VAR1",
176 176
                     "value": "custom_value1"
177 177
                   }
178
-                ]
178
+                ],
179
+                "containerName": "ruby-helloworld"
179 180
               }
180 181
             },
181 182
             "post": {
182 183
               "failurePolicy": "Ignore",
183 184
               "execNewPod": {
184
-                "containerName": "ruby-helloworld",
185 185
                 "command": [
186 186
                   "/bin/false"
187 187
                 ],
... ...
@@ -190,106 +184,135 @@
190 190
                     "name": "CUSTOM_VAR2",
191 191
                     "value": "custom_value2"
192 192
                   }
193
-                ]
193
+                ],
194
+                "containerName": "ruby-helloworld"
194 195
               }
195 196
             }
196
-          }
197
-        }
198
-      },
199
-      "triggers": [
200
-        {
201
-          "imageChangeParams": {
202
-            "automatic": true,
203
-            "containerNames": [
204
-              "ruby-helloworld"
205
-            ],
206
-            "from": {
207
-              "name": "origin-ruby-sample"
208
-            },
209
-            "tag": "latest"
210 197
           },
211
-          "type": "ImageChange"
198
+          "resources": {}
212 199
         },
213
-        {
214
-          "type": "ConfigChange"
200
+        "triggers": [
201
+          {
202
+            "type": "ImageChange",
203
+            "imageChangeParams": {
204
+              "automatic": true,
205
+              "containerNames": [
206
+                "ruby-helloworld"
207
+              ],
208
+              "from": {
209
+                "name": "origin-ruby-sample"
210
+              },
211
+              "lastTriggeredImage": ""
212
+            }
213
+          },
214
+          {
215
+            "type": "ConfigChange"
216
+          }
217
+        ],
218
+        "replicas": 2,
219
+        "selector": {
220
+          "name": "frontend"
221
+        },
222
+        "template": {
223
+          "metadata": {
224
+            "creationTimestamp": null,
225
+            "labels": {
226
+              "name": "frontend"
227
+            }
228
+          },
229
+          "spec": {
230
+            "containers": [
231
+              {
232
+                "name": "ruby-helloworld",
233
+                "image": "origin-ruby-sample",
234
+                "ports": [
235
+                  {
236
+                    "containerPort": 8080,
237
+                    "protocol": "TCP"
238
+                  }
239
+                ],
240
+                "env": [
241
+                  {
242
+                    "name": "ADMIN_USERNAME",
243
+                    "value": "${ADMIN_USERNAME}"
244
+                  },
245
+                  {
246
+                    "name": "ADMIN_PASSWORD",
247
+                    "value": "${ADMIN_PASSWORD}"
248
+                  },
249
+                  {
250
+                    "name": "MYSQL_USER",
251
+                    "value": "${MYSQL_USER}"
252
+                  },
253
+                  {
254
+                    "name": "MYSQL_PASSWORD",
255
+                    "value": "${MYSQL_PASSWORD}"
256
+                  },
257
+                  {
258
+                    "name": "MYSQL_DATABASE",
259
+                    "value": "${MYSQL_DATABASE}"
260
+                  }
261
+                ],
262
+                "resources": {},
263
+                "terminationMessagePath": "/dev/termination-log",
264
+                "imagePullPolicy": "IfNotPresent",
265
+                "capabilities": {},
266
+                "securityContext": {
267
+                  "capabilities": {},
268
+                  "privileged": false
269
+                }
270
+              }
271
+            ],
272
+            "restartPolicy": "Always",
273
+            "dnsPolicy": "ClusterFirst",
274
+            "serviceAccount": ""
275
+          }
215 276
         }
216
-      ]
277
+      },
278
+      "status": {}
217 279
     },
218 280
     {
219
-      "apiVersion": "v1beta3",
220 281
       "kind": "Service",
282
+      "apiVersion": "v1beta3",
221 283
       "metadata": {
222
-        "name": "database"
284
+        "name": "database",
285
+        "creationTimestamp": null
223 286
       },
224 287
       "spec": {
225 288
         "ports": [
226 289
           {
227 290
             "name": "db",
228
-            "port": 5434,
229 291
             "protocol": "TCP",
230
-            "targetPort": 3306
292
+            "port": 5434,
293
+            "targetPort": 3306,
294
+            "nodePort": 0
231 295
           }
232 296
         ],
233 297
         "selector": {
234 298
           "name": "database"
235
-        }
299
+        },
300
+        "portalIP": "",
301
+        "type": "ClusterIP",
302
+        "sessionAffinity": "None"
303
+      },
304
+      "status": {
305
+        "loadBalancer": {}
236 306
       }
237 307
     },
238 308
     {
239
-      "apiVersion": "v1beta1",
240 309
       "kind": "DeploymentConfig",
310
+      "apiVersion": "v1beta3",
241 311
       "metadata": {
242
-        "name": "database"
312
+        "name": "database",
313
+        "creationTimestamp": null
243 314
       },
244
-      "template": {
245
-        "controllerTemplate": {
246
-          "podTemplate": {
247
-            "desiredState": {
248
-              "manifest": {
249
-                "containers": [
250
-                  {
251
-                    "env": [
252
-                      {
253
-                        "name": "MYSQL_USER",
254
-                        "value": "${MYSQL_USER}"
255
-                      },
256
-                      {
257
-                        "name": "MYSQL_PASSWORD",
258
-                        "value": "${MYSQL_PASSWORD}"
259
-                      },
260
-                      {
261
-                        "name": "MYSQL_DATABASE",
262
-                        "value": "${MYSQL_DATABASE}"
263
-                      }
264
-                    ],
265
-                    "image": "openshift/mysql-55-centos7:latest",
266
-                    "name": "ruby-helloworld-database",
267
-                    "ports": [
268
-                      {
269
-                        "containerPort": 3306
270
-                      }
271
-                    ]
272
-                  }
273
-                ],
274
-                "version": "v1beta1"
275
-              }
276
-            },
277
-            "labels": {
278
-              "name": "database"
279
-            }
280
-          },
281
-          "replicaSelector": {
282
-            "name": "database"
283
-          },
284
-          "replicas": 1
285
-        },
315
+      "spec": {
286 316
         "strategy": {
287 317
           "type": "Recreate",
288 318
           "recreateParams": {
289 319
             "pre": {
290 320
               "failurePolicy": "Abort",
291 321
               "execNewPod": {
292
-                "containerName": "ruby-helloworld-database",
293 322
                 "command": [
294 323
                   "/bin/true"
295 324
                 ],
... ...
@@ -298,13 +321,13 @@
298 298
                     "name": "CUSTOM_VAR1",
299 299
                     "value": "custom_value1"
300 300
                   }
301
-                ]
301
+                ],
302
+                "containerName": "ruby-helloworld-database"
302 303
               }
303 304
             },
304 305
             "post": {
305 306
               "failurePolicy": "Ignore",
306 307
               "execNewPod": {
307
-                "containerName": "ruby-helloworld-database",
308 308
                 "command": [
309 309
                   "/bin/false"
310 310
                 ],
... ...
@@ -313,60 +336,105 @@
313 313
                     "name": "CUSTOM_VAR2",
314 314
                     "value": "custom_value2"
315 315
                   }
316
-                ]
316
+                ],
317
+                "containerName": "ruby-helloworld-database"
317 318
               }
318 319
             }
320
+          },
321
+          "resources": {}
322
+        },
323
+        "triggers": [
324
+          {
325
+            "type": "ConfigChange"
326
+          }
327
+        ],
328
+        "replicas": 1,
329
+        "selector": {
330
+          "name": "database"
331
+        },
332
+        "template": {
333
+          "metadata": {
334
+            "creationTimestamp": null,
335
+            "labels": {
336
+              "name": "database"
337
+            }
338
+          },
339
+          "spec": {
340
+            "containers": [
341
+              {
342
+                "name": "ruby-helloworld-database",
343
+                "image": "openshift/mysql-55-centos7:latest",
344
+                "ports": [
345
+                  {
346
+                    "containerPort": 3306,
347
+                    "protocol": "TCP"
348
+                  }
349
+                ],
350
+                "env": [
351
+                  {
352
+                    "name": "MYSQL_USER",
353
+                    "value": "${MYSQL_USER}"
354
+                  },
355
+                  {
356
+                    "name": "MYSQL_PASSWORD",
357
+                    "value": "${MYSQL_PASSWORD}"
358
+                  },
359
+                  {
360
+                    "name": "MYSQL_DATABASE",
361
+                    "value": "${MYSQL_DATABASE}"
362
+                  }
363
+                ],
364
+                "resources": {},
365
+                "terminationMessagePath": "/dev/termination-log",
366
+                "imagePullPolicy": "Always",
367
+                "capabilities": {},
368
+                "securityContext": {
369
+                  "capabilities": {},
370
+                  "privileged": false
371
+                }
372
+              }
373
+            ],
374
+            "restartPolicy": "Always",
375
+            "dnsPolicy": "ClusterFirst",
376
+            "serviceAccount": ""
319 377
           }
320 378
         }
321 379
       },
322
-      "triggers": [
323
-        {
324
-          "type": "ConfigChange"
325
-        }
326
-      ]
380
+      "status": {}
327 381
     }
328 382
   ],
329
-  "kind": "Template",
330
-  "metadata": {
331
-    "annotations": {
332
-      "description": "This example shows how to create a simple ruby application in openshift origin v3",
333
-      "tags": "instant-app,ruby,mysql",
334
-      "iconClass" : "icon-ruby"
335
-    },
336
-    "name": "ruby-helloworld-sample"
337
-  },
338 383
   "parameters": [
339 384
     {
385
+      "name": "ADMIN_USERNAME",
340 386
       "description": "administrator username",
341
-      "from": "admin[A-Z0-9]{3}",
342 387
       "generate": "expression",
343
-      "name": "ADMIN_USERNAME"
388
+      "from": "admin[A-Z0-9]{3}"
344 389
     },
345 390
     {
391
+      "name": "ADMIN_PASSWORD",
346 392
       "description": "administrator password",
347
-      "from": "[a-zA-Z0-9]{8}",
348 393
       "generate": "expression",
349
-      "name": "ADMIN_PASSWORD"
394
+      "from": "[a-zA-Z0-9]{8}"
350 395
     },
351 396
     {
397
+      "name": "MYSQL_USER",
352 398
       "description": "database username",
353
-      "from": "user[A-Z0-9]{3}",
354 399
       "generate": "expression",
355
-      "name": "MYSQL_USER"
400
+      "from": "user[A-Z0-9]{3}"
356 401
     },
357 402
     {
403
+      "name": "MYSQL_PASSWORD",
358 404
       "description": "database password",
359
-      "from": "[a-zA-Z0-9]{8}",
360 405
       "generate": "expression",
361
-      "name": "MYSQL_PASSWORD"
406
+      "from": "[a-zA-Z0-9]{8}"
362 407
     },
363 408
     {
364
-      "description": "database name",
365 409
       "name": "MYSQL_DATABASE",
410
+      "description": "database name",
366 411
       "value": "root"
367 412
     }
368 413
   ],
369 414
   "labels": {
370 415
     "template": "application-template-stibuild"
371 416
   }
372
-}
417
+}
373 418
\ No newline at end of file
... ...
@@ -1,30 +1,22 @@
1 1
 {
2 2
   "kind": "Template",
3
-  "apiVersion": "v1beta1",
4
-  "labels": {
5
-    "template": "zookeeper"
6
-  },
3
+  "apiVersion": "v1beta3",
7 4
   "metadata": {
5
+    "name": "zookeeper",
6
+    "creationTimestamp": null,
8 7
     "annotations": {
9 8
       "description": "Example of replicated Zookeeper 3.4.6 server",
10
-      "tags": "database,zookeeper",
11
-      "iconClass" : "icon-database"
12
-    },
13
-    "name": "zookeeper"
14
-  },
15
-  "parameters": [
16
-    {
17
-      "name": "ZOOKEEPER_IMAGE",
18
-      "description": "The name of Zookeeper Docker image to use",
19
-      "value": "openshift/zookeeper-346-fedora20"
9
+      "iconClass": "icon-database",
10
+      "tags": "database,zookeeper"
20 11
     }
21
-  ],
22
-  "items":[
12
+  },
13
+  "objects": [
23 14
     {
24
-      "apiVersion": "v1beta1",
25 15
       "kind": "ImageStream",
16
+      "apiVersion": "v1beta3",
26 17
       "metadata": {
27
-        "name": "zookeeper-346-jdk7"
18
+        "name": "zookeeper-346-jdk7",
19
+        "creationTimestamp": null
28 20
       },
29 21
       "spec": {
30 22
         "dockerImageRepository": "${ZOOKEEPER_IMAGE}",
... ...
@@ -39,6 +31,9 @@
39 39
             }
40 40
           }
41 41
         ]
42
+      },
43
+      "status": {
44
+        "dockerImageRepository": ""
42 45
       }
43 46
     },
44 47
     {
... ...
@@ -46,6 +41,7 @@
46 46
       "apiVersion": "v1beta3",
47 47
       "metadata": {
48 48
         "name": "zookeeper",
49
+        "creationTimestamp": null,
49 50
         "labels": {
50 51
           "name": "zookeeper"
51 52
         }
... ...
@@ -54,13 +50,21 @@
54 54
         "ports": [
55 55
           {
56 56
             "name": "client",
57
+            "protocol": "TCP",
57 58
             "port": 2181,
58
-            "targetPort": 2181
59
+            "targetPort": 2181,
60
+            "nodePort": 0
59 61
           }
60 62
         ],
61 63
         "selector": {
62 64
           "name": "zookeeper"
63
-        }
65
+        },
66
+        "portalIP": "",
67
+        "type": "ClusterIP",
68
+        "sessionAffinity": "None"
69
+      },
70
+      "status": {
71
+        "loadBalancer": {}
64 72
       }
65 73
     },
66 74
     {
... ...
@@ -68,6 +72,7 @@
68 68
       "apiVersion": "v1beta3",
69 69
       "metadata": {
70 70
         "name": "zookeeper-1",
71
+        "creationTimestamp": null,
71 72
         "labels": {
72 73
           "name": "zookeeper-1"
73 74
         }
... ...
@@ -76,23 +81,35 @@
76 76
         "ports": [
77 77
           {
78 78
             "name": "client",
79
+            "protocol": "TCP",
79 80
             "port": 2181,
80
-            "targetPort": 2181
81
+            "targetPort": 2181,
82
+            "nodePort": 0
81 83
           },
82 84
           {
83 85
             "name": "followers",
86
+            "protocol": "TCP",
84 87
             "port": 2888,
85
-            "targetPort": 2888
88
+            "targetPort": 2888,
89
+            "nodePort": 0
86 90
           },
87 91
           {
88 92
             "name": "election",
93
+            "protocol": "TCP",
89 94
             "port": 3888,
90
-            "targetPort": 3888
95
+            "targetPort": 3888,
96
+            "nodePort": 0
91 97
           }
92 98
         ],
93 99
         "selector": {
94 100
           "server-id": "1"
95
-        }
101
+        },
102
+        "portalIP": "",
103
+        "type": "ClusterIP",
104
+        "sessionAffinity": "None"
105
+      },
106
+      "status": {
107
+        "loadBalancer": {}
96 108
       }
97 109
     },
98 110
     {
... ...
@@ -100,6 +117,7 @@
100 100
       "apiVersion": "v1beta3",
101 101
       "metadata": {
102 102
         "name": "zookeeper-2",
103
+        "creationTimestamp": null,
103 104
         "labels": {
104 105
           "name": "zookeeper-2"
105 106
         }
... ...
@@ -108,23 +126,35 @@
108 108
         "ports": [
109 109
           {
110 110
             "name": "client",
111
+            "protocol": "TCP",
111 112
             "port": 2181,
112
-            "targetPort": 2181
113
+            "targetPort": 2181,
114
+            "nodePort": 0
113 115
           },
114 116
           {
115 117
             "name": "followers",
118
+            "protocol": "TCP",
116 119
             "port": 2888,
117
-            "targetPort": 2888
120
+            "targetPort": 2888,
121
+            "nodePort": 0
118 122
           },
119 123
           {
120 124
             "name": "election",
125
+            "protocol": "TCP",
121 126
             "port": 3888,
122
-            "targetPort": 3888
127
+            "targetPort": 3888,
128
+            "nodePort": 0
123 129
           }
124 130
         ],
125 131
         "selector": {
126 132
           "server-id": "2"
127
-        }
133
+        },
134
+        "portalIP": "",
135
+        "type": "ClusterIP",
136
+        "sessionAffinity": "None"
137
+      },
138
+      "status": {
139
+        "loadBalancer": {}
128 140
       }
129 141
     },
130 142
     {
... ...
@@ -132,6 +162,7 @@
132 132
       "apiVersion": "v1beta3",
133 133
       "metadata": {
134 134
         "name": "zookeeper-3",
135
+        "creationTimestamp": null,
135 136
         "labels": {
136 137
           "name": "zookeeper-3"
137 138
         }
... ...
@@ -140,126 +171,202 @@
140 140
         "ports": [
141 141
           {
142 142
             "name": "client",
143
+            "protocol": "TCP",
143 144
             "port": 2181,
144
-            "targetPort": 2181
145
+            "targetPort": 2181,
146
+            "nodePort": 0
145 147
           },
146 148
           {
147 149
             "name": "followers",
150
+            "protocol": "TCP",
148 151
             "port": 2888,
149
-            "targetPort": 2888
152
+            "targetPort": 2888,
153
+            "nodePort": 0
150 154
           },
151 155
           {
152 156
             "name": "election",
157
+            "protocol": "TCP",
153 158
             "port": 3888,
154
-            "targetPort": 3888
159
+            "targetPort": 3888,
160
+            "nodePort": 0
155 161
           }
156 162
         ],
157 163
         "selector": {
158 164
           "server-id": "3"
159
-        }
165
+        },
166
+        "portalIP": "",
167
+        "type": "ClusterIP",
168
+        "sessionAffinity": "None"
169
+      },
170
+      "status": {
171
+        "loadBalancer": {}
160 172
       }
161 173
     },
162 174
     {
163 175
       "kind": "Pod",
164
-      "id": "zookeeper-1",
165
-      "apiVersion": "v1beta1",
166
-      "labels": {
167
-        "name": "zookeeper",
168
-        "server-id": "1"
176
+      "apiVersion": "v1beta3",
177
+      "metadata": {
178
+        "name": "zookeeper-1",
179
+        "creationTimestamp": null,
180
+        "labels": {
181
+          "name": "zookeeper",
182
+          "server-id": "1"
183
+        }
169 184
       },
170
-      "desiredState": {
171
-        "manifest": {
172
-          "id": "zookeeper-1",
173
-          "containers": [
174
-            {
175
-              "name": "server",
176
-              "image": "${ZOOKEEPER_IMAGE}",
177
-              "env":[
178
-                { "name": "SERVER_ID", "value": "1" }
179
-              ],
180
-              "ports":[
181
-                {
182
-                  "containerPort": 2181
183
-                },
184
-                {
185
-                  "containerPort": 2888
186
-                },
187
-                {
188
-                  "containerPort": 3888
189
-                }
190
-              ]
185
+      "spec": {
186
+        "containers": [
187
+          {
188
+            "name": "server",
189
+            "image": "${ZOOKEEPER_IMAGE}",
190
+            "ports": [
191
+              {
192
+                "containerPort": 2181,
193
+                "protocol": "TCP"
194
+              },
195
+              {
196
+                "containerPort": 2888,
197
+                "protocol": "TCP"
198
+              },
199
+              {
200
+                "containerPort": 3888,
201
+                "protocol": "TCP"
202
+              }
203
+            ],
204
+            "env": [
205
+              {
206
+                "name": "SERVER_ID",
207
+                "value": "1"
208
+              }
209
+            ],
210
+            "resources": {},
211
+            "terminationMessagePath": "/dev/termination-log",
212
+            "imagePullPolicy": "IfNotPresent",
213
+            "capabilities": {},
214
+            "securityContext": {
215
+              "capabilities": {},
216
+              "privileged": false
191 217
             }
192
-          ]
193
-        }
194
-      }
218
+          }
219
+        ],
220
+        "restartPolicy": "Always",
221
+        "dnsPolicy": "ClusterFirst",
222
+        "serviceAccount": ""
223
+      },
224
+      "status": {}
195 225
     },
196 226
     {
197 227
       "kind": "Pod",
198
-      "id": "zookeeper-2",
199
-      "apiVersion": "v1beta1",
200
-      "labels": {
201
-        "name": "zookeeper",
202
-        "server-id": "2"
228
+      "apiVersion": "v1beta3",
229
+      "metadata": {
230
+        "name": "zookeeper-2",
231
+        "creationTimestamp": null,
232
+        "labels": {
233
+          "name": "zookeeper",
234
+          "server-id": "2"
235
+        }
203 236
       },
204
-      "desiredState": {
205
-        "manifest": {
206
-          "id": "zookeeper-2",
207
-          "containers": [
208
-            {
209
-              "name": "server",
210
-              "image": "${ZOOKEEPER_IMAGE}",
211
-              "env":[
212
-                { "name": "SERVER_ID", "value": "2" }
213
-              ],
214
-              "ports":[
215
-                {
216
-                  "containerPort": 2181
217
-                },
218
-                {
219
-                  "containerPort": 2888
220
-                },
221
-                {
222
-                  "containerPort": 3888
223
-                }
224
-              ]
237
+      "spec": {
238
+        "containers": [
239
+          {
240
+            "name": "server",
241
+            "image": "${ZOOKEEPER_IMAGE}",
242
+            "ports": [
243
+              {
244
+                "containerPort": 2181,
245
+                "protocol": "TCP"
246
+              },
247
+              {
248
+                "containerPort": 2888,
249
+                "protocol": "TCP"
250
+              },
251
+              {
252
+                "containerPort": 3888,
253
+                "protocol": "TCP"
254
+              }
255
+            ],
256
+            "env": [
257
+              {
258
+                "name": "SERVER_ID",
259
+                "value": "2"
260
+              }
261
+            ],
262
+            "resources": {},
263
+            "terminationMessagePath": "/dev/termination-log",
264
+            "imagePullPolicy": "IfNotPresent",
265
+            "capabilities": {},
266
+            "securityContext": {
267
+              "capabilities": {},
268
+              "privileged": false
225 269
             }
226
-          ]
227
-        }
228
-      }
270
+          }
271
+        ],
272
+        "restartPolicy": "Always",
273
+        "dnsPolicy": "ClusterFirst",
274
+        "serviceAccount": ""
275
+      },
276
+      "status": {}
229 277
     },
230 278
     {
231 279
       "kind": "Pod",
232
-      "id": "zookeeper-3",
233
-      "apiVersion": "v1beta1",
234
-      "labels": {
235
-        "name": "zookeeper",
236
-        "server-id": "3"
280
+      "apiVersion": "v1beta3",
281
+      "metadata": {
282
+        "name": "zookeeper-3",
283
+        "creationTimestamp": null,
284
+        "labels": {
285
+          "name": "zookeeper",
286
+          "server-id": "3"
287
+        }
237 288
       },
238
-      "desiredState": {
239
-        "manifest": {
240
-          "id": "zookeeper-3",
241
-          "containers": [
242
-            {
243
-              "name": "server",
244
-              "image": "${ZOOKEEPER_IMAGE}",
245
-              "env":[
246
-                { "name": "SERVER_ID", "value": "3" }
247
-              ],
248
-              "ports":[
249
-                {
250
-                  "containerPort": 2181
251
-                },
252
-                {
253
-                  "containerPort": 2888
254
-                },
255
-                {
256
-                  "containerPort": 3888
257
-                }
258
-              ]
289
+      "spec": {
290
+        "containers": [
291
+          {
292
+            "name": "server",
293
+            "image": "${ZOOKEEPER_IMAGE}",
294
+            "ports": [
295
+              {
296
+                "containerPort": 2181,
297
+                "protocol": "TCP"
298
+              },
299
+              {
300
+                "containerPort": 2888,
301
+                "protocol": "TCP"
302
+              },
303
+              {
304
+                "containerPort": 3888,
305
+                "protocol": "TCP"
306
+              }
307
+            ],
308
+            "env": [
309
+              {
310
+                "name": "SERVER_ID",
311
+                "value": "3"
312
+              }
313
+            ],
314
+            "resources": {},
315
+            "terminationMessagePath": "/dev/termination-log",
316
+            "imagePullPolicy": "IfNotPresent",
317
+            "capabilities": {},
318
+            "securityContext": {
319
+              "capabilities": {},
320
+              "privileged": false
259 321
             }
260
-          ]
261
-        }
262
-      }
322
+          }
323
+        ],
324
+        "restartPolicy": "Always",
325
+        "dnsPolicy": "ClusterFirst",
326
+        "serviceAccount": ""
327
+      },
328
+      "status": {}
329
+    }
330
+  ],
331
+  "parameters": [
332
+    {
333
+      "name": "ZOOKEEPER_IMAGE",
334
+      "description": "The name of Zookeeper Docker image to use",
335
+      "value": "openshift/zookeeper-346-fedora20"
263 336
     }
264
-  ]
265
-}
337
+  ],
338
+  "labels": {
339
+    "template": "zookeeper"
340
+  }
341
+}
266 342
\ No newline at end of file
... ...
@@ -1,65 +1,66 @@
1 1
 {
2
-    "metadata":{
3
-        "name":"hello-service-pod-meta"
2
+  "kind": "Config",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
5
+  "items": [
6
+    {
7
+      "id": "hello-openshift-service",
8
+      "kind": "Service",
9
+      "apiVersion": "v1beta1",
10
+      "port": 8080,
11
+      "selector": {
12
+        "name": "hello-openshift-label"
13
+      }
4 14
     },
5
-    "kind":"Config",
6
-    "apiVersion":"v1beta1",
7
-    "creationTimestamp":"2014-09-18T18:28:38-04:00",
8
-    "items":[
9
-        {
10
-            "id": "hello-openshift-service",
11
-            "kind": "Service",
12
-            "apiVersion": "v1beta1",
13
-            "port": 8080,
14
-            "selector": {
15
-                "name": "hello-openshift-label"
16
-            }
17
-        },
18
-        {
19
-            "id": "hello-openshift",
20
-            "kind": "ReplicationController",
21
-            "apiVersion": "v1beta1",
22
-            "desiredState": {
23
-                "podTemplate": {
24
-                    "desiredState": {
25
-                        "manifest": {
26
-                            "version": "v1beta1",
27
-                            "id": "",
28
-                            "containers": [{
29
-                                "name": "hello-openshift-container",
30
-                                "image": "openshift/hello-openshift",
31
-                                "ports": [{
32
-                                    "hostPort": 6061,
33
-                                    "containerPort": 8080,
34
-                                    "protocol": "TCP"
35
-                                }]
36
-                            }],
37
-                            "dnsPolicy": "ClusterFirst",
38
-                            "restartPolicy": {
39
-                                "always": {}
40
-                            },
41
-                            "volumes": null
42
-                        }
43
-                    },
44
-                    "labels": {
45
-                        "name": "hello-openshift-label"
15
+    {
16
+      "id": "hello-openshift",
17
+      "kind": "ReplicationController",
18
+      "apiVersion": "v1beta1",
19
+      "desiredState": {
20
+        "podTemplate": {
21
+          "desiredState": {
22
+            "manifest": {
23
+              "version": "v1beta1",
24
+              "id": "",
25
+              "containers": [
26
+                {
27
+                  "name": "hello-openshift-container",
28
+                  "image": "openshift/hello-openshift",
29
+                  "ports": [
30
+                    {
31
+                      "hostPort": 6061,
32
+                      "containerPort": 8080,
33
+                      "protocol": "TCP"
46 34
                     }
47
-                },
48
-                "replicaSelector": {
49
-                    "name": "hello-openshift-label"
50
-                },
51
-                "replicas": 1
35
+                  ]
36
+                }
37
+              ],
38
+              "dnsPolicy": "ClusterFirst",
39
+              "restartPolicy": {
40
+                "always": {}
41
+              },
42
+              "volumes": null
52 43
             }
44
+          },
45
+          "labels": {
46
+            "name": "hello-openshift-label"
47
+          }
53 48
         },
54
-        {
55
-            "kind": "Route",
56
-            "apiVersion": "v1beta1",
57
-            "metadata": {
58
-                "name": "hello-openshift-route"
59
-            },
60
-            "id": "hello-openshift-route",
61
-            "host": "hello.openshift.test",
62
-            "serviceName": "hello-openshift-service"
63
-        }
64
-    ]
65
-}
49
+        "replicaSelector": {
50
+          "name": "hello-openshift-label"
51
+        },
52
+        "replicas": 1
53
+      }
54
+    },
55
+    {
56
+      "kind": "Route",
57
+      "apiVersion": "v1beta1",
58
+      "metadata": {
59
+        "name": "hello-openshift-route"
60
+      },
61
+      "id": "hello-openshift-route",
62
+      "host": "hello.openshift.test",
63
+      "serviceName": "hello-openshift-service"
64
+    }
65
+  ]
66
+}
66 67
\ No newline at end of file
... ...
@@ -1,55 +1,65 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3
-  "desiredState": {
4
-    "manifest": {
5
-      "containers": [
6
-        {
7
-          "command": [
8
-            "--loglevel=4"
9
-          ],
10
-          "env": [
11
-            {
12
-              "name": "OPENSHIFT_MASTER",
13
-              "value": "${OPENSHIFT_MASTER}"
14
-            },
15
-            {
16
-              "name": "OPENSHIFT_CA_DATA",
17
-              "value": "${OPENSHIFT_CA_DATA}"
18
-            },
19
-            {
20
-              "name": "OPENSHIFT_KEY_DATA",
21
-              "value": "${OPENSHIFT_KEY_DATA}"
22
-            },
23
-            {
24
-              "name": "OPENSHIFT_CERT_DATA",
25
-              "value": "${OPENSHIFT_CERT_DATA}"
26
-            },
27
-            {
28
-              "name": "OPENSHIFT_INSECURE",
29
-              "value": "${OPENSHIFT_INSECURE}"
30
-            }
31
-          ],
32
-          "image": "openshift/origin-haproxy-router",
33
-          "imagePullPolicy": "PullIfNotPresent",
34
-          "name": "origin-haproxy-router-ROUTER_ID",
35
-          "ports": [
36
-            {
37
-              "containerPort": 80,
38
-              "hostPort": 80
39
-            },
40
-            {
41
-              "containerPort": 443,
42
-              "hostPort": 443
43
-            }
44
-          ]
2
+  "kind": "Pod",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {
5
+    "name": "ROUTER_ID",
6
+    "creationTimestamp": null
7
+  },
8
+  "spec": {
9
+    "containers": [
10
+      {
11
+        "name": "origin-haproxy-router-ROUTER_ID",
12
+        "image": "openshift/origin-haproxy-router",
13
+        "args": [
14
+          "--loglevel=4"
15
+        ],
16
+        "ports": [
17
+          {
18
+            "hostPort": 80,
19
+            "containerPort": 80,
20
+            "protocol": "TCP"
21
+          },
22
+          {
23
+            "hostPort": 443,
24
+            "containerPort": 443,
25
+            "protocol": "TCP"
26
+          }
27
+        ],
28
+        "env": [
29
+          {
30
+            "name": "OPENSHIFT_MASTER",
31
+            "value": "${OPENSHIFT_MASTER}"
32
+          },
33
+          {
34
+            "name": "OPENSHIFT_CA_DATA",
35
+            "value": "${OPENSHIFT_CA_DATA}"
36
+          },
37
+          {
38
+            "name": "OPENSHIFT_KEY_DATA",
39
+            "value": "${OPENSHIFT_KEY_DATA}"
40
+          },
41
+          {
42
+            "name": "OPENSHIFT_CERT_DATA",
43
+            "value": "${OPENSHIFT_CERT_DATA}"
44
+          },
45
+          {
46
+            "name": "OPENSHIFT_INSECURE",
47
+            "value": "${OPENSHIFT_INSECURE}"
48
+          }
49
+        ],
50
+        "resources": {},
51
+        "terminationMessagePath": "/dev/termination-log",
52
+        "imagePullPolicy": "IfNotPresent",
53
+        "capabilities": {},
54
+        "securityContext": {
55
+          "capabilities": {},
56
+          "privileged": false
45 57
         }
46
-      ],
47
-      "restartPolicy": {
48
-        "always": {}
49
-      },
50
-      "version": "v1beta2"
51
-    }
58
+      }
59
+    ],
60
+    "restartPolicy": "Always",
61
+    "dnsPolicy": "ClusterFirst",
62
+    "serviceAccount": ""
52 63
   },
53
-  "id": "ROUTER_ID",
54
-  "kind": "Pod"
55
-}
64
+  "status": {}
65
+}
56 66
\ No newline at end of file
... ...
@@ -1,7 +1,12 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3 2
   "kind": "ImageStream",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5
-    "name": "samplerepository"
5
+    "name": "samplerepository",
6
+    "creationTimestamp": null
7
+  },
8
+  "spec": {},
9
+  "status": {
10
+    "dockerImageRepository": ""
6 11
   }
7
-}
12
+}
8 13
\ No newline at end of file
... ...
@@ -1,26 +1,34 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3 2
   "kind": "Build",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5 5
     "name": "testcustom",
6
+    "creationTimestamp": null,
6 7
     "labels": {
7 8
       "name": "testcustom"
8 9
     }
9 10
   },
10
-  "parameters": {
11
-    "output": {
12
-      "to": {
13
-        "name": "test"
14
-      },
15
-      "tag": "application",
16
-      "pushSecretName": "docker"
17
-    },
11
+  "spec": {
12
+    "source": {},
18 13
     "strategy": {
19 14
       "type": "Custom",
20 15
       "customStrategy": {
21
-        "exposeDockerSocket": true,
22
-        "image": "172.30.17.104:5000/foo/bar"
16
+        "from": {
17
+          "kind": "DockerImage",
18
+          "name": "172.30.17.104:5000/foo/bar"
19
+        },
20
+        "exposeDockerSocket": true
23 21
       }
24
-    }
22
+    },
23
+    "output": {
24
+      "to": {
25
+        "kind": "ImageStreamTag",
26
+        "name": "test:application"
27
+      }
28
+    },
29
+    "resources": {}
30
+  },
31
+  "status": {
32
+    "phase": ""
25 33
   }
26
-}
34
+}
27 35
\ No newline at end of file
... ...
@@ -1,18 +1,14 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3 2
   "kind": "Build",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5 5
     "name": "test",
6
+    "creationTimestamp": null,
6 7
     "labels": {
7 8
       "name": "test"
8 9
     }
9 10
   },
10
-  "parameters": {
11
-    "output": {
12
-      "to": {
13
-        "name": "test"
14
-      }
15
-    },
11
+  "spec": {
16 12
     "source": {
17 13
       "type": "Git",
18 14
       "git": {
... ...
@@ -21,10 +17,24 @@
21 21
       "contextDir": "test/extended/fixtures/sti-environment-build-app"
22 22
     },
23 23
     "strategy": {
24
-      "type": "STI",
25
-      "stiStrategy": {
26
-        "image": "openshift/ruby-20-centos7"
24
+      "type": "Source",
25
+      "sourceStrategy": {
26
+        "from": {
27
+          "kind": "DockerImage",
28
+          "name": "openshift/ruby-20-centos7"
29
+        },
30
+        "incremental": true
27 31
       }
28
-    }
32
+    },
33
+    "output": {
34
+      "to": {
35
+        "kind": "ImageStreamTag",
36
+        "name": "test:latest"
37
+      }
38
+    },
39
+    "resources": {}
40
+  },
41
+  "status": {
42
+    "phase": ""
29 43
   }
30
-}
44
+}
31 45
\ No newline at end of file
... ...
@@ -1,18 +1,14 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3 2
   "kind": "Build",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5 5
     "name": "testsecretbuilder",
6
+    "creationTimestamp": null,
6 7
     "labels": {
7 8
       "name": "testsecretbuilder"
8 9
     }
9 10
   },
10
-  "parameters": {
11
-    "output": {
12
-      "to": {
13
-        "name": "test"
14
-      }
15
-    },
11
+  "spec": {
16 12
     "source": {
17 13
       "type": "Git",
18 14
       "git": {
... ...
@@ -23,6 +19,16 @@
23 23
     },
24 24
     "strategy": {
25 25
       "type": "Docker"
26
-    }
26
+    },
27
+    "output": {
28
+      "to": {
29
+        "kind": "ImageStreamTag",
30
+        "name": "test:latest"
31
+      }
32
+    },
33
+    "resources": {}
34
+  },
35
+  "status": {
36
+    "phase": ""
27 37
   }
28
-}
38
+}
29 39
\ No newline at end of file
... ...
@@ -1,10 +1,12 @@
1 1
 {
2
-  "apiVersion": "v1beta3",
3 2
   "kind": "Secret",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5
-    "name": "docker"
5
+    "name": "docker",
6
+    "creationTimestamp": null
6 7
   },
7 8
   "data": {
8 9
     "dockercfg": "eyJodHRwczovL3JlZ2lzdHJ5aG9zdC92MSI6eyJhdXRoIjoic2VjcmV0IiwiZW1haWwiOiJqb2huQGRvZS5jb20ifX0K"
9
-  }
10
-}
10
+  },
11
+  "type": "Opaque"
12
+}
11 13
\ No newline at end of file
... ...
@@ -1,5 +1,7 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
2
+  "kind": "List",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
3 5
   "items": [
4 6
     {
5 7
       "apiVersion": "v1beta2",
... ...
@@ -26,6 +28,5 @@
26 26
         "name": "lonely-pod"
27 27
       }
28 28
     }
29
-  ],
30
-  "kind": "List"
31
-}
29
+  ]
30
+}
32 31
\ No newline at end of file
... ...
@@ -1,5 +1,7 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
2
+  "kind": "List",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
3 5
   "items": [
4 6
     {
5 7
       "annotations": {},
... ...
@@ -157,6 +159,5 @@
157 157
       },
158 158
       "sessionAffinity": "None"
159 159
     }
160
-  ],
161
-  "kind": "List"
162
-}
160
+  ]
161
+}
163 162
\ No newline at end of file
... ...
@@ -1,5 +1,7 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
2
+  "kind": "List",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
3 5
   "items": [
4 6
     {
5 7
       "apiVersion": "v1beta1",
... ...
@@ -41,6 +43,5 @@
41 41
         "name": "hello-openshift"
42 42
       }
43 43
     }
44
-  ],
45
-  "kind": "List"
46
-}
44
+  ]
45
+}
47 46
\ No newline at end of file
... ...
@@ -1,5 +1,7 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
2
+  "kind": "List",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
3 5
   "items": [
4 6
     {
5 7
       "apiVersion": "v1beta1",
... ...
@@ -16,6 +18,5 @@
16 16
       },
17 17
       "sessionAffinity": "None"
18 18
     }
19
-  ],
20
-  "kind": "List"
21
-}
19
+  ]
20
+}
22 21
\ No newline at end of file
... ...
@@ -1,5 +1,7 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
2
+  "kind": "List",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
3 5
   "items": [
4 6
     {
5 7
       "annotations": {},
... ...
@@ -142,6 +144,5 @@
142 142
       },
143 143
       "sessionAffinity": "None"
144 144
     }
145
-  ],
146
-  "kind": "List"
147
-}
145
+  ]
146
+}
148 147
\ No newline at end of file
... ...
@@ -1,5 +1,7 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
2
+  "kind": "List",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
3 5
   "items": [
4 6
     {
5 7
       "apiVersion": "v1beta1",
... ...
@@ -85,9 +87,9 @@
85 85
         },
86 86
         "strategy": {
87 87
           "stiStrategy": {
88
-	    "from": {
89
-	      "name": "ruby-20-centos-buildcli"
90
-	    },
88
+            "from": {
89
+              "name": "ruby-20-centos-buildcli"
90
+            },
91 91
             "tag": "invalid",
92 92
             "scripts": "https://raw.githubusercontent.com/openshift/ruby-20-centos/master/.sti/bin"
93 93
           },
... ...
@@ -107,6 +109,5 @@
107 107
         }
108 108
       ]
109 109
     }
110
-  ],
111
-  "kind": "List"
112
-}
110
+  ]
111
+}
113 112
\ No newline at end of file
... ...
@@ -1,5 +1,7 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
2
+  "kind": "List",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {},
3 5
   "items": [
4 6
     {
5 7
       "apiVersion": "v1beta1",
... ...
@@ -101,6 +103,5 @@
101 101
         }
102 102
       ]
103 103
     }
104
-  ],
105
-  "kind": "List"
106
-}
104
+  ]
105
+}
107 106
\ No newline at end of file
... ...
@@ -1,46 +1,63 @@
1 1
 {
2 2
   "kind": "DeploymentConfig",
3
-  "apiVersion": "v1beta1",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5
-    "name": "test-deployment-config"
5
+    "name": "test-deployment-config",
6
+    "creationTimestamp": null
6 7
   },
7
-  "triggers": [
8
-  ],
9
-  "template": {
8
+  "spec": {
10 9
     "strategy": {
11
-      "type": "Recreate"
10
+      "type": "Recreate",
11
+      "resources": {}
12 12
     },
13
-    "controllerTemplate": {
14
-      "replicas": 1,
15
-      "replicaSelector": {
16
-        "name": "test-deployment"
13
+    "replicas": 1,
14
+    "selector": {
15
+      "name": "test-deployment"
16
+    },
17
+    "template": {
18
+      "metadata": {
19
+        "creationTimestamp": null,
20
+        "labels": {
21
+          "name": "test-deployment"
22
+        }
17 23
       },
18
-      "podTemplate": {
19
-        "desiredState": {
20
-          "manifest": {
21
-            "version": "v1beta1",
22
-            "containers": [
24
+      "spec": {
25
+        "containers": [
26
+          {
27
+            "name": "ruby-helloworld",
28
+            "image": "127.0.0.1:5001/openshift/origin-ruby-sample",
29
+            "ports": [
30
+              {
31
+                "containerPort": 8080,
32
+                "protocol": "TCP"
33
+              }
34
+            ],
35
+            "env": [
23 36
               {
24
-                "name": "ruby-helloworld",
25
-                "image": "127.0.0.1:5001/openshift/origin-ruby-sample",
26
-                "cpu": 100,
27
-                "memory": 3221225472,
28
-                "ports": [
29
-                  {
30
-                    "containerPort": 8080
31
-                  }
32
-                ],
33
-                "env": [
34
-                  {"name":"TEST","value":"value"}
35
-                ]
37
+                "name": "TEST",
38
+                "value": "value"
36 39
               }
37
-            ]
40
+            ],
41
+            "resources": {
42
+              "limits": {
43
+                "cpu": "100m",
44
+                "memory": "3Gi"
45
+              }
46
+            },
47
+            "terminationMessagePath": "/dev/termination-log",
48
+            "imagePullPolicy": "IfNotPresent",
49
+            "capabilities": {},
50
+            "securityContext": {
51
+              "capabilities": {},
52
+              "privileged": false
53
+            }
38 54
           }
39
-        },
40
-        "labels": {
41
-          "name": "test-deployment"
42
-        }
55
+        ],
56
+        "restartPolicy": "Always",
57
+        "dnsPolicy": "ClusterFirst",
58
+        "serviceAccount": ""
43 59
       }
44 60
     }
45
-  }
46
-}
61
+  },
62
+  "status": {}
63
+}
47 64
\ No newline at end of file
... ...
@@ -1,98 +1,66 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
2
+  "kind": "ImageStreamMapping",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {
5
+    "name": "test",
6
+    "creationTimestamp": null
7
+  },
3 8
   "image": {
9
+    "metadata": {
10
+      "name": "abcd1234",
11
+      "creationTimestamp": null
12
+    },
13
+    "dockerImageReference": "openshift/ruby-19-centos:latest",
4 14
     "dockerImageMetadata": {
5
-      "Architecture": "amd64",
6
-      "Author": "Michal Fojtik \u003cmfojtik@redhat.com\u003e",
7
-      "Comment": "",
8
-      "Config": {
9
-        "AttachStderr": false,
10
-        "AttachStdin": false,
11
-        "AttachStdout": false,
12
-        "Cmd": [
13
-          "/opt/ruby/bin/usage"
14
-        ],
15
-        "CpuShares": 0,
16
-        "Cpuset": "",
17
-        "Domainname": "",
18
-        "Entrypoint": null,
15
+      "kind": "DockerImage",
16
+      "apiVersion": "1.0",
17
+      "Id": "7dbbbc6cb29d5abc29b722c06d5209a499fa97cd655c59793540d00933ab4e45",
18
+      "Parent": "dde5ee6a036d5d2c69240413fa8f3bb9bb1fea25166996eadf42e2f113736401",
19
+      "Created": "2014-08-08T14:36:01Z",
20
+      "Container": "72ce367abbc2862232b5e5e3485e51f096983e4e28b8dbefba9a6fd5ce0d6e48",
21
+      "ContainerConfig": {
22
+        "Hostname": "df1704c4368e",
23
+        "User": "ruby",
24
+        "ExposedPorts": {
25
+          "9292/tcp": {}
26
+        },
19 27
         "Env": [
20 28
           "HOME=/opt/ruby",
21 29
           "PATH=/opt/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
22 30
           "STI_SCRIPTS_URL=https://raw.githubusercontent.com/openshift/ruby-19-centos/master/.sti/bin",
23 31
           "APP_ROOT=."
24 32
         ],
25
-        "ExposedPorts": {
26
-          "9292/tcp": {}
27
-        },
28
-        "Hostname": "df1704c4368e",
29
-        "Image": "dde5ee6a036d5d2c69240413fa8f3bb9bb1fea25166996eadf42e2f113736401",
30
-        "Memory": 0,
31
-        "MemorySwap": 0,
32
-        "NetworkDisabled": false,
33
-        "OnBuild": [],
34
-        "OpenStdin": false,
35
-        "PortSpecs": null,
36
-        "StdinOnce": false,
37
-        "Tty": false,
38
-        "User": "ruby",
39
-        "Volumes": null,
40
-        "WorkingDir": "/opt/ruby/src"
41
-      },
42
-      "Container": "72ce367abbc2862232b5e5e3485e51f096983e4e28b8dbefba9a6fd5ce0d6e48",
43
-      "ContainerConfig": {
44
-        "AttachStderr": false,
45
-        "AttachStdin": false,
46
-        "AttachStdout": false,
47 33
         "Cmd": [
48 34
           "/bin/sh",
49 35
           "-c",
50 36
           "#(nop) CMD [/opt/ruby/bin/usage]"
51 37
         ],
52
-        "CpuShares": 0,
53
-        "Cpuset": "",
54
-        "Domainname": "",
55
-        "Entrypoint": null,
38
+        "Image": "dde5ee6a036d5d2c69240413fa8f3bb9bb1fea25166996eadf42e2f113736401",
39
+        "WorkingDir": "/opt/ruby/src"
40
+      },
41
+      "DockerVersion": "1.1.2-dev",
42
+      "Author": "Michal Fojtik \u003cmfojtik@redhat.com\u003e",
43
+      "Config": {
44
+        "Hostname": "df1704c4368e",
45
+        "User": "ruby",
46
+        "ExposedPorts": {
47
+          "9292/tcp": {}
48
+        },
56 49
         "Env": [
57 50
           "HOME=/opt/ruby",
58 51
           "PATH=/opt/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
59 52
           "STI_SCRIPTS_URL=https://raw.githubusercontent.com/openshift/ruby-19-centos/master/.sti/bin",
60 53
           "APP_ROOT=."
61 54
         ],
62
-        "ExposedPorts": {
63
-          "9292/tcp": {}
64
-        },
65
-        "Hostname": "df1704c4368e",
55
+        "Cmd": [
56
+          "/opt/ruby/bin/usage"
57
+        ],
66 58
         "Image": "dde5ee6a036d5d2c69240413fa8f3bb9bb1fea25166996eadf42e2f113736401",
67
-        "Memory": 0,
68
-        "MemorySwap": 0,
69
-        "NetworkDisabled": false,
70
-        "OnBuild": [],
71
-        "OpenStdin": false,
72
-        "PortSpecs": null,
73
-        "StdinOnce": false,
74
-        "Tty": false,
75
-        "User": "ruby",
76
-        "Volumes": null,
77 59
         "WorkingDir": "/opt/ruby/src"
78 60
       },
79
-      "Created": "2014-08-08T14:36:01.303084707Z",
80
-      "DockerVersion": "1.1.2-dev",
81
-      "Id": "7dbbbc6cb29d5abc29b722c06d5209a499fa97cd655c59793540d00933ab4e45",
82
-      "Os": "linux",
83
-      "Parent": "dde5ee6a036d5d2c69240413fa8f3bb9bb1fea25166996eadf42e2f113736401",
84
-      "Size": 0
61
+      "Architecture": "amd64"
85 62
     },
86
-    "dockerImageReference": "openshift/ruby-19-centos:latest",
87
-    "kind": "Image",
88
-    "metadata": {
89
-      "name": "abcd1234"
90
-    },
91
-    "version": "v1beta1"
92
-  },
93
-  "kind": "ImageRepositoryMapping",
94
-  "metadata": {
95
-    "name": "test"
63
+    "dockerImageMetadataVersion": "1.0"
96 64
   },
97 65
   "tag": "sometag"
98
-}
66
+}
99 67
\ No newline at end of file
... ...
@@ -1,10 +1,15 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3
-  "kind": "ImageRepository",
2
+  "kind": "ImageStream",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5
+    "name": "test",
6
+    "creationTimestamp": null,
5 7
     "labels": {
6 8
       "color": "blue"
7
-    },
8
-    "name": "test"
9
+    }
10
+  },
11
+  "spec": {},
12
+  "status": {
13
+    "dockerImageRepository": ""
9 14
   }
10
-}
15
+}
11 16
\ No newline at end of file
... ...
@@ -1,15 +1,26 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3 2
   "kind": "ImageStreamMapping",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5
-    "name": "test"
5
+    "name": "test",
6
+    "creationTimestamp": null
6 7
   },
7 8
   "image": {
8 9
     "metadata": {
9
-      "name": "sha256:4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125"
10
+      "name": "sha256:4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125",
11
+      "creationTimestamp": null
10 12
     },
11 13
     "dockerImageReference": "openshift/ruby-19-centos:latest",
14
+    "dockerImageMetadata": {
15
+      "kind": "DockerImage",
16
+      "apiVersion": "1.0",
17
+      "Id": "",
18
+      "Created": null,
19
+      "ContainerConfig": {},
20
+      "Config": {}
21
+    },
22
+    "dockerImageMetadataVersion": "1.0",
12 23
     "dockerImageManifest": "{\n   \"name\": \"library/busybox\",\n   \"tag\": \"latest\",\n   \"architecture\": \"amd64\",\n   \"fsLayers\": [\n      {\n         \"blobSum\": \"tarsum.dev+sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n      },\n      {\n         \"blobSum\": \"tarsum.dev+sha256:d43a7079c4dd020e9c65419c2eb6751ea49d6f7f9337edd895596cd5f7aa6369\"\n      },\n      {\n         \"blobSum\": \"tarsum.dev+sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n      },\n      {\n         \"blobSum\": \"tarsum.dev+sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n      }\n   ],\n   \"history\": [\n      {\n         \"v1Compatibility\": \"{\\\"id\\\":\\\"4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125\\\",\\\"parent\\\":\\\"ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2\\\",\\\"created\\\":\\\"2014-12-31T22:23:56.943403668Z\\\",\\\"container\\\":\\\"83dcf36ad1042b90f4ea8b2ebb60e61b2f1a451a883e04b388be299ad382b259\\\",\\\"container_config\\\":{\\\"Hostname\\\":\\\"7f674915980d\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":[\\\"/bin/sh\\\",\\\"-c\\\",\\\"#(nop) CMD [/bin/sh]\\\"],\\\"Image\\\":\\\"ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"docker_version\\\":\\\"1.4.1\\\",\\\"author\\\":\\\"Jerome Petazzoni \\\\u003cjerome@docker.com\\\\u003e\\\",\\\"config\\\":{\\\"Hostname\\\":\\\"7f674915980d\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":[\\\"/bin/sh\\\"],\\\"Image\\\":\\\"ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"architecture\\\":\\\"amd64\\\",\\\"os\\\":\\\"linux\\\",\\\"checksum\\\":\\\"tarsum.dev+sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\\\",\\\"Size\\\":0}\\n\"\n      },\n      {\n         \"v1Compatibility\": \"{\\\"id\\\":\\\"ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2\\\",\\\"parent\\\":\\\"df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b\\\",\\\"created\\\":\\\"2014-12-31T22:23:56.190797792Z\\\",\\\"container\\\":\\\"7f674915980dbcafb3096fa82369c2943194486dcb4e585e3490a2e66c530e44\\\",\\\"container_config\\\":{\\\"Hostname\\\":\\\"7f674915980d\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":[\\\"/bin/sh\\\",\\\"-c\\\",\\\"#(nop) ADD file:8cf517d90fe79547c474641cc1e6425850e04abbd8856718f7e4a184ea878538 in /\\\"],\\\"Image\\\":\\\"df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"docker_version\\\":\\\"1.4.1\\\",\\\"author\\\":\\\"Jerome Petazzoni \\\\u003cjerome@docker.com\\\\u003e\\\",\\\"config\\\":{\\\"Hostname\\\":\\\"7f674915980d\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":null,\\\"Image\\\":\\\"df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"architecture\\\":\\\"amd64\\\",\\\"os\\\":\\\"linux\\\",\\\"checksum\\\":\\\"tarsum.dev+sha256:d43a7079c4dd020e9c65419c2eb6751ea49d6f7f9337edd895596cd5f7aa6369\\\",\\\"Size\\\":2433303}\\n\"\n      },\n      {\n         \"v1Compatibility\": \"{\\\"id\\\":\\\"df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b\\\",\\\"parent\\\":\\\"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158\\\",\\\"created\\\":\\\"2014-10-01T20:46:07.263351912Z\\\",\\\"container\\\":\\\"2147a17cb1b2d6626ed78e5ef8ba4c71ce82c884bc3b57ab01e6114ff357cea4\\\",\\\"container_config\\\":{\\\"Hostname\\\":\\\"2147a17cb1b2\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":[\\\"/bin/sh\\\",\\\"-c\\\",\\\"#(nop) MAINTAINER Jerome Petazzoni \\\\u003cjerome@docker.com\\\\u003e\\\"],\\\"Image\\\":\\\"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"docker_version\\\":\\\"1.2.0\\\",\\\"author\\\":\\\"Jerome Petazzoni \\\\u003cjerome@docker.com\\\\u003e\\\",\\\"config\\\":{\\\"Hostname\\\":\\\"2147a17cb1b2\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":[\\\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\\\"],\\\"Cmd\\\":null,\\\"Image\\\":\\\"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":[]},\\\"architecture\\\":\\\"amd64\\\",\\\"os\\\":\\\"linux\\\",\\\"checksum\\\":\\\"tarsum.dev+sha256:1b755912c77197c6a43539f2a708ef89d5849b8ce02642cb702e47afaa8195c3\\\",\\\"Size\\\":0}\\n\"\n      },\n      {\n         \"v1Compatibility\": \"{\\\"id\\\":\\\"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158\\\",\\\"comment\\\":\\\"Imported from -\\\",\\\"created\\\":\\\"2013-06-13T14:03:50.821769-07:00\\\",\\\"container_config\\\":{\\\"Hostname\\\":\\\"\\\",\\\"Domainname\\\":\\\"\\\",\\\"User\\\":\\\"\\\",\\\"Memory\\\":0,\\\"MemorySwap\\\":0,\\\"CpuShares\\\":0,\\\"Cpuset\\\":\\\"\\\",\\\"AttachStdin\\\":false,\\\"AttachStdout\\\":false,\\\"AttachStderr\\\":false,\\\"PortSpecs\\\":null,\\\"ExposedPorts\\\":null,\\\"Tty\\\":false,\\\"OpenStdin\\\":false,\\\"StdinOnce\\\":false,\\\"Env\\\":null,\\\"Cmd\\\":null,\\\"Image\\\":\\\"\\\",\\\"Volumes\\\":null,\\\"WorkingDir\\\":\\\"\\\",\\\"Entrypoint\\\":null,\\\"NetworkDisabled\\\":false,\\\"MacAddress\\\":\\\"\\\",\\\"OnBuild\\\":null},\\\"docker_version\\\":\\\"0.4.0\\\",\\\"architecture\\\":\\\"x86_64\\\",\\\"checksum\\\":\\\"tarsum.dev+sha256:324d4cf44ee7daa46266c1df830c61a7df615c0632176a339e7310e34723d67a\\\",\\\"Size\\\":0}\\n\"\n      }\n   ],\n   \"schemaVersion\": 1,\n   \"signatures\": [\n      {\n         \"header\": {\n            \"jwk\": {\n               \"crv\": \"P-256\",\n               \"kid\": \"OIH7:HQFS:44FK:45VB:3B53:OIAG:TPL4:ATF5:6PNE:MGHN:NHQX:2GE4\",\n               \"kty\": \"EC\",\n               \"x\": \"Cu_UyxwLgHzE9rvlYSmvVdqYCXY42E9eNhBb0xNv0SQ\",\n               \"y\": \"zUsjWJkeKQ5tv7S-hl1Tg71cd-CqnrtiiLxSi6N_yc8\"\n            },\n            \"alg\": \"ES256\"\n         },\n         \"signature\": \"bWiisabH8LgSXezUhjN8X3I7ESBo_fCXvFtqAwRmzozTfPHTr8edd13SU0KUJMq4X7_agEuLpSh1V8YGcBVpYg\",\n         \"protected\": \"eyJmb3JtYXRMZW5ndGgiOjcwNjMsImZvcm1hdFRhaWwiOiJDbjAiLCJ0aW1lIjoiMjAxNS0wMy0zMVQxNjozMjoyOVoifQ\"\n      }\n   ]\n}"
13 24
   },
14 25
   "tag": "sometag"
15
-}
26
+}
16 27
\ No newline at end of file
... ...
@@ -1,10 +1,15 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3 2
   "kind": "ImageStream",
3
+  "apiVersion": "v1beta3",
4 4
   "metadata": {
5
+    "name": "test",
6
+    "creationTimestamp": null,
5 7
     "labels": {
6 8
       "color": "blue"
7
-    },
8
-    "name": "test"
9
+    }
10
+  },
11
+  "spec": {},
12
+  "status": {
13
+    "dockerImageRepository": ""
9 14
   }
10
-}
15
+}
11 16
\ No newline at end of file
... ...
@@ -1,90 +1,18 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3
-  "dockerImageReference": "openshift/ruby-19-centos:latest",
4 2
   "kind": "Image",
5
-  "meta": {
6
-    "Architecture": "amd64",
7
-    "Author": "Michal Fojtik \u003cmfojtik@redhat.com\u003e",
8
-    "Comment": "",
9
-    "Config": {
10
-      "AttachStderr": false,
11
-      "AttachStdin": false,
12
-      "AttachStdout": false,
13
-      "Cmd": [
14
-        "/opt/ruby/bin/usage"
15
-      ],
16
-      "CpuShares": 0,
17
-      "Cpuset": "",
18
-      "Domainname": "",
19
-      "Entrypoint": null,
20
-      "Env": [
21
-        "HOME=/opt/ruby",
22
-        "PATH=/opt/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
23
-        "STI_SCRIPTS_URL=https://raw.githubusercontent.com/openshift/ruby-19-centos/master/.sti/bin",
24
-        "APP_ROOT=."
25
-      ],
26
-      "ExposedPorts": {
27
-        "9292/tcp": {}
28
-      },
29
-      "Hostname": "df1704c4368e",
30
-      "Image": "dde5ee6a036d5d2c69240413fa8f3bb9bb1fea25166996eadf42e2f113736401",
31
-      "Memory": 0,
32
-      "MemorySwap": 0,
33
-      "NetworkDisabled": false,
34
-      "OnBuild": [],
35
-      "OpenStdin": false,
36
-      "PortSpecs": null,
37
-      "StdinOnce": false,
38
-      "Tty": false,
39
-      "User": "ruby",
40
-      "Volumes": null,
41
-      "WorkingDir": "/opt/ruby/src"
42
-    },
43
-    "Container": "72ce367abbc2862232b5e5e3485e51f096983e4e28b8dbefba9a6fd5ce0d6e48",
44
-    "ContainerConfig": {
45
-      "AttachStderr": false,
46
-      "AttachStdin": false,
47
-      "AttachStdout": false,
48
-      "Cmd": [
49
-        "/bin/sh",
50
-        "-c",
51
-        "#(nop) CMD [/opt/ruby/bin/usage]"
52
-      ],
53
-      "CpuShares": 0,
54
-      "Cpuset": "",
55
-      "Domainname": "",
56
-      "Entrypoint": null,
57
-      "Env": [
58
-        "HOME=/opt/ruby",
59
-        "PATH=/opt/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
60
-        "STI_SCRIPTS_URL=https://raw.githubusercontent.com/openshift/ruby-19-centos/master/.sti/bin",
61
-        "APP_ROOT=."
62
-      ],
63
-      "ExposedPorts": {
64
-        "9292/tcp": {}
65
-      },
66
-      "Hostname": "df1704c4368e",
67
-      "Image": "dde5ee6a036d5d2c69240413fa8f3bb9bb1fea25166996eadf42e2f113736401",
68
-      "Memory": 0,
69
-      "MemorySwap": 0,
70
-      "NetworkDisabled": false,
71
-      "OnBuild": [],
72
-      "OpenStdin": false,
73
-      "PortSpecs": null,
74
-      "StdinOnce": false,
75
-      "Tty": false,
76
-      "User": "ruby",
77
-      "Volumes": null,
78
-      "WorkingDir": "/opt/ruby/src"
79
-    },
80
-    "Created": "2014-08-08T14:36:01.303084707Z",
81
-    "DockerVersion": "1.1.2-dev",
82
-    "Id": "7dbbbc6cb29d5abc29b722c06d5209a499fa97cd655c59793540d00933ab4e45",
83
-    "Os": "linux",
84
-    "Parent": "dde5ee6a036d5d2c69240413fa8f3bb9bb1fea25166996eadf42e2f113736401",
85
-    "Size": 0
86
-  },
3
+  "apiVersion": "v1beta3",
87 4
   "metadata": {
88
-    "name": "test"
89
-  }
90
-}
5
+    "name": "test",
6
+    "creationTimestamp": null
7
+  },
8
+  "dockerImageReference": "openshift/ruby-19-centos:latest",
9
+  "dockerImageMetadata": {
10
+    "kind": "DockerImage",
11
+    "apiVersion": "1.0",
12
+    "Id": "",
13
+    "Created": null,
14
+    "ContainerConfig": {},
15
+    "Config": {}
16
+  },
17
+  "dockerImageMetadataVersion": "1.0"
18
+}
91 19
\ No newline at end of file
... ...
@@ -1,12 +1,16 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3
-  "host": "test.example.com",
4 2
   "kind": "Route",
5
-  "labels": {
6
-    "name": "test"
7
-  },
3
+  "apiVersion": "v1beta3",
8 4
   "metadata": {
9
-    "name": "testroute"
5
+    "name": "testroute",
6
+    "creationTimestamp": null
7
+  },
8
+  "spec": {
9
+    "host": "test.example.com",
10
+    "to": {
11
+      "kind": "Service",
12
+      "name": "testservice"
13
+    }
10 14
   },
11
-  "serviceName": "testservice"
12
-}
15
+  "status": {}
16
+}
13 17
\ No newline at end of file
... ...
@@ -1,12 +1,30 @@
1 1
 {
2
-  "apiVersion": "v1beta2",
3
-  "id": "frontend",
4 2
   "kind": "Service",
5
-  "port": 9998,
6
-  "selector": {
7
-    "name": "frontend"
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {
5
+    "name": "frontend",
6
+    "creationTimestamp": null,
7
+    "labels": {
8
+      "name": "frontend"
9
+    }
8 10
   },
9
-  "labels": {
10
-    "name": "frontend"
11
+  "spec": {
12
+    "ports": [
13
+      {
14
+        "protocol": "TCP",
15
+        "port": 9998,
16
+        "targetPort": 9998,
17
+        "nodePort": 0
18
+      }
19
+    ],
20
+    "selector": {
21
+      "name": "frontend"
22
+    },
23
+    "portalIP": "",
24
+    "type": "ClusterIP",
25
+    "sessionAffinity": "None"
26
+  },
27
+  "status": {
28
+    "loadBalancer": {}
11 29
   }
12
-}
30
+}
13 31
\ No newline at end of file
... ...
@@ -1,64 +1,73 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3
-  "description": "Example shows how to build a CPM node.",
4
-  "id": "node",
5
-  "items": [
2
+  "kind": "Template",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {
5
+    "name": "node-example",
6
+    "creationTimestamp": null
7
+  },
8
+  "objects": [
6 9
     {
7
-      "apiVersion": "v1beta1",
8
-      "desiredState": {
9
-        "manifest": {
10
-          "containers": [
11
-            {
12
-              "env": [
13
-                {
14
-                  "name": "PG_USERNAME",
15
-                  "value": "exampleuser"
16
-                },
17
-                {
18
-                  "name": "PG_PASSWORD",
19
-                  "value": "example"
20
-                }
21
-              ],
22
-              "image": "registry:5000/crunchy-node",
23
-              "name": "master",
24
-              "ports": [
25
-                {
26
-                  "containerPort": 5432,
27
-                  "hostPort": 9000
28
-                }
29
-              ],
30
-              "volumeMounts": [
31
-                {
32
-                  "mountPath": "/pgdata",
33
-                  "name": "pgdata",
34
-                  "readOnly": false
35
-                }
36
-              ]
37
-            }
38
-          ],
39
-          "id": "pg-standalone-1",
40
-          "version": "v1beta1",
41
-          "volumes": [
42
-            {
43
-              "name": "pgdata",
44
-              "source": {
45
-                "hostDir": {
46
-                  "path": "/var/lib/pgsql/exampleuser"
47
-                }
10
+      "kind": "Pod",
11
+      "apiVersion": "v1beta3",
12
+      "metadata": {
13
+        "name": "pg-standalone-1",
14
+        "creationTimestamp": null,
15
+        "labels": {
16
+          "name": "crunchy-node"
17
+        }
18
+      },
19
+      "spec": {
20
+        "volumes": [
21
+          {
22
+            "name": "pgdata",
23
+            "hostPath": {
24
+              "path": "/var/lib/pgsql/exampleuser"
25
+            },
26
+            "rbd": null
27
+          }
28
+        ],
29
+        "containers": [
30
+          {
31
+            "name": "master",
32
+            "image": "registry:5000/crunchy-node",
33
+            "ports": [
34
+              {
35
+                "hostPort": 9000,
36
+                "containerPort": 5432,
37
+                "protocol": "TCP"
48 38
               }
39
+            ],
40
+            "env": [
41
+              {
42
+                "name": "PG_USERNAME",
43
+                "value": "exampleuser"
44
+              },
45
+              {
46
+                "name": "PG_PASSWORD",
47
+                "value": "example"
48
+              }
49
+            ],
50
+            "resources": {},
51
+            "volumeMounts": [
52
+              {
53
+                "name": "pgdata",
54
+                "mountPath": "/pgdata"
55
+              }
56
+            ],
57
+            "terminationMessagePath": "/dev/termination-log",
58
+            "imagePullPolicy": "IfNotPresent",
59
+            "capabilities": {},
60
+            "securityContext": {
61
+              "capabilities": {},
62
+              "privileged": false
49 63
             }
50
-          ]
51
-        }
64
+          }
65
+        ],
66
+        "restartPolicy": "Always",
67
+        "dnsPolicy": "ClusterFirst",
68
+        "serviceAccount": ""
52 69
       },
53
-      "id": "pg-standalone-1",
54
-      "kind": "Pod",
55
-      "labels": {
56
-        "name": "crunchy-node"
57
-      }
70
+      "status": {}
58 71
     }
59
-  ],
60
-  "kind": "Template",
61
-  "metadata": {
62
-    "name": "node-example"
63
-  }
64
-}
72
+  ]
73
+}
65 74
\ No newline at end of file
... ...
@@ -1,193 +1,306 @@
1 1
 {
2
-  "apiVersion": "v1beta1",
3
-  "items": [
2
+  "kind": "Template",
3
+  "apiVersion": "v1beta3",
4
+  "metadata": {
5
+    "name": "guestbook-example",
6
+    "creationTimestamp": null,
7
+    "annotations": {
8
+      "description": "Example shows how to build a simple multi-tier application using Kubernetes and Docker"
9
+    }
10
+  },
11
+  "objects": [
4 12
     {
5
-      "apiVersion": "v1beta1",
6
-      "host": "guestbook.example.com",
7
-      "id": "frontend-route",
8 13
       "kind": "Route",
14
+      "apiVersion": "v1beta3",
9 15
       "metadata": {
10
-        "name": "frontend-route"
16
+        "name": "frontend-route",
17
+        "creationTimestamp": null
18
+      },
19
+      "spec": {
20
+        "host": "guestbook.example.com",
21
+        "to": {
22
+          "kind": "Service",
23
+          "name": "frontend-service"
24
+        }
11 25
       },
12
-      "serviceName": "frontend-service"
26
+      "status": {}
13 27
     },
14 28
     {
15
-      "apiVersion": "v1beta1",
16
-      "id": "frontend-service",
17 29
       "kind": "Service",
18
-      "port": 5432,
19
-      "selector": {
20
-        "name": "frontend-service"
30
+      "apiVersion": "v1beta3",
31
+      "metadata": {
32
+        "name": "frontend-service",
33
+        "creationTimestamp": null
34
+      },
35
+      "spec": {
36
+        "ports": [
37
+          {
38
+            "protocol": "TCP",
39
+            "port": 5432,
40
+            "targetPort": 5432,
41
+            "nodePort": 0
42
+          }
43
+        ],
44
+        "selector": {
45
+          "name": "frontend-service"
46
+        },
47
+        "portalIP": "",
48
+        "type": "ClusterIP",
49
+        "sessionAffinity": "None"
50
+      },
51
+      "status": {
52
+        "loadBalancer": {}
21 53
       }
22 54
     },
23 55
     {
24
-      "apiVersion": "v1beta1",
25
-      "id": "redis-master",
26 56
       "kind": "Service",
27
-      "port": 10000,
28
-      "selector": {
29
-        "name": "redis-master"
57
+      "apiVersion": "v1beta3",
58
+      "metadata": {
59
+        "name": "redis-master",
60
+        "creationTimestamp": null
61
+      },
62
+      "spec": {
63
+        "ports": [
64
+          {
65
+            "protocol": "TCP",
66
+            "port": 10000,
67
+            "targetPort": 10000,
68
+            "nodePort": 0
69
+          }
70
+        ],
71
+        "selector": {
72
+          "name": "redis-master"
73
+        },
74
+        "portalIP": "",
75
+        "type": "ClusterIP",
76
+        "sessionAffinity": "None"
77
+      },
78
+      "status": {
79
+        "loadBalancer": {}
30 80
       }
31 81
     },
32 82
     {
33
-      "apiVersion": "v1beta1",
34
-      "id": "${SLAVE_SERVICE_NAME}",
35 83
       "kind": "Service",
36
-      "port": 10001,
37
-      "selector": {
38
-        "name": "${SLAVE_SERVICE_NAME}"
84
+      "apiVersion": "v1beta3",
85
+      "metadata": {
86
+        "name": "${SLAVE_SERVICE_NAME}",
87
+        "creationTimestamp": null
88
+      },
89
+      "spec": {
90
+        "ports": [
91
+          {
92
+            "protocol": "TCP",
93
+            "port": 10001,
94
+            "targetPort": 10001,
95
+            "nodePort": 0
96
+          }
97
+        ],
98
+        "selector": {
99
+          "name": "${SLAVE_SERVICE_NAME}"
100
+        },
101
+        "portalIP": "",
102
+        "type": "ClusterIP",
103
+        "sessionAffinity": "None"
104
+      },
105
+      "status": {
106
+        "loadBalancer": {}
39 107
       }
40 108
     },
41 109
     {
42
-      "apiVersion": "v1beta1",
43
-      "desiredState": {
44
-        "manifest": {
45
-          "containers": [
46
-            {
47
-              "env": [
48
-                {
49
-                  "name": "REDIS_PASSWORD",
50
-                  "value": "${REDIS_PASSWORD}"
51
-                }
52
-              ],
53
-              "image": "dockerfile/redis",
54
-              "name": "master",
55
-              "ports": [
56
-                {
57
-                  "containerPort": 6379
58
-                }
59
-              ]
60
-            }
61
-          ],
62
-          "name": "redis-master",
63
-          "version": "v1beta1"
110
+      "kind": "Pod",
111
+      "apiVersion": "v1beta3",
112
+      "metadata": {
113
+        "name": "redis-master",
114
+        "creationTimestamp": null,
115
+        "labels": {
116
+          "name": "redis-master"
64 117
         }
65 118
       },
66
-      "id": "redis-master",
67
-      "kind": "Pod",
68
-      "labels": {
69
-        "name": "redis-master"
70
-      }
119
+      "spec": {
120
+        "containers": [
121
+          {
122
+            "name": "master",
123
+            "image": "dockerfile/redis",
124
+            "ports": [
125
+              {
126
+                "containerPort": 6379,
127
+                "protocol": "TCP"
128
+              }
129
+            ],
130
+            "env": [
131
+              {
132
+                "name": "REDIS_PASSWORD",
133
+                "value": "${REDIS_PASSWORD}"
134
+              }
135
+            ],
136
+            "resources": {},
137
+            "terminationMessagePath": "/dev/termination-log",
138
+            "imagePullPolicy": "IfNotPresent",
139
+            "capabilities": {},
140
+            "securityContext": {
141
+              "capabilities": {},
142
+              "privileged": false
143
+            }
144
+          }
145
+        ],
146
+        "restartPolicy": "Always",
147
+        "dnsPolicy": "ClusterFirst",
148
+        "serviceAccount": ""
149
+      },
150
+      "status": {}
71 151
     },
72 152
     {
73
-      "apiVersion": "v1beta1",
74
-      "desiredState": {
75
-        "podTemplate": {
76
-          "desiredState": {
77
-            "manifest": {
78
-              "containers": [
79
-                {
80
-                  "env": [
81
-                    {
82
-                      "name": "ADMIN_USERNAME",
83
-                      "value": "${ADMIN_USERNAME}"
84
-                    },
85
-                    {
86
-                      "name": "ADMIN_PASSWORD",
87
-                      "value": "${ADMIN_PASSWORD}"
88
-                    },
89
-                    {
90
-                      "name": "REDIS_PASSWORD",
91
-                      "value": "${REDIS_PASSWORD}"
92
-                    }
93
-                  ],
94
-                  "image": "brendanburns/php-redis",
95
-                  "name": "php-redis",
96
-                  "ports": [
97
-                    {
98
-                      "containerPort": 80,
99
-                      "hostPort": 8000
100
-                    }
101
-                  ]
102
-                }
103
-              ],
104
-              "name": "guestbook",
105
-              "version": "v1beta1"
153
+      "kind": "ReplicationController",
154
+      "apiVersion": "v1beta3",
155
+      "metadata": {
156
+        "name": "guestbook",
157
+        "creationTimestamp": null,
158
+        "labels": {
159
+          "name": "frontend-service"
160
+        }
161
+      },
162
+      "spec": {
163
+        "replicas": 3,
164
+        "selector": {
165
+          "name": "frontend-service"
166
+        },
167
+        "template": {
168
+          "metadata": {
169
+            "creationTimestamp": null,
170
+            "labels": {
171
+              "name": "frontend-service"
106 172
             }
107 173
           },
108
-          "labels": {
109
-            "name": "frontend-service"
174
+          "spec": {
175
+            "containers": [
176
+              {
177
+                "name": "php-redis",
178
+                "image": "brendanburns/php-redis",
179
+                "ports": [
180
+                  {
181
+                    "hostPort": 8000,
182
+                    "containerPort": 80,
183
+                    "protocol": "TCP"
184
+                  }
185
+                ],
186
+                "env": [
187
+                  {
188
+                    "name": "ADMIN_USERNAME",
189
+                    "value": "${ADMIN_USERNAME}"
190
+                  },
191
+                  {
192
+                    "name": "ADMIN_PASSWORD",
193
+                    "value": "${ADMIN_PASSWORD}"
194
+                  },
195
+                  {
196
+                    "name": "REDIS_PASSWORD",
197
+                    "value": "${REDIS_PASSWORD}"
198
+                  }
199
+                ],
200
+                "resources": {},
201
+                "terminationMessagePath": "/dev/termination-log",
202
+                "imagePullPolicy": "IfNotPresent",
203
+                "capabilities": {},
204
+                "securityContext": {
205
+                  "capabilities": {},
206
+                  "privileged": false
207
+                }
208
+              }
209
+            ],
210
+            "restartPolicy": "Always",
211
+            "dnsPolicy": "ClusterFirst",
212
+            "serviceAccount": ""
110 213
           }
111
-        },
112
-        "replicaSelector": {
113
-          "name": "frontend-service"
114
-        },
115
-        "replicas": 3
214
+        }
116 215
       },
117
-      "id": "guestbook",
118
-      "kind": "ReplicationController"
216
+      "status": {
217
+        "replicas": 0
218
+      }
119 219
     },
120 220
     {
121
-      "apiVersion": "v1beta1",
122
-      "desiredState": {
123
-        "podTemplate": {
124
-          "desiredState": {
125
-            "manifest": {
126
-              "containers": [
127
-                {
128
-                  "env": [
129
-                    {
130
-                      "name": "REDIS_PASSWORD",
131
-                      "value": "${REDIS_PASSWORD}"
132
-                    }
133
-                  ],
134
-                  "image": "brendanburns/${SLAVE_SERVICE_NAME}",
135
-                  "name": "slave",
136
-                  "ports": [
137
-                    {
138
-                      "containerPort": 6379,
139
-                      "hostPort": 6380
140
-                    }
141
-                  ]
142
-                }
143
-              ],
144
-              "id": "${SLAVE_SERVICE_NAME}",
145
-              "version": "v1beta1"
221
+      "kind": "ReplicationController",
222
+      "apiVersion": "v1beta3",
223
+      "metadata": {
224
+        "name": "${SLAVE_SERVICE_NAME}",
225
+        "creationTimestamp": null,
226
+        "labels": {
227
+          "name": "${SLAVE_SERVICE_NAME}"
228
+        }
229
+      },
230
+      "spec": {
231
+        "replicas": 2,
232
+        "selector": {
233
+          "name": "${SLAVE_SERVICE_NAME}"
234
+        },
235
+        "template": {
236
+          "metadata": {
237
+            "creationTimestamp": null,
238
+            "labels": {
239
+              "name": "${SLAVE_SERVICE_NAME}"
146 240
             }
147 241
           },
148
-          "labels": {
149
-            "name": "${SLAVE_SERVICE_NAME}"
242
+          "spec": {
243
+            "containers": [
244
+              {
245
+                "name": "slave",
246
+                "image": "brendanburns/${SLAVE_SERVICE_NAME}",
247
+                "ports": [
248
+                  {
249
+                    "hostPort": 6380,
250
+                    "containerPort": 6379,
251
+                    "protocol": "TCP"
252
+                  }
253
+                ],
254
+                "env": [
255
+                  {
256
+                    "name": "REDIS_PASSWORD",
257
+                    "value": "${REDIS_PASSWORD}"
258
+                  }
259
+                ],
260
+                "resources": {},
261
+                "terminationMessagePath": "/dev/termination-log",
262
+                "imagePullPolicy": "IfNotPresent",
263
+                "capabilities": {},
264
+                "securityContext": {
265
+                  "capabilities": {},
266
+                  "privileged": false
267
+                }
268
+              }
269
+            ],
270
+            "restartPolicy": "Always",
271
+            "dnsPolicy": "ClusterFirst",
272
+            "serviceAccount": ""
150 273
           }
151
-        },
152
-        "replicaSelector": {
153
-          "name": "${SLAVE_SERVICE_NAME}"
154
-        },
155
-        "replicas": 2
274
+        }
156 275
       },
157
-      "id": "${SLAVE_SERVICE_NAME}",
158
-      "kind": "ReplicationController"
276
+      "status": {
277
+        "replicas": 0
278
+      }
159 279
     }
160 280
   ],
161
-  "kind": "Template",
162
-  "metadata": {
163
-    "annotations": {
164
-      "description": "Example shows how to build a simple multi-tier application using Kubernetes and Docker"
165
-    },
166
-    "name": "guestbook-example"
167
-  },
168 281
   "parameters": [
169 282
     {
283
+      "name": "ADMIN_USERNAME",
170 284
       "description": "Guestbook administrator username",
171
-      "from": "admin[A-Z0-9]{3}",
172 285
       "generate": "expression",
173
-      "name": "ADMIN_USERNAME"
286
+      "from": "admin[A-Z0-9]{3}"
174 287
     },
175 288
     {
289
+      "name": "ADMIN_PASSWORD",
176 290
       "description": "Guestbook administrator password",
177
-      "from": "[a-zA-Z0-9]{8}",
178 291
       "generate": "expression",
179
-      "name": "ADMIN_PASSWORD"
292
+      "from": "[a-zA-Z0-9]{8}"
180 293
     },
181 294
     {
295
+      "name": "REDIS_PASSWORD",
182 296
       "description": "Redis password",
183
-      "from": "[a-zA-Z0-9]{8}",
184 297
       "generate": "expression",
185
-      "name": "REDIS_PASSWORD"
298
+      "from": "[a-zA-Z0-9]{8}"
186 299
     },
187 300
     {
188
-      "description": "Slave Service name",
189 301
       "name": "SLAVE_SERVICE_NAME",
302
+      "description": "Slave Service name",
190 303
       "value": "redis-slave"
191 304
     }
192 305
   ]
193
-}
306
+}
194 307
\ No newline at end of file