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