blob: 37ae75f20f275c74c6f49086f08b1e956b5d7813 [file] [log] [blame]
---
# Copyright 2018-present Open Networking Foundation
# Copyright 2018 Intel Corporation
#
# 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: v1
kind: Service
metadata:
name: ngic-cp
spec:
selector:
app: ngic-cp
clusterIP: None
ports:
- name: s11
port: {{ .Values.ngic_cp.ports.s11 }}
protocol: UDP
- name: sx
port: {{ .Values.ngic_cp.ports.sx }}
protocol: UDP
---
apiVersion: v1
kind: Service
metadata:
name: ngic-cp-external
spec:
selector:
app: ngic-cp
type: NodePort
ports:
- name: sx
port: {{ .Values.ngic_cp.ports.sx }}
nodePort: {{ .Values.ngic_cp.ports.sx_external }}
protocol: UDP
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: ngic-cp
labels:
app: ngic-cp
spec:
replicas: {{ .Values.ngic_cp.replicas }}
selector:
matchLabels:
app: ngic-cp
serviceName: "ngic-cp"
template:
metadata:
labels:
app: ngic-cp
spec:
nodeSelector:
kubernetes.io/hostname: "{{ .Values.spgwc_node_selector }}"
initContainers:
- name: init-iptables
image: {{ .Values.ngic_cp.images.init }}
command: [ "sh", "-c"]
securityContext:
capabilities:
add:
- NET_ADMIN
args:
- iptables -I OUTPUT -p icmp --icmp-type destination-unreachable -j DROP;
terminationGracePeriodSeconds: 1
containers:
- name: ngic
image: {{ .Values.ngic_cp.images.cp }}
imagePullPolicy: IfNotPresent
stdin: true
command: [ "bash", "-xc" ]
args:
- . /opt/ngic/config/cp_config.cfg;
sleep 20;
./ngic_controlplane $EAL_ARGS -- $APP_ARGS;
tty: true
env:
- name: MME_S11_IP
value: {{ .Values.mme_hostname }}
- name: SGW_S11_IP
value: {{ .Values.spgwc_hostname }}
- name: SGW_S1U_IP
value: {{ .Values.spgwu_s1u_ip }}
- name: APN
value: {{ .Values.ngic_cp.config.apn }}
- name: IP_POOL_IP
value: "{{ .Values.ngic_cp.config.ue_ip_pool }}"
- name: IP_POOL_MASK
value: "{{ .Values.ngic_cp.config.ue_ip_pool_mask }}"
- name: S11_TEID_POOL_START
value: "00100000"
- name: S11_TEID_POOL_STOP
value: "001fffff"
- name: S1U_TEID_POOL_START
value: "00100000"
- name: S1U_TEID_POOL_STOP
value: "001fffff"
- name: MEM_LIMIT
valueFrom:
resourceFieldRef:
containerName: ngic
resource: limits.memory
divisor: 1Mi
volumeMounts:
- name: config-volume
mountPath: /opt/ngic/config
#- name: hugepage
# mountPath: /dev/hugepages
- name: shared-data
mountPath: /opt/ngic/config/shared
resources:
limits:
#hugepages-1Gi: 4Gi
cpu: {{ .Values.ngic_cp.resources.cpu }}
memory: {{ .Values.ngic_cp.resources.mem }}
volumes:
- name: config-volume
configMap:
name: ngiccp-config
- name: shared-data
emptyDir: {}