diff --git a/hadoop-ozone/common/pom.xml b/hadoop-ozone/common/pom.xml
index efea791a754..6098b4d7b89 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">
+
+
+ k8s-dev
+
+
+
+ io.fabric8
+ docker-maven-plugin
+ 0.29.0
+
+
+
+ ${user.name}/ozone:${project.version}
+
+ ${project.basedir}
+
+
+
+
+
+
+
+
+
diff --git a/hadoop-ozone/dist/dev-support/bin/dist-layout-stitching b/hadoop-ozone/dist/dev-support/bin/dist-layout-stitching
index ffb469be0c4..0ce4e8fc2ec 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 b31c5b9c8d7..2c88745282e 100644
--- a/hadoop-ozone/dist/pom.xml
+++ b/hadoop-ozone/dist/pom.xml
@@ -28,6 +28,7 @@
UTF-8
true
+ apache/hadoop:${project.version}
@@ -139,7 +140,7 @@
3.1.0
- copy-resources
+ copy-compose
compile
copy-resources
@@ -154,6 +155,22 @@
+
+ copy-k8s
+ compile
+
+ copy-resources
+
+
+ ${basedir}/target/k8s
+
+
+ src/main/k8s
+ true
+
+
+
+
@@ -267,4 +284,62 @@
hadoop-ozone-upgrade
+
+
+ k8s-dev
+
+ ${user.name}/ozone:${project.version}
+
+
+
+
+ io.fabric8
+ docker-maven-plugin
+ 0.29.0
+
+
+
+ build
+
+ package
+
+
+
+
+
+ ${docker.image}
+
+
+ ${project.build.directory}/ozone-${project.version}
+
+
+
+
+
+
+
+
+
+
+ k8s-dev-push
+
+
+
+ io.fabric8
+ docker-maven-plugin
+ 0.29.0
+
+
+
+ push
+
+ package
+
+
+
+
+
+
+
+
diff --git a/hadoop-ozone/dist/Dockerfile b/hadoop-ozone/dist/src/main/Dockerfile
similarity index 93%
rename from hadoop-ozone/dist/Dockerfile
rename to hadoop-ozone/dist/src/main/Dockerfile
index c22c3ca913c..9c14f498bef 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%
rename from hadoop-ozone/dist/src/main/k8s/ozone/config-configmap.yaml
rename to hadoop-ozone/dist/src/main/k8s/definitions/ozone/config.yaml
index e79a3cc9058..f98f7f53726 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/definitions/ozone/datanode-ds.yaml b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/datanode-ds.yaml
new file mode 100644
index 00000000000..fbc340c714a
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/datanode-ds.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.
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+ name: datanode
+ labels:
+ app.kubernetes.io/component: ozone
+spec:
+ selector:
+ matchLabels:
+ app: ozone
+ 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: "@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 22154b76c97..581481fde94 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%
rename from hadoop-ozone/dist/src/main/k8s/prometheus/service-account.yaml
rename to hadoop-ozone/dist/src/main/k8s/definitions/ozone/flekszible.yaml
index d5ba196c747..2707d302d15 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 cb5f375c34d..c6e29f3d182 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%
rename from hadoop-ozone/dist/src/main/k8s/ozone/datanode-statefulset.yaml
rename to hadoop-ozone/dist/src/main/k8s/definitions/ozone/freon/freon.yaml
index f8600a07008..40ebc98a425 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/definitions/ozone/om-ss-service.yaml b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/om-ss-service.yaml
new file mode 100644
index 00000000000..a6462fe687a
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/om-ss-service.yaml
@@ -0,0 +1,27 @@
+# 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: om
+spec:
+ ports:
+ - 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%
rename from hadoop-ozone/dist/src/main/k8s/ozone/om-statefulset.yaml
rename to hadoop-ozone/dist/src/main/k8s/definitions/ozone/om-ss.yaml
index e9eeea8bcb1..820d5622811 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/definitions/ozone/s3g-ss-service.yaml b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/s3g-ss-service.yaml
new file mode 100644
index 00000000000..c99bbd217ae
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/s3g-ss-service.yaml
@@ -0,0 +1,27 @@
+# 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: s3g
+spec:
+ ports:
+ - port: 9878
+ name: rest
+ clusterIP: None
+ selector:
+ app: ozone
+ component: s3g
diff --git a/hadoop-ozone/dist/src/main/k8s/definitions/ozone/s3g-ss.yaml b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/s3g-ss.yaml
new file mode 100644
index 00000000000..43044c90c35
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/s3g-ss.yaml
@@ -0,0 +1,38 @@
+# 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: apps/v1
+kind: StatefulSet
+metadata:
+ name: s3g
+ labels:
+ app.kubernetes.io/component: ozone
+spec:
+ selector:
+ matchLabels:
+ app: ozone
+ component: s3g
+ serviceName: s3g
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: ozone
+ component: s3g
+ spec:
+ containers:
+ - 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%
rename from hadoop-ozone/dist/src/main/k8s/ozone/scm-service.yaml
rename to hadoop-ozone/dist/src/main/k8s/definitions/ozone/scm-ss-service.yaml
index f3116957954..f8a05abcba9 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%
rename from hadoop-ozone/dist/src/main/k8s/ozone/scm-statefulset.yaml
rename to hadoop-ozone/dist/src/main/k8s/definitions/ozone/scm-ss.yaml
index 80c59242dab..a87111ca85d 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/src/main/k8s/definitions/ozone/transformations/config.yaml b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/transformations/config.yaml
new file mode 100644
index 00000000000..c8ae632cfae
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/transformations/config.yaml
@@ -0,0 +1,26 @@
+# 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.
+- type: Add
+ path:
+ - spec
+ - template
+ - spec
+ - ".*"
+ - ".*"
+ - envFrom
+ value:
+ - configMapRef:
+ name: config
diff --git a/hadoop-ozone/dist/src/main/k8s/definitions/ozone/transformations/emptydir.yaml b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/transformations/emptydir.yaml
new file mode 100644
index 00000000000..5f9b94a2c5d
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/definitions/ozone/transformations/emptydir.yaml
@@ -0,0 +1,58 @@
+# 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.
+- type: Add
+ trigger:
+ metadata:
+ labels:
+ 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/examples/minikube/LICENSE.header b/hadoop-ozone/dist/src/main/k8s/examples/minikube/LICENSE.header
new file mode 100644
index 00000000000..635f0d9e60e
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/LICENSE.header
@@ -0,0 +1,15 @@
+# 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/examples/minikube/config-configmap.yaml b/hadoop-ozone/dist/src/main/k8s/examples/minikube/config-configmap.yaml
new file mode 100644
index 00000000000..427b977daa6
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/config-configmap.yaml
@@ -0,0 +1,34 @@
+# 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: config
+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
+ 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"
+ 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 bdc8009712b..0e5927d1622 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/examples/minikube/datanode-statefulset.yaml b/hadoop-ozone/dist/src/main/k8s/examples/minikube/datanode-statefulset.yaml
new file mode 100644
index 00000000000..a453b9a3d61
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/datanode-statefulset.yaml
@@ -0,0 +1,58 @@
+# 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: apps/v1
+kind: StatefulSet
+metadata:
+ name: datanode
+ labels:
+ app.kubernetes.io/component: ozone
+spec:
+ selector:
+ matchLabels:
+ app: ozone
+ 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: '@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
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 00000000000..81207e72e76
--- /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 636840398ee..1662c4e3f24 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 a150939c728..deb2c333c38 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 f363c48ead0..617277d9b85 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/examples/minikube/om-statefulset.yaml b/hadoop-ozone/dist/src/main/k8s/examples/minikube/om-statefulset.yaml
new file mode 100644
index 00000000000..e0811e4a73e
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/om-statefulset.yaml
@@ -0,0 +1,67 @@
+# 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: apps/v1
+kind: StatefulSet
+metadata:
+ name: om
+ labels:
+ app.kubernetes.io/component: ozone
+spec:
+ selector:
+ matchLabels:
+ app: ozone
+ component: om
+ serviceName: om
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: ozone
+ component: om
+ annotations:
+ prometheus.io/scrape: "true"
+ prometheus.io/port: "9874"
+ prometheus.io/path: /prom
+ spec:
+ initContainers:
+ - name: init
+ image: '@docker.image@'
+ args:
+ - ozone
+ - om
+ - --init
+ envFrom:
+ - configMapRef:
+ name: config
+ volumeMounts:
+ - name: data
+ mountPath: /data
+ containers:
+ - name: om
+ image: '@docker.image@'
+ args:
+ - ozone
+ - om
+ envFrom:
+ - configMapRef:
+ name: config
+ volumeMounts:
+ - name: data
+ mountPath: /data
+ volumes:
+ - 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 54d10de2b52..d2b2420576c 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%
rename from hadoop-ozone/dist/src/main/k8s/ozone/s3g-service.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/minikube/s3g-service.yaml
index 8441e12a75a..dd1ca834799 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%
rename from hadoop-ozone/dist/src/main/k8s/ozone/s3g-statefulset.yaml
rename to hadoop-ozone/dist/src/main/k8s/examples/minikube/s3g-statefulset.yaml
index dd6fc257d52..b608cde832e 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 ddfe138d110..e3246fc5e35 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/examples/minikube/scm-service.yaml b/hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-service.yaml
new file mode 100644
index 00000000000..0df15d64531
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-service.yaml
@@ -0,0 +1,28 @@
+# 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
+spec:
+ ports:
+ - port: 9876
+ name: ui
+ clusterIP: None
+ selector:
+ app: ozone
+ component: scm
diff --git a/hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-statefulset.yaml b/hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-statefulset.yaml
new file mode 100644
index 00000000000..55b56722d10
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/minikube/scm-statefulset.yaml
@@ -0,0 +1,67 @@
+# 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: apps/v1
+kind: StatefulSet
+metadata:
+ name: scm
+ labels:
+ app.kubernetes.io/component: ozone
+spec:
+ selector:
+ matchLabels:
+ app: ozone
+ component: scm
+ serviceName: scm
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: ozone
+ component: scm
+ annotations:
+ prometheus.io/scrape: "true"
+ prometheus.io/port: "9876"
+ prometheus.io/path: /prom
+ spec:
+ initContainers:
+ - name: init
+ image: '@docker.image@'
+ args:
+ - ozone
+ - scm
+ - --init
+ envFrom:
+ - configMapRef:
+ name: config
+ volumeMounts:
+ - name: data
+ mountPath: /data
+ containers:
+ - name: scm
+ image: '@docker.image@'
+ args:
+ - ozone
+ - scm
+ envFrom:
+ - configMapRef:
+ name: config
+ volumeMounts:
+ - name: data
+ mountPath: /data
+ volumes:
+ - name: data
+ emptyDir: {}
diff --git a/hadoop-ozone/dist/src/main/k8s/examples/ozone/LICENSE.header b/hadoop-ozone/dist/src/main/k8s/examples/ozone/LICENSE.header
new file mode 100644
index 00000000000..635f0d9e60e
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/LICENSE.header
@@ -0,0 +1,15 @@
+# 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/examples/ozone/config-configmap.yaml b/hadoop-ozone/dist/src/main/k8s/examples/ozone/config-configmap.yaml
new file mode 100644
index 00000000000..427b977daa6
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/config-configmap.yaml
@@ -0,0 +1,34 @@
+# 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: config
+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
+ 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"
+ 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/examples/ozone/datanode-daemonset.yaml b/hadoop-ozone/dist/src/main/k8s/examples/ozone/datanode-daemonset.yaml
new file mode 100644
index 00000000000..6e3b3b96cf0
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/datanode-daemonset.yaml
@@ -0,0 +1,56 @@
+# 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: apps/v1
+kind: DaemonSet
+metadata:
+ name: datanode
+ labels:
+ app.kubernetes.io/component: ozone
+spec:
+ selector:
+ matchLabels:
+ app: ozone
+ 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: '@docker.image@'
+ args:
+ - ozone
+ - datanode
+ ports:
+ - containerPort: 9870
+ name: rpc
+ envFrom:
+ - configMapRef:
+ name: config
+ volumeMounts:
+ - name: data
+ mountPath: /data
+ initContainers: []
+ volumes:
+ - 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 00000000000..5da1f20d41b
--- /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/examples/ozone/freon/freon-deployment.yaml b/hadoop-ozone/dist/src/main/k8s/examples/ozone/freon/freon-deployment.yaml
new file mode 100644
index 00000000000..1662c4e3f24
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/freon/freon-deployment.yaml
@@ -0,0 +1,46 @@
+# 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: apps/v1
+kind: Deployment
+metadata:
+ name: freon
+ labels:
+ app.kubernetes.io/component: ozone
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: ozone
+ component: freon
+ template:
+ metadata:
+ labels:
+ app: ozone
+ component: freon
+ spec:
+ 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/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 e07aafc1869..617277d9b85 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/examples/ozone/om-statefulset.yaml b/hadoop-ozone/dist/src/main/k8s/examples/ozone/om-statefulset.yaml
new file mode 100644
index 00000000000..884dd462417
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/om-statefulset.yaml
@@ -0,0 +1,73 @@
+# 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: apps/v1
+kind: StatefulSet
+metadata:
+ name: om
+ labels:
+ app.kubernetes.io/component: ozone
+spec:
+ selector:
+ matchLabels:
+ app: ozone
+ component: om
+ serviceName: om
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: ozone
+ component: om
+ annotations:
+ prometheus.io/scrape: "true"
+ prometheus.io/port: "9874"
+ prometheus.io/path: /prom
+ spec:
+ initContainers:
+ - 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: '@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: {}
diff --git a/hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-service.yaml b/hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-service.yaml
new file mode 100644
index 00000000000..dd1ca834799
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-service.yaml
@@ -0,0 +1,28 @@
+# 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: s3g
+spec:
+ ports:
+ - port: 9878
+ name: rest
+ clusterIP: None
+ selector:
+ app: ozone
+ component: s3g
diff --git a/hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-statefulset.yaml b/hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-statefulset.yaml
new file mode 100644
index 00000000000..b608cde832e
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/s3g-statefulset.yaml
@@ -0,0 +1,51 @@
+# 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: apps/v1
+kind: StatefulSet
+metadata:
+ name: s3g
+ labels:
+ app.kubernetes.io/component: ozone
+spec:
+ selector:
+ matchLabels:
+ app: ozone
+ component: s3g
+ serviceName: s3g
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: ozone
+ component: s3g
+ spec:
+ containers:
+ - name: s3g
+ image: '@docker.image@'
+ args:
+ - ozone
+ - s3g
+ envFrom:
+ - configMapRef:
+ name: config
+ volumeMounts:
+ - name: data
+ mountPath: /data
+ initContainers: []
+ volumes:
+ - name: data
+ emptyDir: {}
diff --git a/hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-service.yaml b/hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-service.yaml
new file mode 100644
index 00000000000..0df15d64531
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-service.yaml
@@ -0,0 +1,28 @@
+# 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
+spec:
+ ports:
+ - port: 9876
+ name: ui
+ clusterIP: None
+ selector:
+ app: ozone
+ component: scm
diff --git a/hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-statefulset.yaml b/hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-statefulset.yaml
new file mode 100644
index 00000000000..55b56722d10
--- /dev/null
+++ b/hadoop-ozone/dist/src/main/k8s/examples/ozone/scm-statefulset.yaml
@@ -0,0 +1,67 @@
+# 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: apps/v1
+kind: StatefulSet
+metadata:
+ name: scm
+ labels:
+ app.kubernetes.io/component: ozone
+spec:
+ selector:
+ matchLabels:
+ app: ozone
+ component: scm
+ serviceName: scm
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: ozone
+ component: scm
+ annotations:
+ prometheus.io/scrape: "true"
+ prometheus.io/port: "9876"
+ prometheus.io/path: /prom
+ spec:
+ initContainers:
+ - name: init
+ image: '@docker.image@'
+ args:
+ - ozone
+ - scm
+ - --init
+ envFrom:
+ - configMapRef:
+ name: config
+ volumeMounts:
+ - name: data
+ mountPath: /data
+ containers:
+ - name: scm
+ image: '@docker.image@'
+ args:
+ - ozone
+ - scm
+ envFrom:
+ - configMapRef:
+ name: config
+ volumeMounts:
+ - name: data
+ mountPath: /data
+ volumes:
+ - 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 40b13e23d02..00000000000
--- 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 276943dccbe..00000000000
--- 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 e9412faff82..00000000000
--- 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 ffd340d28e4..00000000000
--- 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 ddfe138d110..00000000000
--- 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