This is an automated email from the ASF dual-hosted git repository.

elek pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 2ab318b  HDDS-1412. Provide example k8s deployment files as part of 
the release package
2ab318b is described below

commit 2ab318b6036d260ac0752f3e7c410594db92d5fe
Author: Márton Elek <[email protected]>
AuthorDate: Thu May 2 11:10:06 2019 +0200

    HDDS-1412. Provide example k8s deployment files as part of the release 
package
    
    Closes #719
---
 hadoop-ozone/common/pom.xml                        | 24 +++++++
 .../dist/dev-support/bin/dist-layout-stitching     |  2 +
 hadoop-ozone/dist/pom.xml                          | 77 +++++++++++++++++++++-
 hadoop-ozone/dist/{ => src/main}/Dockerfile        |  2 +-
 .../ozone/config.yaml}                             |  4 +-
 .../ozone/datanode-ds.yaml}                        | 35 ++++------
 .../ozone/definitions/prometheus.yaml}             | 25 ++++---
 .../ozone/flekszible.yaml}                         |  5 +-
 .../k8s/definitions/ozone/freon/flekszible.yaml}   | 11 +---
 .../ozone/freon/freon.yaml}                        | 32 +++------
 .../ozone/om-ss-service.yaml}                      | 14 ++--
 .../ozone/om-ss.yaml}                              | 49 +++++---------
 .../ozone/s3g-ss-service.yaml}                     | 10 ++-
 .../ozone/s3g-ss.yaml}                             | 21 ++----
 .../ozone/scm-ss-service.yaml}                     |  2 -
 .../ozone/scm-ss.yaml}                             | 43 ++++--------
 .../definitions/ozone/transformations/config.yaml} | 17 +++--
 .../ozone/transformations/emptydir.yaml}           | 73 +++++++++++---------
 .../minikube/LICENSE.header}                       |  4 --
 .../minikube}/config-configmap.yaml                | 26 ++++----
 .../minikube}/datanode-service.yaml                |  6 +-
 .../minikube}/datanode-statefulset.yaml            | 42 +++++++-----
 .../examples/minikube/flekszible/flekszible.yaml   | 45 +++++++++++++
 .../minikube/freon/freon-deployment.yaml}          | 40 +++++------
 .../minikube}/om-public-service.yaml               |  7 +-
 .../{ozone => examples/minikube}/om-service.yaml   |  7 +-
 .../minikube}/om-statefulset.yaml                  | 63 +++++++++---------
 .../minikube}/s3g-public-service.yaml              |  7 +-
 .../{ozone => examples/minikube}/s3g-service.yaml  |  7 +-
 .../minikube}/s3g-statefulset.yaml                 | 32 ++++-----
 .../minikube}/scm-public-service.yaml              |  7 +-
 .../{ozone => examples/minikube}/scm-service.yaml  |  7 +-
 .../minikube}/scm-statefulset.yaml                 | 64 +++++++++---------
 .../ozone/LICENSE.header}                          |  4 --
 .../k8s/{ => examples}/ozone/config-configmap.yaml | 26 ++++----
 .../ozone/datanode-daemonset.yaml}                 | 46 +++++++------
 .../k8s/examples/ozone/flekszible/flekszible.yaml  | 43 ++++++++++++
 .../ozone/freon/freon-deployment.yaml}             | 41 ++++++------
 .../ozone/om-service.yaml}                         | 15 +++--
 .../k8s/{ => examples}/ozone/om-statefulset.yaml   | 69 ++++++++++---------
 .../main/k8s/{ => examples}/ozone/s3g-service.yaml |  7 +-
 .../k8s/{ => examples}/ozone/s3g-statefulset.yaml  | 32 ++++-----
 .../main/k8s/{ => examples}/ozone/scm-service.yaml |  7 +-
 .../k8s/{ => examples}/ozone/scm-statefulset.yaml  | 64 +++++++++---------
 .../dist/src/main/k8s/prometheus/configmap.yaml    | 51 --------------
 .../k8s/prometheus/prometheus-public-serivce.yaml  | 28 --------
 .../dist/src/main/k8s/prometheus/role.yaml         | 31 ---------
 .../dist/src/main/k8s/prometheus/rolebindng.yaml   | 27 --------
 .../main/k8s/prometheus/scm-public-service.yaml    | 29 --------
 49 files changed, 642 insertions(+), 688 deletions(-)

diff --git a/hadoop-ozone/common/pom.xml b/hadoop-ozone/common/pom.xml
index efea791..6098b4d 100644
--- a/hadoop-ozone/common/pom.xml
+++ b/hadoop-ozone/common/pom.xml
@@ -169,4 +169,28 @@ http://maven.apache.org/xsd/maven-4.0.0.xsd";>
       </plugin>
     </plugins>
   </build>
+  <profiles>
+    <profile>
+      <id>k8s-dev</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>io.fabric8</groupId>
+            <artifactId>docker-maven-plugin</artifactId>
+            <version>0.29.0</version>
+            <configuration>
+              <images>
+                <image>
+                  <name>${user.name}/ozone:${project.version}</name>
+                  <build>
+                    <dockerFileDir>${project.basedir}</dockerFileDir>
+                  </build>
+                </image>
+              </images>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/hadoop-ozone/dist/dev-support/bin/dist-layout-stitching 
b/hadoop-ozone/dist/dev-support/bin/dist-layout-stitching
index ffb469b..0ce4e8f 100755
--- a/hadoop-ozone/dist/dev-support/bin/dist-layout-stitching
+++ b/hadoop-ozone/dist/dev-support/bin/dist-layout-stitching
@@ -120,3 +120,5 @@ cp -r "${ROOT}/hadoop-hdds/docs/target/classes/docs" ./
 run cp -p -R "${ROOT}/hadoop-ozone/dist/target/compose" .
 run cp -p -r "${ROOT}/hadoop-ozone/dist/src/main/smoketest" .
 run cp -p -r "${ROOT}/hadoop-ozone/dist/src/main/blockade" .
+run cp -p -r "${ROOT}/hadoop-ozone/dist/target/k8s" kubernetes
+run cp -p -r "${ROOT}/hadoop-ozone/dist/src/main/Dockerfile" .
diff --git a/hadoop-ozone/dist/pom.xml b/hadoop-ozone/dist/pom.xml
index b31c5b9..2c88745 100644
--- a/hadoop-ozone/dist/pom.xml
+++ b/hadoop-ozone/dist/pom.xml
@@ -28,6 +28,7 @@
   <properties>
     <file.encoding>UTF-8</file.encoding>
     <downloadSources>true</downloadSources>
+    <docker.image>apache/hadoop:${project.version}</docker.image>
   </properties>
 
   <build>
