Skip to content
Snippets Groups Projects
deployment.yaml 8.93 KiB
Newer Older
Mohammed Ismail's avatar
Mohammed Ismail committed
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Chart.Name }}
  labels:
    {{- include "oai-gnb.labels" . | nindent 4 }}
Mohammed Ismail's avatar
Mohammed Ismail committed
spec:
Sagar Arora's avatar
Sagar Arora committed
  replicas: 1
Mohammed Ismail's avatar
Mohammed Ismail committed
  selector:
    matchLabels:
      {{- include "oai-gnb.selectorLabels" . | nindent 6 }}
Mohammed Ismail's avatar
Mohammed Ismail committed
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        {{- include "oai-gnb.selectorLabels" . | nindent 8 }}
        app: oai-gnb
    {{- if .Values.multus.n2Interface.create }}
      annotations:
        k8s.v1.cni.cncf.io/networks: >-
          [{
                 "name": "{{ .Chart.Name }}-{{ .Values.multus.n2Interface.name }}",
                 "interface": "{{ .Values.multus.n2Interface.name }}"
                {{- if .Values.multus.n2Interface.mac }}
                 ,"mac":  "{{ .Values.multus.n2Interface.mac }}"
turletti's avatar
turletti committed
                {{- end }}
                {{- if .Values.multus.defaultGateway }}
                 ,"default-route": ["{{ .Values.multus.defaultGateway }}"]
                {{- end }}
turletti's avatar
turletti committed
                {{- if .Values.multus.n2Interface.gateway }}
                 ,"gateway": ["{{ .Values.multus.n2Interface.gateway }}"]
turletti's avatar
turletti committed
                {{- end }}
          }
          {{- if .Values.multus.n3Interface.create }}
          ,{
                 "name": "{{ .Chart.Name }}-{{ .Values.multus.n3Interface.name }}",
                 "interface": "{{ .Values.multus.n3Interface.name }}"
                {{- if .Values.multus.n3Interface.mac }}
                 ,"mac":  "{{ .Values.multus.n3Interface.mac }}"
turletti's avatar
turletti committed
                {{- end }}
                {{- if .Values.multus.n3Interface.gateway }}
                ,"gateway": {{ .Values.multus.n3Interface.gateway }}
turletti's avatar
turletti committed
                {{- end }}
          }
          {{- end }}
          {{- if .Values.multus.ru1Interface.create }}
          ,{
                 "name": "{{ .Chart.Name }}-{{ .Values.multus.ru1Interface.name }}",
                 "interface": "{{ .Values.multus.ru1Interface.name }}"
                {{- if .Values.multus.ru1Interface.mac }}
                 ,"mac":  "{{ .Values.multus.ru1Interface.mac }}"
turletti's avatar
turletti committed
                {{- end }}
                {{- if .Values.multus.ru1Interface.gateway }}
                 ,"gateway": ["{{ .Values.multus.ru1Interface.gateway }}"]
                {{- end }}
          }
          {{- end }}
turletti's avatar
turletti committed
          {{- if .Values.multus.ru2Interface.create }}
                 "name": "{{ .Chart.Name }}-{{ .Values.multus.ru2Interface.name }}",
                 "interface": "{{ .Values.multus.ru2Interface.name }}"
                {{- if .Values.multus.ru2Interface.mac }}
                 ,"mac":  "{{ .Values.multus.ru2Interface.mac }}"
turletti's avatar
turletti committed
                {{- end }}
                {{- if .Values.multus.ru2Interface.gateway }}
                 ,"gateway": ["{{ .Values.multus.ru2Interface.gateway }}"]
                {{- end }}
          }
          {{- end }}
          ]
Mohammed Ismail's avatar
Mohammed Ismail committed
    spec:
      securityContext:
        {{- toYaml .Values.podSecurityContext | nindent 8 }}
        capabilities:
          add:
            - NET_ADMIN
            - NET_RAW
          drop:
            - ALL
    {{- if .Values.imagePullSecrets }}
