{{/*
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.ue.name }}
---
apiVersion: batch/v1
kind: Job
metadata:
  name: {{ $name }}-setup-if
  labels:
    app: {{ $name }}
  annotations:
    "helm.sh/hook": pre-install
    "helm.sh/hook-delete-policy": hook-succeeded
spec:
  template:
    metadata:
      labels:
        app: {{ $name }}
    spec:
      restartPolicy: Never
      containers:
        - name: ue-setup-if-job
          image: {{ .Values.images.tags.ue | quote }}
          imagePullPolicy: {{ .Values.images.pullPolicy }}
          securityContext:
            privileged: true
            runAsUser: 0
          command: ["bash", "-xc"]
          args:
            - if chroot /mnt/host-rootfs lsmod | grep -q ue_ip; then chroot /mnt/host-rootfs rmmod ue_ip; fi;
              cp /openairinterface5g/targets/bin/ue_ip.ko /mnt/host-rootfs/tmp/ue_ip.ko;
              chroot /mnt/host-rootfs insmod /tmp/ue_ip.ko;
          volumeMounts:
            - name: host-rootfs
              mountPath: /mnt/host-rootfs
      volumes:
        - name: host-rootfs
          hostPath:
            path: /