@@ -139,7 +140,7 @@
         <version>3.1.0</version>
         <executions>
           <execution>
-            <id>copy-resources</id>
+            <id>copy-compose</id>
             <phase>compile</phase>
             <goals>
               <goal>copy-resources</goal>
@@ -154,6 +155,22 @@
               </resources>
             </configuration>
           </execution>
+          <execution>
+            <id>copy-k8s</id>
+            <phase>compile</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${basedir}/target/k8s</outputDirectory>
+              <resources>
+                <resource>
+                  <directory>src/main/k8s</directory>
+                  <filtering>true</filtering>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
         </executions>
       </plugin>
       <plugin>
@@ -267,4 +284,62 @@
       <artifactId>hadoop-ozone-upgrade</artifactId>
     </dependency>
   </dependencies>
+  <profiles>
+    <profile>
+      <id>k8s-dev</id>
+      <properties>
+        <docker.image>${user.name}/ozone:${project.version}</docker.image>
+      </properties>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>io.fabric8</groupId>
+            <artifactId>docker-maven-plugin</artifactId>
+            <version>0.29.0</version>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>build</goal>
+                </goals>
+                <phase>package</phase>
+              </execution>
+            </executions>
+            <configuration>
+              <images>
+                <image>
+                  <name>${docker.image}</name>
+                  <build>
+                    <dockerFileDir>
+                      ${project.build.directory}/ozone-${project.version}
+                    </dockerFileDir>
+                  </build>
+                </image>
+              </images>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>k8s-dev-push</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>io.fabric8</groupId>
+            <artifactId>docker-maven-plugin</artifactId>
+            <version>0.29.0</version>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>push</goal>
+                </goals>
+                <phase>package</phase>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
 </project>
diff --git a/hadoop-ozone/dist/Dockerfile 
b/hadoop-ozone/dist/src/main/Dockerfile
similarity index 93%
copy from hadoop-ozone/dist/Dockerfile
copy to hadoop-ozone/dist/src/main/Dockerfile
index c22c3ca..9c14f49 100644
--- a/hadoop-ozone/dist/Dockerfile
+++ b/hadoop-ozone/dist/src/main/Dockerfile
@@ -16,6 +16,6 @@
 
 FROM apache/hadoop-runner:latest
 
-ADD --chown=hadoop target/ozone-0.4.0-SNAPSHOT /opt/hadoop
+ADD --chown=hadoop . /opt/hadoop
 
 WORKDIR /opt/hadoop
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/config-configmap.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/config.yaml
similarity index 94%
copy from hadoop-ozone/dist/src/main/k8s/ozone/config-configmap.yaml
copy to hadoop-ozone/dist/src/main/k8s/definitions/ozone/config.yaml
index e79a3cc..f98f7f5 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/config-configmap.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/config.yaml
@@ -17,9 +17,8 @@ apiVersion: v1
 kind: ConfigMap
 metadata:
   name: config
-  labels: {}
-  annotations: {}
 data:
+  OZONE-SITE.XML_hdds.datanode.dir: "/data/storage"
   OZONE-SITE.XML_ozone.scm.datanode.id: "/data/datanode.id"
   OZONE-SITE.XML_ozone.metadata.dirs: "/data/metadata"
   OZONE-SITE.XML_ozone.scm.block.client.address: "scm-0.scm"
@@ -27,7 +26,6 @@ data:
   OZONE-SITE.XML_ozone.scm.client.address: "scm-0.scm"
   OZONE-SITE.XML_ozone.scm.names: "scm-0.scm"
   OZONE-SITE.XML_ozone.enabled: "true"
-  OZONE-SITE.XML_hdds.prometheus.endpoint.enabled: "true"
   LOG4J.PROPERTIES_log4j.rootLogger: "INFO, stdout"
   LOG4J.PROPERTIES_log4j.appender.stdout: "org.apache.log4j.ConsoleAppender"
   LOG4J.PROPERTIES_log4j.appender.stdout.layout: 
"org.apache.log4j.PatternLayout"
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/datanode-ds.yaml
similarity index 67%
copy from hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml
copy to hadoop-ozone/dist/src/main/k8s/definitions/ozone/datanode-ds.yaml
index f8600a0..fbc340c 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/datanode-ds.yaml
@@ -14,11 +14,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 apiVersion: apps/v1
-kind: StatefulSet
+kind: DaemonSet
 metadata:
   name: datanode
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -26,27 +26,18 @@ spec:
       component: datanode
   template:
     metadata:
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/port: "9882"
+        prometheus.io/path: "/prom"
       labels:
         app: ozone
         component: datanode
     spec:
       containers:
-        - name: datanode
-          image: apache/ozone
-          args:
-            - ozone
-            - datanode
-          ports:
-            - containerPort: 9870
-              name: rpc
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
-      volumes:
-        - name: "data"
-          emptyDir: {}
-  serviceName: datanode
-  replicas: 3
+      - name: datanode
+        image: "@docker.image@"
+        args: ["ozone","datanode"]
+        ports:
+           - containerPort: 9870
+             name: rpc
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-public-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/definitions/prometheus.yaml
similarity index 78%
rename from hadoop-ozone/dist/src/main/k8s/ozone/datanode-public-service.yaml
rename to 
hadoop-ozone/dist/src/main/k8s/definitions/ozone/definitions/prometheus.yaml
index 22154b7..581481f 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-public-service.yaml
+++ 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/definitions/prometheus.yaml
@@ -13,17 +13,14 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-apiVersion: v1
-kind: Service
-metadata:
-  name: datanode-public
-  labels: {}
-  annotations: {}
-spec:
-  selector:
-    app: ozone
-    component: datanode
-  ports:
-    - port: 9870
-      name: rpc
-  type: NodePort
+name: ozone/prometheus
+description: Enable prometheus monitoring in Ozone
+---
+- type: Add
+  trigger:
+    metadata:
+      name: config
+  path:
+    - data
+  value:
+    OZONE-SITE.XML_hdds.prometheus.endpoint.enabled: true
diff --git a/hadoop-ozone/dist/src/main/k8s/prometheus/service-account.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/flekszible.yaml
similarity index 91%
copy from hadoop-ozone/dist/src/main/k8s/prometheus/service-account.yaml
copy to hadoop-ozone/dist/src/main/k8s/definitions/ozone/flekszible.yaml
index d5ba196..2707d30 100644
--- a/hadoop-ozone/dist/src/main/k8s/prometheus/service-account.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/flekszible.yaml
@@ -13,7 +13,4 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: prometheus-operator
+description: Apache Hadoop Ozone
diff --git a/hadoop-ozone/dist/skaffold.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/freon/flekszible.yaml
similarity index 83%
rename from hadoop-ozone/dist/skaffold.yaml
rename to hadoop-ozone/dist/src/main/k8s/definitions/ozone/freon/flekszible.yaml
index cb5f375..c6e29f3 100644
--- a/hadoop-ozone/dist/skaffold.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/freon/flekszible.yaml
@@ -13,13 +13,4 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-
-apiVersion: skaffold/v1alpha5
-kind: Config
-build:
-  artifacts:
-    - image: apache/ozone
-deploy:
-  kubectl:
-    manifests:
-       - src/main/k8s/ozone/*
+description: Load test tool for Apache Hadoop Ozone
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/freon/freon.yaml
similarity index 67%
copy from hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml
copy to hadoop-ozone/dist/src/main/k8s/definitions/ozone/freon/freon.yaml
index f8600a0..40ebc98 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/freon/freon.yaml
@@ -14,39 +14,27 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 apiVersion: apps/v1
-kind: StatefulSet
+kind: Deployment
 metadata:
-  name: datanode
-  labels: {}
-  annotations: {}
+  name: freon
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
+  replicas: 1
   selector:
     matchLabels:
       app: ozone
-      component: datanode
+      component: freon
   template:
     metadata:
       labels:
         app: ozone
-        component: datanode
+        component: freon
     spec:
       containers:
-        - name: datanode
-          image: apache/ozone
-          args:
-            - ozone
-            - datanode
-          ports:
-            - containerPort: 9870
-              name: rpc
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
+        - name: freon
+          image: "@docker.image@"
+          args: ["ozone","freon", "rk", "--factor=THREE", 
"--replicationType=RATIS"]
           envFrom:
             - configMapRef:
                 name: config
-      volumes:
-        - name: "data"
-          emptyDir: {}
-  serviceName: datanode
-  replicas: 3
diff --git a/hadoop-ozone/dist/src/main/k8s/prometheus/service.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/om-ss-service.yaml
similarity index 90%
copy from hadoop-ozone/dist/src/main/k8s/prometheus/service.yaml
copy to hadoop-ozone/dist/src/main/k8s/definitions/ozone/om-ss-service.yaml
index e07aafc..a6462fe 100644
--- a/hadoop-ozone/dist/src/main/k8s/prometheus/service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/om-ss-service.yaml
@@ -13,13 +13,15 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-kind: Service
 apiVersion: v1
+kind: Service
 metadata:
-  name: prometheus
+  name: om
 spec:
-  selector:
-    app: prometheus
   ports:
-  - protocol: TCP
-    port: 9090
+  - port: 9874
+    name: ui
+  clusterIP: None
+  selector:
+     app: ozone
+     component: om
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/om-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/om-ss.yaml
similarity index 65%
copy from hadoop-ozone/dist/src/main/k8s/ozone/om-statefulset.yaml
copy to hadoop-ozone/dist/src/main/k8s/definitions/ozone/om-ss.yaml
index e9eeea8..820d562 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/om-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/om-ss.yaml
@@ -17,8 +17,8 @@ apiVersion: apps/v1
 kind: StatefulSet
 metadata:
   name: om
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -28,39 +28,26 @@ spec:
   replicas: 1
   template:
     metadata:
+      labels:
+        app: ozone
+        component: om
       annotations:
         prometheus.io/scrape: "true"
         prometheus.io/port: "9874"
         prometheus.io/path: "/prom"
-      labels:
-        app: ozone
-        component: om
     spec:
       initContainers:
-        - name: init
-          image: apache/ozone
-          args:
-            - ozone
-            - om
-            - --init
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: init
+        image: elek/ozone
+        args: ["ozone","om","--init"]
+        env:
+        - name: WAITFOR
+          value: scm-0.scm:9876
       containers:
-        - name: om
-          image: apache/ozone
-          args:
-            - ozone
-            - om
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
-      volumes:
-        - name: "data"
-          emptyDir: {}
+      - name: om
+        image: "@docker.image@"
+        args: ["ozone","om"]
+        env:
+        - name: WAITFOR
+          value: scm-0.scm:9876
+      volumes: []
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/s3g-ss-service.yaml
similarity index 89%
copy from hadoop-ozone/dist/src/main/k8s/ozone/s3g-service.yaml
copy to hadoop-ozone/dist/src/main/k8s/definitions/ozone/s3g-ss-service.yaml
index 8441e12..c99bbd2 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/s3g-ss-service.yaml
@@ -17,13 +17,11 @@ apiVersion: v1
 kind: Service
 metadata:
   name: s3g
-  labels: {}
-  annotations: {}
 spec:
   ports:
-    - port: 9878
-      name: rest
+  - port: 9878
+    name: rest
   clusterIP: None
   selector:
-    app: ozone
-    component: s3g
+     app: ozone
+     component: s3g
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/s3g-ss.yaml
similarity index 74%
copy from hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml
copy to hadoop-ozone/dist/src/main/k8s/definitions/ozone/s3g-ss.yaml
index dd6fc25..43044c9 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/s3g-ss.yaml
@@ -17,8 +17,8 @@ apiVersion: apps/v1
 kind: StatefulSet
 metadata:
   name: s3g
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -33,17 +33,6 @@ spec:
         component: s3g
     spec:
       containers:
-        - name: s3g
-          image: apache/ozone
-          args:
-            - ozone
-            - s3g
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
-      volumes:
-        - name: "data"
-          emptyDir: {}
+      - name: s3g
+        image: "@docker.image@"
+        args: ["ozone","s3g"]
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/scm-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/scm-ss-service.yaml
similarity index 96%
copy from hadoop-ozone/dist/src/main/k8s/ozone/scm-service.yaml
copy to hadoop-ozone/dist/src/main/k8s/definitions/ozone/scm-ss-service.yaml
index f311695..f8a05ab 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/scm-service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/scm-ss-service.yaml
@@ -17,8 +17,6 @@ apiVersion: v1
 kind: Service
 metadata:
   name: scm
-  labels: {}
-  annotations: {}
 spec:
   ports:
     - port: 9876
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/scm-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/scm-ss.yaml
similarity index 64%
copy from hadoop-ozone/dist/src/main/k8s/ozone/scm-statefulset.yaml
copy to hadoop-ozone/dist/src/main/k8s/definitions/ozone/scm-ss.yaml
index 80c5924..a87111c 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/scm-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/scm-ss.yaml
@@ -17,8 +17,8 @@ apiVersion: apps/v1
 kind: StatefulSet
 metadata:
   name: scm
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -28,40 +28,19 @@ spec:
   replicas: 1
   template:
     metadata:
+      labels:
+        app: ozone
+        component: scm
       annotations:
         prometheus.io/scrape: "true"
         prometheus.io/port: "9876"
         prometheus.io/path: "/prom"
-      labels:
-        app: ozone
-        component: scm
     spec:
       initContainers:
-        - name: init
-          image: apache/ozone
-          args:
-            - ozone
-            - scm
-            - --init
-          env: []
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: init
+        image: "@docker.image@"
+        args: ["ozone","scm", "--init"]
       containers:
-        - name: scm
-          image: apache/ozone
-          args:
-            - ozone
-            - scm
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
-      volumes:
-        - name: "data"
-          emptyDir: {}
+      - name: scm
+        image: elek/ozone
+        args: ["ozone","scm"]
diff --git a/hadoop-ozone/dist/Dockerfile 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/transformations/config.yaml
similarity index 84%
rename from hadoop-ozone/dist/Dockerfile
rename to 
hadoop-ozone/dist/src/main/k8s/definitions/ozone/transformations/config.yaml
index c22c3ca..c8ae632 100644
--- a/hadoop-ozone/dist/Dockerfile
+++ 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/transformations/config.yaml
@@ -13,9 +13,14 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-
-FROM apache/hadoop-runner:latest
-
-ADD --chown=hadoop target/ozone-0.4.0-SNAPSHOT /opt/hadoop
-
-WORKDIR /opt/hadoop
+- type: Add
+  path:
+    - spec
+    - template
+    - spec
+    - ".*"
+    - ".*"
+    - envFrom
+  value:
+    - configMapRef:
+        name: config
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/transformations/emptydir.yaml
similarity index 55%
copy from hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml
copy to 
hadoop-ozone/dist/src/main/k8s/definitions/ozone/transformations/emptydir.yaml
index dd6fc25..5f9b94a 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml
+++ 
b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/transformations/emptydir.yaml
@@ -13,37 +13,46 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
-  name: s3g
-  labels: {}
-  annotations: {}
-spec:
-  selector:
-    matchLabels:
-      app: ozone
-      component: s3g
-  serviceName: s3g
-  replicas: 1
-  template:
+- type: Add
+  trigger:
     metadata:
       labels:
-        app: ozone
-        component: s3g
-    spec:
-      containers:
-        - name: s3g
-          image: apache/ozone
-          args:
-            - ozone
-            - s3g
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
-      volumes:
-        - name: "data"
-          emptyDir: {}
+        app.kubernetes.io/component: ozone
+  path:
+    - spec
+    - template
+    - spec
+    - containers
+    - "*"
+    - volumeMounts
+  value:
+    - name: data
+      mountPath: /data
+- type: Add
+  trigger:
+    metadata:
+      labels:
+        app.kubernetes.io/component: ozone
+  path:
+    - spec
+    - template
+    - spec
+    - initContainers
+    - "*"
+    - volumeMounts
+  value:
+    - name: data
+      mountPath: /data
+- type: Add
+  trigger:
+    metadata:
+      labels:
+        app.kubernetes.io/component: ozone
+  path:
+    - spec
+    - template
+    - spec
+    - volumes
+  value:
+    - name: data
+      emptyDir: {}
diff --git a/hadoop-ozone/dist/src/main/k8s/prometheus/service-account.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/LICENSE.header
similarity index 91%
copy from hadoop-ozone/dist/src/main/k8s/prometheus/service-account.yaml
copy to hadoop-ozone/dist/src/main/k8s/examples/minikube/LICENSE.header
index d5ba196..635f0d9 100644
--- a/hadoop-ozone/dist/src/main/k8s/prometheus/service-account.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/LICENSE.header
@@ -13,7 +13,3 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: prometheus-operator
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/config-configmap.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/config-configmap.yaml
similarity index 58%
copy from hadoop-ozone/dist/src/main/k8s/ozone/config-configmap.yaml
copy to hadoop-ozone/dist/src/main/k8s/examples/minikube/config-configmap.yaml
index e79a3cc..427b977 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/config-configmap.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/config-configmap.yaml
@@ -13,22 +13,22 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: v1
 kind: ConfigMap
 metadata:
   name: config
-  labels: {}
-  annotations: {}
 data:
-  OZONE-SITE.XML_ozone.scm.datanode.id: "/data/datanode.id"
-  OZONE-SITE.XML_ozone.metadata.dirs: "/data/metadata"
-  OZONE-SITE.XML_ozone.scm.block.client.address: "scm-0.scm"
-  OZONE-SITE.XML_ozone.om.address: "om-0.om"
-  OZONE-SITE.XML_ozone.scm.client.address: "scm-0.scm"
-  OZONE-SITE.XML_ozone.scm.names: "scm-0.scm"
+  OZONE-SITE.XML_hdds.datanode.dir: /data/storage
+  OZONE-SITE.XML_ozone.scm.datanode.id: /data/datanode.id
+  OZONE-SITE.XML_ozone.metadata.dirs: /data/metadata
+  OZONE-SITE.XML_ozone.scm.block.client.address: scm-0.scm
+  OZONE-SITE.XML_ozone.om.address: om-0.om
+  OZONE-SITE.XML_ozone.scm.client.address: scm-0.scm
+  OZONE-SITE.XML_ozone.scm.names: scm-0.scm
   OZONE-SITE.XML_ozone.enabled: "true"
-  OZONE-SITE.XML_hdds.prometheus.endpoint.enabled: "true"
-  LOG4J.PROPERTIES_log4j.rootLogger: "INFO, stdout"
-  LOG4J.PROPERTIES_log4j.appender.stdout: "org.apache.log4j.ConsoleAppender"
-  LOG4J.PROPERTIES_log4j.appender.stdout.layout: 
"org.apache.log4j.PatternLayout"
-  LOG4J.PROPERTIES_log4j.appender.stdout.layout.ConversionPattern: 
"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
+  LOG4J.PROPERTIES_log4j.rootLogger: INFO, stdout
+  LOG4J.PROPERTIES_log4j.appender.stdout: org.apache.log4j.ConsoleAppender
+  LOG4J.PROPERTIES_log4j.appender.stdout.layout: org.apache.log4j.PatternLayout
+  LOG4J.PROPERTIES_log4j.appender.stdout.layout.ConversionPattern: 
'%d{yyyy-MM-dd
+    HH:mm:ss} %-5p %c{1}:%L - %m%n'
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/datanode-service.yaml
similarity index 92%
rename from hadoop-ozone/dist/src/main/k8s/ozone/datanode-service.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/minikube/datanode-service.yaml
index bdc8009..0e5927d 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/datanode-service.yaml
@@ -13,17 +13,13 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: v1
 kind: Service
 metadata:
   name: datanode
-  labels: {}
-  annotations: {}
 spec:
   clusterIP: None
   selector:
     app: ozone
     component: datanode
-  ports:
-    - port: 9870
-      name: rpc
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/datanode-statefulset.yaml
similarity index 66%
copy from hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml
copy to 
hadoop-ozone/dist/src/main/k8s/examples/minikube/datanode-statefulset.yaml
index f8600a0..a453b9a 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/datanode-statefulset.yaml
@@ -13,12 +13,13 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
   name: datanode
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -26,27 +27,32 @@ spec:
       component: datanode
   template:
     metadata:
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/port: "9882"
+        prometheus.io/path: /prom
       labels:
         app: ozone
         component: datanode
     spec:
       containers:
-        - name: datanode
-          image: apache/ozone
-          args:
-            - ozone
-            - datanode
-          ports:
-            - containerPort: 9870
-              name: rpc
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: datanode
+        image: '@docker.image@'
+        args:
+        - ozone
+        - datanode
+        ports:
+        - containerPort: 9870
+          name: rpc
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
+      initContainers: []
       volumes:
-        - name: "data"
-          emptyDir: {}
+      - name: data
+        emptyDir: {}
   serviceName: datanode
   replicas: 3
diff --git 
a/hadoop-ozone/dist/src/main/k8s/examples/minikube/flekszible/flekszible.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/flekszible/flekszible.yaml
new file mode 100644
index 0000000..81207e7
--- /dev/null
+++ 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/flekszible/flekszible.yaml
@@ -0,0 +1,45 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+source:
+  - path: ../../../definitions
+import:
+  - path: ozone
+    transformations:
+    - type: Image
+      image: "@docker.image@"
+    - type: DaemonToStatefulSet
+    - type: PublishStatefulSet
+  - path: ozone/freon
+    destination: freon
+    transformations:
+    - type: Image
+      image: "@docker.image@"
+header: |-
+  # Licensed to the Apache Software Foundation (ASF) under one
+  # or more contributor license agreements.  See the NOTICE file
+  # distributed with this work for additional information
+  # regarding copyright ownership.  The ASF licenses this file
+  # to you under the Apache License, Version 2.0 (the
+  # "License"); you may not use this file except in compliance
+  # with the License.  You may obtain a copy of the License at
+  #
+  #     http://www.apache.org/licenses/LICENSE-2.0
+  #
+  # Unless required by applicable law or agreed to in writing, software
+  # distributed under the License is distributed on an "AS IS" BASIS,
+  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  # See the License for the specific language governing permissions and
+  # limitations under the License.
diff --git a/hadoop-ozone/dist/src/main/k8s/prometheus/deployment.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/freon/freon-deployment.yaml
similarity index 61%
rename from hadoop-ozone/dist/src/main/k8s/prometheus/deployment.yaml
rename to 
hadoop-ozone/dist/src/main/k8s/examples/minikube/freon/freon-deployment.yaml
index 6368403..1662c4e 100644
--- a/hadoop-ozone/dist/src/main/k8s/prometheus/deployment.yaml
+++ 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/freon/freon-deployment.yaml
@@ -13,34 +13,34 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-apiVersion: apps/v1beta1
+
+apiVersion: apps/v1
 kind: Deployment
 metadata:
-  name: prometheus
+  name: freon
   labels:
-    app: prometheus
+    app.kubernetes.io/component: ozone
 spec:
   replicas: 1
   selector:
     matchLabels:
-      app: prometheus
+      app: ozone
+      component: freon
   template:
     metadata:
       labels:
-        app: prometheus
+        app: ozone
+        component: freon
     spec:
-        serviceAccountName: prometheus-operator
-        containers:
-          - name: prometheus
-            image: prom/prometheus
-            args: ["--config.file=/conf/prometheus.yaml"]
-            ports:
-               - containerPort: 9090
-            volumeMounts:
-              - name: config
-                mountPath: "/conf"
-                readOnly: true
-        volumes:
-          - name: config
-            configMap:
-              name: prometheusconf
+      containers:
+      - name: freon
+        image: '@docker.image@'
+        args:
+        - ozone
+        - freon
+        - rk
+        - --factor=THREE
+        - --replicationType=RATIS
+        envFrom:
+        - configMapRef:
+            name: config
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/om-public-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/om-public-service.yaml
similarity index 93%
rename from hadoop-ozone/dist/src/main/k8s/ozone/om-public-service.yaml
rename to 
hadoop-ozone/dist/src/main/k8s/examples/minikube/om-public-service.yaml
index a150939..deb2c33 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/om-public-service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/om-public-service.yaml
@@ -13,16 +13,15 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: v1
 kind: Service
 metadata:
   name: om-public
-  labels: {}
-  annotations: {}
 spec:
   ports:
-    - port: 9874
-      name: ui
+  - port: 9874
+    name: ui
   selector:
     app: ozone
     component: om
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/om-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/om-service.yaml
similarity index 93%
rename from hadoop-ozone/dist/src/main/k8s/ozone/om-service.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/minikube/om-service.yaml
index f363c48..617277d 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/om-service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/om-service.yaml
@@ -13,16 +13,15 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: v1
 kind: Service
 metadata:
   name: om
-  labels: {}
-  annotations: {}
 spec:
   ports:
-    - port: 9874
-      name: ui
+  - port: 9874
+    name: ui
   clusterIP: None
   selector:
     app: ozone
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/om-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/om-statefulset.yaml
similarity index 64%
copy from hadoop-ozone/dist/src/main/k8s/ozone/om-statefulset.yaml
copy to hadoop-ozone/dist/src/main/k8s/examples/minikube/om-statefulset.yaml
index e9eeea8..e0811e4 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/om-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/om-statefulset.yaml
@@ -13,12 +13,13 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
   name: om
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -28,39 +29,39 @@ spec:
   replicas: 1
   template:
     metadata:
-      annotations:
-        prometheus.io/scrape: "true"
-        prometheus.io/port: "9874"
-        prometheus.io/path: "/prom"
       labels:
         app: ozone
         component: om
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/port: "9874"
+        prometheus.io/path: /prom
     spec:
       initContainers:
-        - name: init
-          image: apache/ozone
-          args:
-            - ozone
-            - om
-            - --init
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: init
+        image: '@docker.image@'
+        args:
+        - ozone
+        - om
+        - --init
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
       containers:
-        - name: om
-          image: apache/ozone
-          args:
-            - ozone
-            - om
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: om
+        image: '@docker.image@'
+        args:
+        - ozone
+        - om
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
       volumes:
-        - name: "data"
-          emptyDir: {}
+      - name: data
+        emptyDir: {}
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-public-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/s3g-public-service.yaml
similarity index 93%
rename from hadoop-ozone/dist/src/main/k8s/ozone/s3g-public-service.yaml
rename to 
hadoop-ozone/dist/src/main/k8s/examples/minikube/s3g-public-service.yaml
index 54d10de..d2b2420 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-public-service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/s3g-public-service.yaml
@@ -13,16 +13,15 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: v1
 kind: Service
 metadata:
   name: s3g-public
-  labels: {}
-  annotations: {}
 spec:
   ports:
-    - port: 9878
-      name: rest
+  - port: 9878
+    name: rest
   selector:
     app: ozone
     component: s3g
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/s3g-service.yaml
similarity index 93%
copy from hadoop-ozone/dist/src/main/k8s/ozone/s3g-service.yaml
copy to hadoop-ozone/dist/src/main/k8s/examples/minikube/s3g-service.yaml
index 8441e12..dd1ca83 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/s3g-service.yaml
@@ -13,16 +13,15 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: v1
 kind: Service
 metadata:
   name: s3g
-  labels: {}
-  annotations: {}
 spec:
   ports:
-    - port: 9878
-      name: rest
+  - port: 9878
+    name: rest
   clusterIP: None
   selector:
     app: ozone
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/s3g-statefulset.yaml
similarity index 75%
copy from hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml
copy to hadoop-ozone/dist/src/main/k8s/examples/minikube/s3g-statefulset.yaml
index dd6fc25..b608cde 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/s3g-statefulset.yaml
@@ -13,12 +13,13 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
   name: s3g
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -33,17 +34,18 @@ spec:
         component: s3g
     spec:
       containers:
-        - name: s3g
-          image: apache/ozone
-          args:
-            - ozone
-            - s3g
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: s3g
+        image: '@docker.image@'
+        args:
+        - ozone
+        - s3g
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
+      initContainers: []
       volumes:
-        - name: "data"
-          emptyDir: {}
+      - name: data
+        emptyDir: {}
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/scm-public-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-public-service.yaml
similarity index 93%
rename from hadoop-ozone/dist/src/main/k8s/ozone/scm-public-service.yaml
rename to 
hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-public-service.yaml
index ddfe138..e3246fc 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/scm-public-service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-public-service.yaml
@@ -13,16 +13,15 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: v1
 kind: Service
 metadata:
   name: scm-public
-  labels: {}
-  annotations: {}
 spec:
   ports:
-    - port: 9876
-      name: ui
+  - port: 9876
+    name: ui
   selector:
     app: ozone
     component: scm
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/scm-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-service.yaml
similarity index 93%
copy from hadoop-ozone/dist/src/main/k8s/ozone/scm-service.yaml
copy to hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-service.yaml
index f311695..0df15d6 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/scm-service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-service.yaml
@@ -13,16 +13,15 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: v1
 kind: Service
 metadata:
   name: scm
-  labels: {}
-  annotations: {}
 spec:
   ports:
-    - port: 9876
-      name: ui
+  - port: 9876
+    name: ui
   clusterIP: None
   selector:
     app: ozone
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/scm-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-statefulset.yaml
similarity index 63%
copy from hadoop-ozone/dist/src/main/k8s/ozone/scm-statefulset.yaml
copy to hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-statefulset.yaml
index 80c5924..55b5672 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/scm-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-statefulset.yaml
@@ -13,12 +13,13 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
   name: scm
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -28,40 +29,39 @@ spec:
   replicas: 1
   template:
     metadata:
-      annotations:
-        prometheus.io/scrape: "true"
-        prometheus.io/port: "9876"
-        prometheus.io/path: "/prom"
       labels:
         app: ozone
         component: scm
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/port: "9876"
+        prometheus.io/path: /prom
     spec:
       initContainers:
-        - name: init
-          image: apache/ozone
-          args:
-            - ozone
-            - scm
-            - --init
-          env: []
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: init
+        image: '@docker.image@'
+        args:
+        - ozone
+        - scm
+        - --init
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
       containers:
-        - name: scm
-          image: apache/ozone
-          args:
-            - ozone
-            - scm
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: scm
+        image: '@docker.image@'
+        args:
+        - ozone
+        - scm
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
       volumes:
-        - name: "data"
-          emptyDir: {}
+      - name: data
+        emptyDir: {}
diff --git a/hadoop-ozone/dist/src/main/k8s/prometheus/service-account.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/ozone/LICENSE.header
similarity index 91%
rename from hadoop-ozone/dist/src/main/k8s/prometheus/service-account.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/ozone/LICENSE.header
index d5ba196..635f0d9 100644
--- a/hadoop-ozone/dist/src/main/k8s/prometheus/service-account.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/LICENSE.header
@@ -13,7 +13,3 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: prometheus-operator
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/config-configmap.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/ozone/config-configmap.yaml
similarity index 58%
rename from hadoop-ozone/dist/src/main/k8s/ozone/config-configmap.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/ozone/config-configmap.yaml
index e79a3cc..427b977 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/config-configmap.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/config-configmap.yaml
@@ -13,22 +13,22 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: v1
 kind: ConfigMap
 metadata:
   name: config
-  labels: {}
-  annotations: {}
 data:
-  OZONE-SITE.XML_ozone.scm.datanode.id: "/data/datanode.id"
-  OZONE-SITE.XML_ozone.metadata.dirs: "/data/metadata"
-  OZONE-SITE.XML_ozone.scm.block.client.address: "scm-0.scm"
-  OZONE-SITE.XML_ozone.om.address: "om-0.om"
-  OZONE-SITE.XML_ozone.scm.client.address: "scm-0.scm"
-  OZONE-SITE.XML_ozone.scm.names: "scm-0.scm"
+  OZONE-SITE.XML_hdds.datanode.dir: /data/storage
+  OZONE-SITE.XML_ozone.scm.datanode.id: /data/datanode.id
+  OZONE-SITE.XML_ozone.metadata.dirs: /data/metadata
+  OZONE-SITE.XML_ozone.scm.block.client.address: scm-0.scm
+  OZONE-SITE.XML_ozone.om.address: om-0.om
+  OZONE-SITE.XML_ozone.scm.client.address: scm-0.scm
+  OZONE-SITE.XML_ozone.scm.names: scm-0.scm
   OZONE-SITE.XML_ozone.enabled: "true"
-  OZONE-SITE.XML_hdds.prometheus.endpoint.enabled: "true"
-  LOG4J.PROPERTIES_log4j.rootLogger: "INFO, stdout"
-  LOG4J.PROPERTIES_log4j.appender.stdout: "org.apache.log4j.ConsoleAppender"
-  LOG4J.PROPERTIES_log4j.appender.stdout.layout: 
"org.apache.log4j.PatternLayout"
-  LOG4J.PROPERTIES_log4j.appender.stdout.layout.ConversionPattern: 
"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
+  LOG4J.PROPERTIES_log4j.rootLogger: INFO, stdout
+  LOG4J.PROPERTIES_log4j.appender.stdout: org.apache.log4j.ConsoleAppender
+  LOG4J.PROPERTIES_log4j.appender.stdout.layout: org.apache.log4j.PatternLayout
+  LOG4J.PROPERTIES_log4j.appender.stdout.layout.ConversionPattern: 
'%d{yyyy-MM-dd
+    HH:mm:ss} %-5p %c{1}:%L - %m%n'
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/ozone/datanode-daemonset.yaml
similarity index 64%
rename from hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/ozone/datanode-daemonset.yaml
index f8600a0..6e3b3b9 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/datanode-daemonset.yaml
@@ -13,12 +13,13 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: apps/v1
-kind: StatefulSet
+kind: DaemonSet
 metadata:
   name: datanode
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -26,27 +27,30 @@ spec:
       component: datanode
   template:
     metadata:
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/port: "9882"
+        prometheus.io/path: /prom
       labels:
         app: ozone
         component: datanode
     spec:
       containers:
-        - name: datanode
-          image: apache/ozone
-          args:
-            - ozone
-            - datanode
-          ports:
-            - containerPort: 9870
-              name: rpc
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: datanode
+        image: '@docker.image@'
+        args:
+        - ozone
+        - datanode
+        ports:
+        - containerPort: 9870
+          name: rpc
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
+      initContainers: []
       volumes:
-        - name: "data"
-          emptyDir: {}
-  serviceName: datanode
-  replicas: 3
+      - name: data
+        emptyDir: {}
diff --git 
a/hadoop-ozone/dist/src/main/k8s/examples/ozone/flekszible/flekszible.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/ozone/flekszible/flekszible.yaml
new file mode 100644
index 0000000..5da1f20
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/flekszible/flekszible.yaml
@@ -0,0 +1,43 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+source:
+  - path: ../../../definitions
+import:
+  - path: ozone
+    transformations:
+    - type: Image
+      image: "@docker.image@"
+  - path: ozone/freon
+    destination: freon
+    transformations:
+    - type: Image
+      image: "@docker.image@"
+header: |-
+  # Licensed to the Apache Software Foundation (ASF) under one
+  # or more contributor license agreements.  See the NOTICE file
+  # distributed with this work for additional information
+  # regarding copyright ownership.  The ASF licenses this file
+  # to you under the Apache License, Version 2.0 (the
+  # "License"); you may not use this file except in compliance
+  # with the License.  You may obtain a copy of the License at
+  #
+  #     http://www.apache.org/licenses/LICENSE-2.0
+  #
+  # Unless required by applicable law or agreed to in writing, software
+  # distributed under the License is distributed on an "AS IS" BASIS,
+  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  # See the License for the specific language governing permissions and
+  # limitations under the License.
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/ozone/freon/freon-deployment.yaml
similarity index 68%
copy from hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml
copy to 
hadoop-ozone/dist/src/main/k8s/examples/ozone/freon/freon-deployment.yaml
index dd6fc25..1662c4e 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/freon/freon-deployment.yaml
@@ -13,37 +13,34 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: apps/v1
-kind: StatefulSet
+kind: Deployment
 metadata:
-  name: s3g
-  labels: {}
-  annotations: {}
+  name: freon
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
+  replicas: 1
   selector:
     matchLabels:
       app: ozone
-      component: s3g
-  serviceName: s3g
-  replicas: 1
+      component: freon
   template:
     metadata:
       labels:
         app: ozone
-        component: s3g
+        component: freon
     spec:
       containers:
-        - name: s3g
-          image: apache/ozone
-          args:
-            - ozone
-            - s3g
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
-      volumes:
-        - name: "data"
-          emptyDir: {}
+      - name: freon
+        image: '@docker.image@'
+        args:
+        - ozone
+        - freon
+        - rk
+        - --factor=THREE
+        - --replicationType=RATIS
+        envFrom:
+        - configMapRef:
+            name: config
diff --git a/hadoop-ozone/dist/src/main/k8s/prometheus/service.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/ozone/om-service.yaml
similarity index 90%
rename from hadoop-ozone/dist/src/main/k8s/prometheus/service.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/ozone/om-service.yaml
index e07aafc..617277d 100644
--- a/hadoop-ozone/dist/src/main/k8s/prometheus/service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/om-service.yaml
@@ -13,13 +13,16 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-kind: Service
+
 apiVersion: v1
+kind: Service
 metadata:
-  name: prometheus
+  name: om
 spec:
-  selector:
-    app: prometheus
   ports:
-  - protocol: TCP
-    port: 9090
+  - port: 9874
+    name: ui
+  clusterIP: None
+  selector:
+    app: ozone
+    component: om
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/om-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/ozone/om-statefulset.yaml
similarity index 61%
rename from hadoop-ozone/dist/src/main/k8s/ozone/om-statefulset.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/ozone/om-statefulset.yaml
index e9eeea8..884dd46 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/om-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/om-statefulset.yaml
@@ -13,12 +13,13 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
   name: om
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -28,39 +29,45 @@ spec:
   replicas: 1
   template:
     metadata:
-      annotations:
-        prometheus.io/scrape: "true"
-        prometheus.io/port: "9874"
-        prometheus.io/path: "/prom"
       labels:
         app: ozone
         component: om
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/port: "9874"
+        prometheus.io/path: /prom
     spec:
       initContainers:
-        - name: init
-          image: apache/ozone
-          args:
-            - ozone
-            - om
-            - --init
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: init
+        image: '@docker.image@'
+        args:
+        - ozone
+        - om
+        - --init
+        env:
+        - name: WAITFOR
+          value: scm-0.scm:9876
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
       containers:
-        - name: om
-          image: apache/ozone
-          args:
-            - ozone
-            - om
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: om
+        image: '@docker.image@'
+        args:
+        - ozone
+        - om
+        env:
+        - name: WAITFOR
+          value: scm-0.scm:9876
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
       volumes:
-        - name: "data"
-          emptyDir: {}
+      - name: data
+        emptyDir: {}
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-service.yaml
similarity index 93%
rename from hadoop-ozone/dist/src/main/k8s/ozone/s3g-service.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-service.yaml
index 8441e12..dd1ca83 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-service.yaml
@@ -13,16 +13,15 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: v1
 kind: Service
 metadata:
   name: s3g
-  labels: {}
-  annotations: {}
 spec:
   ports:
-    - port: 9878
-      name: rest
+  - port: 9878
+    name: rest
   clusterIP: None
   selector:
     app: ozone
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-statefulset.yaml
similarity index 75%
rename from hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-statefulset.yaml
index dd6fc25..b608cde 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-statefulset.yaml
@@ -13,12 +13,13 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
   name: s3g
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -33,17 +34,18 @@ spec:
         component: s3g
     spec:
       containers:
-        - name: s3g
-          image: apache/ozone
-          args:
-            - ozone
-            - s3g
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: s3g
+        image: '@docker.image@'
+        args:
+        - ozone
+        - s3g
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
+      initContainers: []
       volumes:
-        - name: "data"
-          emptyDir: {}
+      - name: data
+        emptyDir: {}
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/scm-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-service.yaml
similarity index 93%
rename from hadoop-ozone/dist/src/main/k8s/ozone/scm-service.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-service.yaml
index f311695..0df15d6 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/scm-service.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-service.yaml
@@ -13,16 +13,15 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: v1
 kind: Service
 metadata:
   name: scm
-  labels: {}
-  annotations: {}
 spec:
   ports:
-    - port: 9876
-      name: ui
+  - port: 9876
+    name: ui
   clusterIP: None
   selector:
     app: ozone
diff --git a/hadoop-ozone/dist/src/main/k8s/ozone/scm-statefulset.yaml 
b/hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-statefulset.yaml
similarity index 63%
rename from hadoop-ozone/dist/src/main/k8s/ozone/scm-statefulset.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-statefulset.yaml
index 80c5924..55b5672 100644
--- a/hadoop-ozone/dist/src/main/k8s/ozone/scm-statefulset.yaml
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-statefulset.yaml
@@ -13,12 +13,13 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
   name: scm
-  labels: {}
-  annotations: {}
+  labels:
+    app.kubernetes.io/component: ozone
 spec:
   selector:
     matchLabels:
@@ -28,40 +29,39 @@ spec:
   replicas: 1
   template:
     metadata:
-      annotations:
-        prometheus.io/scrape: "true"
-        prometheus.io/port: "9876"
-        prometheus.io/path: "/prom"
       labels:
         app: ozone
         component: scm
+      annotations:
+        prometheus.io/scrape: "true"
+        prometheus.io/port: "9876"
+        prometheus.io/path: /prom
     spec:
       initContainers:
-        - name: init
-          image: apache/ozone
-          args:
-            - ozone
-            - scm
-            - --init
-          env: []
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: init
+        image: '@docker.image@'
+        args:
+        - ozone
+        - scm
+        - --init
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
       containers:
-        - name: scm
-          image: apache/ozone
-          args:
-            - ozone
-            - scm
-          volumeMounts:
-            - name: "data"
-              mountPath: "/data"
-          envFrom:
-            - configMapRef:
-                name: config
+      - name: scm
+        image: '@docker.image@'
+        args:
+        - ozone
+        - scm
+        envFrom:
+        - configMapRef:
+            name: config
+        volumeMounts:
+        - name: data
+          mountPath: /data
       volumes:
-        - name: "data"
-          emptyDir: {}
+      - name: data
+        emptyDir: {}
diff --git a/hadoop-ozone/dist/src/main/k8s/prometheus/configmap.yaml 
b/hadoop-ozone/dist/src/main/k8s/prometheus/configmap.yaml
deleted file mode 100644
index 40b13e2..0000000
--- a/hadoop-ozone/dist/src/main/k8s/prometheus/configmap.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: prometheusconf
-data:
-  prometheus.yaml: |-
-    global:
-      scrape_interval: 15s
-    scrape_configs:
-    - job_name: jmxexporter
-      kubernetes_sd_configs:
-      - role: pod
-        namespaces:
-          names: ["default"]
-      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
-      relabel_configs:
-      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
-        action: keep
-        regex: true
-      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
-        action: replace
-        target_label: __metrics_path__
-        regex: (.+)
-      - source_labels: [__address__, 
__meta_kubernetes_pod_annotation_prometheus_io_port]
-        action: replace
-        regex: ([^:]+)(?::\d+)?;(\d+)
-        replacement: $1:$2
-        target_label: __address__
-      - action: labelmap
-        regex: __meta_kubernetes_pod_label_(.+)
-      - source_labels: [__meta_kubernetes_namespace]
-        action: replace
-        target_label: kubernetes_namespace
-      - source_labels: [__meta_kubernetes_pod_name]
-        action: replace
-        target_label: kubernetes_pod_name
diff --git 
a/hadoop-ozone/dist/src/main/k8s/prometheus/prometheus-public-serivce.yaml 
b/hadoop-ozone/dist/src/main/k8s/prometheus/prometheus-public-serivce.yaml
deleted file mode 100644
index 276943d..0000000
--- a/hadoop-ozone/dist/src/main/k8s/prometheus/prometheus-public-serivce.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-apiVersion: v1
-kind: Service
-metadata:
-  name: prometheus-public
-  labels: {}
-  annotations: {}
-spec:
-  ports:
-    - port: 9090
-      name: ui
-  selector:
-    app: prometheus
-  type: NodePort
diff --git a/hadoop-ozone/dist/src/main/k8s/prometheus/role.yaml 
b/hadoop-ozone/dist/src/main/k8s/prometheus/role.yaml
deleted file mode 100644
index e9412fa..0000000
--- a/hadoop-ozone/dist/src/main/k8s/prometheus/role.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-apiVersion: rbac.authorization.k8s.io/v1beta1
-kind: Role
-metadata:
-  name: prometheus
-rules:
-- apiGroups: [""]
-  resources:
-  - nodes
-  - services
-  - endpoints
-  - pods
-  verbs: ["get", "list", "watch"]
-- apiGroups: [""]
-  resources:
-  - configmaps
-  verbs: ["get"]
diff --git a/hadoop-ozone/dist/src/main/k8s/prometheus/rolebindng.yaml 
b/hadoop-ozone/dist/src/main/k8s/prometheus/rolebindng.yaml
deleted file mode 100644
index ffd340d..0000000
--- a/hadoop-ozone/dist/src/main/k8s/prometheus/rolebindng.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-apiVersion: rbac.authorization.k8s.io/v1beta1
-kind: RoleBinding
-metadata:
-  name: prometheus-operator
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: Role
-  name: prometheus
-subjects:
-- kind: ServiceAccount
-  name: prometheus-operator
-#  namespace: default
diff --git a/hadoop-ozone/dist/src/main/k8s/prometheus/scm-public-service.yaml 
b/hadoop-ozone/dist/src/main/k8s/prometheus/scm-public-service.yaml
deleted file mode 100644
index ddfe138..0000000
--- a/hadoop-ozone/dist/src/main/k8s/prometheus/scm-public-service.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-apiVersion: v1
-kind: Service
-metadata:
-  name: scm-public
-  labels: {}
-  annotations: {}
-spec:
-  ports:
-    - port: 9876
-      name: ui
-  selector:
-    app: ozone
-    component: scm
-  type: NodePort


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to