Sagar Arora's avatar
Sagar Arora committed
      imagePullSecrets:
        {{ toYaml .Values.imagePullSecrets | indent 8 }}
    {{- if .Values.global }}{{ if .Values.global.waitForAMF }}
      initContainers:
        - name: init
          image: docker.io/oaisoftwarealliance/oai-tcpdump-init:alpine-3.20
          imagePullPolicy: IfNotPresent
          command:
            - /bin/sh
            - -c
            - until ncat -zv {{ .Values.config.amfhost }} 38412 --sctp ; do echo waiting for oai-amf to start; sleep 1; done
          resources:
            requests:
              memory: 50Mi
              cpu: 1m
            limits:
              memory: 50Mi
              cpu: 1m
    {{- end }}{{ end }}
Mohammed Ismail's avatar
Mohammed Ismail committed
      containers:
Mohammed Ismail's avatar
Mohammed Ismail committed
        image: "{{ .Values.nfimage.repository }}:{{ .Values.nfimage.version }}"
        imagePullPolicy: {{ .Values.nfimage.pullPolicy }}
        securityContext:
          {{- toYaml .Values.securityContext | nindent 12 }}
Sagar Arora's avatar
Sagar Arora committed
        volumeMounts:
turletti's avatar
turletti committed
        {{- if eq .Values.config.usrp "aw2s" }}
turletti's avatar
turletti committed
          - mountPath: /opt/oai-gnb-aw2s/etc/gnb.conf
turletti's avatar
turletti committed
        {{- else }}
turletti's avatar
turletti committed
          - mountPath: /opt/oai-gnb/etc/gnb.conf
turletti's avatar
turletti committed
        {{- end }}
Sagar Arora's avatar
Sagar Arora committed
            name: configuration
turletti's avatar
turletti committed
            subPath: gnb.conf
          # USRP B210/B200 Mini
        {{- if eq .Values.config.usrp "b2xx"}}
          - mountPath: /dev/bus/usb/
            name: usrp
Sagar Arora's avatar
Sagar Arora committed
        {{- end}}
Mohammed Ismail's avatar
Mohammed Ismail committed
        {{- if .Values.resources.define}}
        resources:
          requests:
            memory: {{ .Values.resources.requests.nf.memory | quote }}
            cpu: {{ .Values.resources.requests.nf.cpu | quote }}
Mohammed Ismail's avatar
Mohammed Ismail committed
          limits:
            memory: {{ .Values.resources.limits.nf.memory | quote }}
            cpu: {{ .Values.resources.limits.nf.cpu | quote }}
Mohammed Ismail's avatar
Mohammed Ismail committed
        {{- end}}
        ports:
Sagar Arora's avatar
Sagar Arora committed
        - containerPort: 2152
          name: n3
Sagar Arora's avatar
Sagar Arora committed
        - containerPort: 36412
          name: n2
          protocol: SCTP
        command: [ "/bin/bash", "-c" ]
        args:
         -  AMF_IP_ADDRESS=$(getent hosts $AMF_HOST | awk '{print $1}');
            AMF_IP_ADDRESS=$(if [[ $AMF_IP_ADDRESS ]]; then echo $AMF_IP_ADDRESS; else echo $AMF_HOST;fi)
            N2_IP_ADDRESS=$(ip -4 addr show $N2_IF_NAME | grep inet | awk '{ print $2 }' | cut -d/ -f1);
            N3_IP_ADDRESS=$(ip -4 addr show $N3_IF_NAME | grep inet | awk '{ print $2 }' | cut -d/ -f1);
            RU1_IP_ADDRESS=$(ip -4 addr show ru1 | grep inet | awk '{ print $2 }' | cut -d/ -f1);
            sed -e s/@AMF_IP_ADDRESS@/$AMF_IP_ADDRESS/g
                -e s/@GNB_N2_IP_ADDRESS@/$N2_IP_ADDRESS/g
                -e s/@GNB_N3_IP_ADDRESS@/$N3_IP_ADDRESS/g
                -e s/@RU1_IP_ADDRESS@/$RU1_IP_ADDRESS/g
turletti's avatar
turletti committed
            {{- if eq .Values.config.usrp "aw2s" }}
turletti's avatar
turletti committed
                /opt/oai-gnb-aw2s/etc/gnb.conf | tee /tmp/gnb.conf;
            {{- else }}
                /opt/oai-gnb/etc/gnb.conf | tee /tmp/gnb.conf;
turletti's avatar
turletti committed
            {{- end }}
