COMAC-114 Write helm chart for OAI eNB and UE
Add helm chart to deploy OAI eNB and UE needed for COMAC-in-a-Box.
Change-Id: I5157d86c77eeb5f2041e9fa09f7661aca5528b8f
diff --git a/oaisim/templates/statefulset-enb.yaml b/oaisim/templates/statefulset-enb.yaml
new file mode 100644
index 0000000..47e31cd
--- /dev/null
+++ b/oaisim/templates/statefulset-enb.yaml
@@ -0,0 +1,168 @@
+{{/*
+Copyright 2019-present Open Networking Foundation
+
+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.
+*/}}
+
+{{- $releaseName := .Release.Name }}
+{{- $namespace := .Release.Namespace }}
+{{- $name := .Values.conf.enb.name }}
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: {{ $releaseName }}-{{ $name }}
+ namespace: {{ $namespace }}
+---
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+ name: {{ $releaseName }}-{{ $name }}
+ namespace: {{ $namespace }}
+rules:
+ - apiGroups:
+ - ""
+ - extensions
+ - batch
+ - apps
+ verbs:
+ - get
+ - list
+ resources:
+ - daemonsets
+ - jobs
+ - pods
+ - services
+ - endpoints
+---
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+ name: {{ $releaseName }}-{{ $name }}
+ namespace: {{ $namespace }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: {{ $releaseName }}-{{ $name }}
+subjects:
+ - kind: ServiceAccount
+ name: {{ $releaseName }}-{{ $name }}
+---
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+ name: {{ $name }}
+ namespace: {{ $namespace }}
+ labels:
+ app: oai-enb
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: oai-enb
+ serviceName: {{ $name | quote }}
+ template:
+ metadata:
+ labels:
+ app: oai-enb
+ spec:
+ serviceAccountName: {{ $releaseName }}-{{ $name }}
+ hostNetwork: true
+ initContainers:
+ - name: enb-dep-check
+ image: {{ .Values.images.tags.dep_check | quote }}
+ imagePullPolicy: {{ .Values.images.pullPolicy }}
+ securityContext:
+ allowPrivilegeEscalation: false
+ readOnlyRootFilesystem: false
+ runAsUser: 0
+ env:
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: PATH
+ value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/
+ - name: COMMAND
+ value: "echo done"
+ - name: DEPENDENCY_POD_JSON
+ value: '[{"labels": {"app": "mme"}, "requireSameNode": false}]'
+ command:
+ - kubernetes-entrypoint
+ volumeMounts:
+ []
+ - name: enb-init
+ image: {{ .Values.images.tags.enb | quote }}
+ imagePullPolicy: {{ .Values.images.pullPolicy }}
+ securityContext:
+ capabilities:
+ add:
+ - NET_ADMIN
+ command:
+ - /opt/oaisim/enb/scripts/enb-init.sh
+ env:
+ - name: ENB_LOCAL_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ volumeMounts:
+ - name: script
+ mountPath: /opt/oaisim/enb/scripts/enb-init.sh
+ subPath: enb-init.sh
+ - name: config
+ mountPath: /opt/oaisim/enb/config
+ - name: pod-share
+ mountPath: /etc/oaisim/enb
+ containers:
+ - name: {{ $name }}
+ image: {{ .Values.images.tags.enb | quote }}
+ imagePullPolicy: {{ .Values.images.pullPolicy }}
+ securityContext:
+ privileged: true
+ command:
+ - /opt/oaisim/enb/scripts/enb-run.sh
+ - start
+ lifecycle:
+ preStop:
+ exec:
+ command:
+ - /opt/oaisim/enb/scripts/enb-run.sh
+ - stop
+ env:
+ - name: ENB_LOCAL_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ volumeMounts:
+ - name: script
+ mountPath: /opt/oaisim/enb/scripts/enb-run.sh
+ subPath: enb-run.sh
+ - name: pod-share
+ mountPath: /etc/oaisim/enb
+ volumes:
+ - name: config
+ configMap:
+ name: {{ $name }}
+ defaultMode: 420
+ - name: script
+ configMap:
+ name: {{ $name }}
+ defaultMode: 493
+ - name: pod-share
+ emptyDir: {}