Added seed code for caas-registry.
[ta/caas-registry.git] / ansible / roles / swift / templates / main / swift_main.yml
diff --git a/ansible/roles/swift/templates/main/swift_main.yml b/ansible/roles/swift/templates/main/swift_main.yml
new file mode 100644 (file)
index 0000000..bcbf9e8
--- /dev/null
@@ -0,0 +1,89 @@
+{#
+Copyright 2019 Nokia
+
+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.
+#}
+---
+apiVersion: apps/v1beta2
+kind: DaemonSet
+metadata:
+  name: swift
+  namespace: kube-system
+spec:
+  selector:
+    matchLabels:
+      name: swift
+  template:
+    metadata:
+      labels:
+        name: swift
+    spec:
+      hostNetwork: true
+      dnsPolicy: ClusterFirstWithHostNet
+      nodeSelector:
+        nodetype: caas_master
+      securityContext:
+        runAsUser: {{ caas.uid.swift }}
+      containers:
+        - name: swift
+          image: {{ container_image_names | select('search', '/swift') | list | last }}
+          securityContext:
+            capabilities:
+              add: ["NET_BIND_SERVICE"]
+          args:
+            - BACKEND
+          resources:
+            limits:
+              memory: "4Gi"
+            requests:
+              memory: "1Gi"
+          env:
+            - name: "SWIFT_USER"
+              value: "{{ swift_user_for_template.stdout }}"
+            - name: "SWIFT_TENANT"
+              value: "{{ swift_tenant_for_template.stdout }}"
+            - name: "SWIFT_PASS"
+              value: "{{ swift_password_for_template.stdout }}"
+            - name: "SWIFT_PART_POWER"
+              value: "7"
+            - name: "SWIFT_PART_HOUR"
+              value: "0"
+            - name: "SWIFT_DISK"
+              value: "swift"
+            - name: "SWIFT_REPLICAS"
+              value: "{{groups['caas_master']|length|int}}"
+{% for host in groups['caas_master']%}
+            - name: "SWIFT_OAM{{loop.index}}_IP"
+              value: "{{ hostvars[host]['networking']['infra_internal']['ip'] }}"
+{% endfor %}
+          volumeMounts:
+            - name: config
+              mountPath: /etc/swift/
+            - name: store
+              mountPath: /srv/node/swift
+          livenessProbe:
+            exec:
+              command:
+                - /bin/bash
+                - /usr/bin/healthchecker.sh
+            initialDelaySeconds: 60
+            periodSeconds: 10
+            failureThreshold: 5
+            timeoutSeconds: 3
+      volumes:
+        - name: config
+          hostPath:
+            path: /etc/swift/main/
+        - name: store
+          hostPath:
+            path: /srv/node/swift