turletti's avatar
turletti committed
          {{- if eq .Values.config.usrp "b2xx" }}
            /opt/oai-gnb/bin/uhd_images_downloader.py -t b2xx;
          {{- else if eq .Values.config.usrp "n3xx" }}
            /opt/oai-gnb/bin/uhd_images_downloader.py -t n3xx;
          {{- else if eq .Values.config.usrp "x3xx" }}
            /opt/oai-gnb/bin/uhd_images_downloader.py -t x3xx;
          {{- end }}
turletti's avatar
turletti committed
        {{- if .Values.start.gnb }}
turletti's avatar
turletti committed
          {{- if eq .Values.config.usrp "aw2s" }}
            exec /opt/oai-gnb-aw2s/bin/nr-softmodem -O /tmp/gnb.conf $USE_ADDITIONAL_OPTIONS;
turletti's avatar
turletti committed
          {{- else }}
            exec /opt/oai-gnb/bin/nr-softmodem -O /tmp/gnb.conf $USE_ADDITIONAL_OPTIONS;
turletti's avatar
turletti committed
          {{- end }}
Mohammed Ismail's avatar
Mohammed Ismail committed
        {{- else}}
turletti's avatar
turletti committed
            /bin/sleep infinity
Mohammed Ismail's avatar
Mohammed Ismail committed
        {{- end}}
        env:
          - name: TZ
Sagar Arora's avatar
Sagar Arora committed
            value: {{ .Values.config.timeZone }}
          - name: USE_ADDITIONAL_OPTIONS
            value: {{ .Values.config.useAdditionalOptions }}
          - name: AMF_HOST
            value: {{ .Values.config.amfHost }}
          - name: N2_IF_NAME
            value: {{ .Values.config.n2IfName }}
          - name: N3_IF_NAME
            value: {{ .Values.config.n3IfName }}
      {{- if .Values.includeTcpDumpContainer }}
      - name: tcpdump
        image: "{{ .Values.tcpdumpimage.repository }}:{{ .Values.tcpdumpimage.version }}"
        imagePullPolicy: {{ .Values.tcpdumpimage.pullPolicy }}
        {{- if .Values.resources.define}}
        resources:
          requests:
            memory: {{ .Values.resources.requests.tcpdump.memory | quote }}
            cpu: {{ .Values.resources.requests.tcpdump.cpu | quote }}
          limits:
            memory: {{ .Values.resources.limits.tcpdump.memory | quote }}
            cpu: {{ .Values.resources.limits.tcpdump.cpu | quote }}
        {{- end}}
        {{- if .Values.start.tcpdump}}
        command:
          - /bin/sh
          - -c
          - /usr/bin/tcpdump -i n2 -w /tmp/pcap/{{ .Chart.Name }}_`date +%Y-%m-%d_%H_%M-%S-%Z`.pcap
Mohammed Ismail's avatar
Mohammed Ismail committed
        {{- else}}
        command:
          - /bin/sleep
          - infinity
        {{- end}}
turletti's avatar
turletti committed
        {{- if .Values.persistent.sharedvolume }}
        volumeMounts:
turletti's avatar
turletti committed
        - mountPath: "/tmp/pcap"
turletti's avatar
turletti committed
          name: oai5g-pv
        {{- end}}
      {{- end }}
Mohammed Ismail's avatar
Mohammed Ismail committed
      volumes:
turletti's avatar
turletti committed
      {{- if .Values.persistent.sharedvolume }}
      - name: oai5g-pv
        persistentVolumeClaim:
          claimName: oai5g-pvc
      {{- end }}
Sagar Arora's avatar
Sagar Arora committed
      - configMap:
          name: {{ .Chart.Name }}-configmap
        name: configuration
      {{- if eq .Values.config.usrp "b2xx"}}
      - name: usrp
        hostPath:
          path: /dev/bus/usb/
Sagar Arora's avatar
Sagar Arora committed
      {{- end}}
Mohammed Ismail's avatar
Mohammed Ismail committed
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      serviceAccountName: {{ .Values.serviceAccount.name }}
      terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
      {{- if .Values.nodeSelector}}
      nodeSelector: 
         {{- toYaml .Values.nodeSelector | nindent 12 }}
Mohammed Ismail's avatar
Mohammed Ismail committed
      {{- end }}
      {{- if .Values.nodeName}}
      nodeName: {{ .Values.nodeName }}
Sagar Arora's avatar
Sagar Arora committed
      {{- end }}