# Copyright 2017 The Openstack-Helm Authors.
#
# Licensed 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.

---
kind: DaemonSet
apiVersion: extensions/v1beta1
metadata:
  name: ceph-osd
  labels:
    app: ceph
    daemon: osd
spec:
  template:
    metadata:
      labels:
        app: ceph
        daemon: osd
    spec:
      nodeSelector:
        {{ .Values.labels.node_selector_key }}: {{ .Values.labels.node_selector_value }}
      volumes:
        - name: devices
          hostPath:
            path: /dev
        - name: ceph
          hostPath:
            path: {{ .Values.storage.var_directory }}
        - name: ceph-conf
          secret:
            secretName: ceph-conf-combined
        - name: ceph-bootstrap-osd-keyring
          secret:
            secretName: ceph-bootstrap-osd-keyring
        - name: ceph-bootstrap-mds-keyring
          secret:
            secretName: ceph-bootstrap-mds-keyring
        - name: ceph-bootstrap-rgw-keyring
          secret:
            secretName: ceph-bootstrap-rgw-keyring
        - name: osd-directory
          hostPath:
            path: {{ .Values.storage.osd_directory }}
      containers:
        - name: osd-pod
          image: {{ .Values.images.daemon }}
          imagePullPolicy: {{ .Values.images.pull_policy }}
          volumeMounts:
            - name: devices
              mountPath: /dev
            - name: ceph
              mountPath: /var/lib/ceph
            - name: ceph-conf
              mountPath: /etc/ceph
            - name: ceph-bootstrap-osd-keyring
              mountPath: /var/lib/ceph/bootstrap-osd
            - name: ceph-bootstrap-mds-keyring
              mountPath: /var/lib/ceph/bootstrap-mds
            - name: ceph-bootstrap-rgw-keyring
              mountPath: /var/lib/ceph/bootstrap-rgw
            - name: osd-directory
              mountPath: /var/lib/ceph/osd
          securityContext:
            privileged: true
          env:
            - name: CEPH_DAEMON
              value: osd_directory
            - name: KV_TYPE
              value: k8s
            - name: CLUSTER
              value: ceph
            - name: CEPH_GET_ADMIN_KEY
              value: "1"
          livenessProbe:
              tcpSocket:
                port: 6800
              initialDelaySeconds: 60
              timeoutSeconds: 5
          readinessProbe:
              tcpSocket:
                port: 6800
              timeoutSeconds: 5
          resources:
            requests:
              memory: {{ .Values.resources.osd.requests.memory | quote }}
              cpu: {{ .Values.resources.osd.requests.cpu | quote }}
            limits:
              memory: {{ .Values.resources.osd.limits.memory | quote }}
              cpu: {{ .Values.resources.osd.limits.cpu | quote }}