diff --git a/charts/free5gc/Chart.yaml b/charts/free5gc/Chart.yaml index b5e8dfa..01fdf6c 100644 --- a/charts/free5gc/Chart.yaml +++ b/charts/free5gc/Chart.yaml @@ -22,6 +22,8 @@ dependencies: condition: deployAmf - name: free5gc-ausf condition: deployAusf +- name: free5gc-chf + condition: deployChf - name: free5gc-n3iwf condition: deployN3iwf - name: free5gc-nrf diff --git a/charts/free5gc/charts/free5gc-amf/templates/amf-configmap.yaml b/charts/free5gc/charts/free5gc-amf/templates/amf-configmap.yaml index 211f817..64daafe 100644 --- a/charts/free5gc/charts/free5gc-amf/templates/amf-configmap.yaml +++ b/charts/free5gc/charts/free5gc-amf/templates/amf-configmap.yaml @@ -44,6 +44,7 @@ data: pem: ./cert/amf.pem nrfUri: {{ $.Values.global.sbi.scheme }}://{{ $.Values.global.nrf.service.name }}:{{ $.Values.global.nrf.service.port }} + nrfCertPem: cert/nrf.pem {{- .configuration.configuration | nindent 6 }} diff --git a/charts/free5gc/charts/free5gc-amf/templates/amf-deployment.yaml b/charts/free5gc/charts/free5gc-amf/templates/amf-deployment.yaml index 5feeadf..6f7582d 100644 --- a/charts/free5gc/charts/free5gc-amf/templates/amf-deployment.yaml +++ b/charts/free5gc/charts/free5gc-amf/templates/amf-deployment.yaml @@ -84,6 +84,8 @@ spec: name: {{ include "free5gc-amf.fullname" $ }}-volume - mountPath: {{ .volume.tlsmount }} name: {{ include "free5gc-amf.fullname" $ }}-empty-volume + - mountPath: {{ .volume.certmount }} + name: {{ include "free5gc-amf.fullname" $ }}-cert-pvc resources: {{- toYaml .resources | nindent 12 }} dnsPolicy: ClusterFirst @@ -103,4 +105,7 @@ spec: name: {{ include "free5gc-amf.fullname" $ }}-configmap - name: {{ include "free5gc-amf.fullname" $ }}-empty-volume emptyDir: {} + - name: {{ include "free5gc-amf.fullname" $ }}-cert-pvc + persistentVolumeClaim: + claimName: cert-pvc {{- end }} diff --git a/charts/free5gc/charts/free5gc-amf/values.yaml b/charts/free5gc/charts/free5gc-amf/values.yaml index f247819..7c332a5 100644 --- a/charts/free5gc/charts/free5gc-amf/values.yaml +++ b/charts/free5gc/charts/free5gc-amf/values.yaml @@ -50,9 +50,9 @@ global: initcontainers: curl: - registry: towards5gs - image: initcurl - tag: "1.0.0" + registry: curlimages + image: curl + tag: "8.7.1" busybox: image: busybox tag: "1.32.0" @@ -64,7 +64,7 @@ amf: replicaCount: 1 image: name: free5gc/amf - tag: v3.3.0 + tag: v3.4.2 pullPolicy: Always service: type: ClusterIP @@ -72,6 +72,7 @@ amf: volume: mount: /free5gc/config/ tlsmount: /free5gc/config/TLS + certmount: /free5gc/cert podAnnotations: {} # additional annotations imagePullSecrets: [] @@ -194,6 +195,11 @@ amf: enable: true # true or false expireTime: 6s # default is 6 seconds maxRetryTimes: 4 # the max number of retransmission + # retransmission timer for NAS Configuration Update Command message + t3555: + enable: true # true or false + expireTime: 6s # default is 6 seconds + maxRetryTimes: 4 # the max number of retransmission # retransmission timer for NAS Authentication Request/Security Mode Command message t3560: enable: true # true or false diff --git a/charts/free5gc/charts/free5gc-ausf/templates/ausf-configmap.yaml b/charts/free5gc/charts/free5gc-ausf/templates/ausf-configmap.yaml index cd9aa4a..fb2b9cc 100644 --- a/charts/free5gc/charts/free5gc-ausf/templates/ausf-configmap.yaml +++ b/charts/free5gc/charts/free5gc-ausf/templates/ausf-configmap.yaml @@ -37,6 +37,7 @@ data: pem: ./cert/ausf.pem nrfUri: {{ $.Values.global.sbi.scheme }}://{{ $.Values.global.nrf.service.name }}:{{ $.Values.global.nrf.service.port }} + nrfCertPem: ./cert/nrf.pem # NRF Certificate {{- .configuration.configuration | nindent 6 }} diff --git a/charts/free5gc/charts/free5gc-ausf/templates/ausf-deployment.yaml b/charts/free5gc/charts/free5gc-ausf/templates/ausf-deployment.yaml index c85103a..3e9cb23 100644 --- a/charts/free5gc/charts/free5gc-ausf/templates/ausf-deployment.yaml +++ b/charts/free5gc/charts/free5gc-ausf/templates/ausf-deployment.yaml @@ -70,6 +70,8 @@ spec: name: {{ include "free5gc-ausf.fullname" $ }}-volume - mountPath: {{ .volume.tlsmount }} name: {{ include "free5gc-ausf.fullname" $ }}-empty-volume + - mountPath: {{ .volume.certmount }} + name: {{ include "free5gc-ausf.fullname" $ }}-cert-pvc resources: {{- toYaml .resources | nindent 12 }} dnsPolicy: ClusterFirst @@ -89,4 +91,7 @@ spec: name: {{ include "free5gc-ausf.fullname" $ }}-configmap - name: {{ include "free5gc-ausf.fullname" $ }}-empty-volume emptyDir: {} + - name: {{ include "free5gc-ausf.fullname" $ }}-cert-pvc + persistentVolumeClaim: + claimName: cert-pvc {{- end }} diff --git a/charts/free5gc/charts/free5gc-ausf/values.yaml b/charts/free5gc/charts/free5gc-ausf/values.yaml index 6d04b17..658ac34 100644 --- a/charts/free5gc/charts/free5gc-ausf/values.yaml +++ b/charts/free5gc/charts/free5gc-ausf/values.yaml @@ -30,9 +30,9 @@ global: initcontainers: curl: - registry: towards5gs - image: initcurl - tag: "1.0.0" + registry: curlimages + image: curl + tag: "8.7.1" busybox: image: busybox tag: "1.32.0" @@ -42,7 +42,7 @@ ausf: replicaCount: 1 image: name: free5gc/ausf - tag: v3.3.0 + tag: v3.4.2 pullPolicy: Always service: type: ClusterIP @@ -50,6 +50,7 @@ ausf: volume: mount: /free5gc/config/ tlsmount: /free5gc/config/TLS + certmount: /free5gc/cert podAnnotations: {} # additional annotations imagePullSecrets: [] diff --git a/charts/free5gc/charts/free5gc-chf/.helmignore b/charts/free5gc/charts/free5gc-chf/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/charts/free5gc/charts/free5gc-chf/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/free5gc/charts/free5gc-chf/Chart.yaml b/charts/free5gc/charts/free5gc-chf/Chart.yaml new file mode 100644 index 0000000..8e46796 --- /dev/null +++ b/charts/free5gc/charts/free5gc-chf/Chart.yaml @@ -0,0 +1,12 @@ +# +# Software Name : free5gc-helm +# +apiVersion: v2 +name: free5gc-chf +description: A Helm chart to deploy the free5GC CHF +type: application +version: 0.1.0 +appVersion: latest +maintainers: +- email: linyangzhe0508@gmail.com + name: YANG-ZHE, LIN diff --git a/charts/free5gc/charts/free5gc-chf/templates/NOTES.txt b/charts/free5gc/charts/free5gc-chf/templates/NOTES.txt new file mode 100644 index 0000000..229eab5 --- /dev/null +++ b/charts/free5gc/charts/free5gc-chf/templates/NOTES.txt @@ -0,0 +1,27 @@ +# +# Software Name : free5gc-helm +# +{{- with .Values.chf }} +1. Get the application URL by running these commands: +{{- if .ingress.enabled }} +{{- range $host := .ingress.hosts }} + {{- range .paths }} + http{{ if $.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .service.type }} + export NODE_PORT=$(kubectl get --namespace {{ $.Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ .service.name }}) + export NODE_IP=$(kubectl get nodes --namespace {{ $.Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ $.Release.Namespace }} svc -w {{ .service.name }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ $.Release.Namespace }} {{ .service.name }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .service.port }} +{{- else if contains "ClusterIP" .service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ $.Release.Namespace }} -l "app.kubernetes.io/name={{ include "free5gc-chf.name" $ }},app.kubernetes.io/instance={{ $.Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export CONTAINER_PORT=$(kubectl get pod --namespace {{ $.Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ $.Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT +{{- end }} +{{- end }} diff --git a/charts/free5gc/charts/free5gc-chf/templates/_helpers.tpl b/charts/free5gc/charts/free5gc-chf/templates/_helpers.tpl new file mode 100644 index 0000000..108e425 --- /dev/null +++ b/charts/free5gc/charts/free5gc-chf/templates/_helpers.tpl @@ -0,0 +1,65 @@ +# +# Software Name : free5gc-helm +# +{{/* +Expand the name of the chart. +*/}} +{{- define "free5gc-chf.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "free5gc-chf.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "free5gc-chf.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "free5gc-chf.labels" -}} +helm.sh/chart: {{ include "free5gc-chf.chart" . }} +{{ include "free5gc-chf.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "free5gc-chf.selectorLabels" -}} +app.kubernetes.io/name: {{ include "free5gc-chf.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +CHF Pod Annotations +*/}} +{{- define "free5gc-chf.chfAnnotations" -}} +{{- with .Values.chf }} +{{- if .podAnnotations }} +{{- toYaml .podAnnotations }} +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/free5gc/charts/free5gc-chf/templates/chf-configmap.yaml b/charts/free5gc/charts/free5gc-chf/templates/chf-configmap.yaml new file mode 100644 index 0000000..6efac27 --- /dev/null +++ b/charts/free5gc/charts/free5gc-chf/templates/chf-configmap.yaml @@ -0,0 +1,67 @@ +# +# Software Name : free5gc-helm +# +{{- with .Values.chf }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "free5gc-chf.fullname" $ }}-configmap + labels: + app: {{ $.Values.global.projectName }} +data: + chfcfg.yaml: | + info: + version: 1.0.3 + description: CHF initial local configuration + + configuration: + chfName: CHF # the name of this CHF + sbi: # Service-based interface information + scheme: {{ $.Values.global.sbi.scheme }} # the protocol for sbi (http or https) + registerIPv4: {{ include "free5gc-chf.fullname" $ }}-service # IP used to register to NRF + bindingIPv4: 0.0.0.0 # IP used to bind the service + port: {{ .service.port }} # port used to bind the service + tls: # the local path of TLS key + pem: ./cert/chf.pem # CHF TLS Certificate + key: ./cert/chf.key # CHF TLS Private key + + nrfUri: {{ $.Values.global.sbi.scheme }}://{{ $.Values.global.nrf.service.name }}:{{ $.Values.global.nrf.service.port }} # a valid URI of NRF + nrfCertPem: ./nrf-cert/nrf.pem # NRF Certificate + serviceNameList: # the SBI services provided by this CHF, refer to TS 32.291 + {{- .configuration.serviceNameList | nindent 8 }} + mongodb: # the mongodb connected by this CHF + name: free5gc # name of the mongodb + url: mongodb://{{ $.Values.mongodb.service.name }}:{{ $.Values.mongodb.service.port }} # a valid URL of the mongodb + + quotaValidityTime: 10000 + volumeLimit: 50000 + volumeLimitPDU: 10000 + volumeThresholdRate: 0.8 + + cgf: + hostIPv4: {{ $.Values.global.webui.service.name }} + port: {{ $.Values.global.webui.service.port }} + listenPort: {{ $.Values.global.cgf.service.port }} + tls: + pem: ./cert/chf.pem + key: ./cert/chf.key + cdrFilePath: /tmp + abmfDiameter: + protocol: tcp + hostIPv4: 0.0.0.0 + port: 3868 + tls: + pem: ./cert/chf.pem + key: ./cert/chf.key + rfDiameter: + protocol: tcp + hostIPv4: 0.0.0.0 + port: 3869 + tls: + pem: ./cert/chf.pem # CHF TLS Certificate + key: ./cert/chf.key # CHF TLS Private key + + logger: # log output setting + {{- toYaml .configuration.logger | nindent 6 }} + +{{- end }} diff --git a/charts/free5gc/charts/free5gc-chf/templates/chf-deployment.yaml b/charts/free5gc/charts/free5gc-chf/templates/chf-deployment.yaml new file mode 100644 index 0000000..84abbec --- /dev/null +++ b/charts/free5gc/charts/free5gc-chf/templates/chf-deployment.yaml @@ -0,0 +1,89 @@ +# +# Software Name : free5gc-helm +# +{{- with .Values.chf }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "free5gc-chf.fullname" $ }}-{{ .name }} + labels: + {{- include "free5gc-chf.labels" $ | nindent 4 }} + project: {{ $.Values.global.projectName }} + nf: {{ .name }} +spec: + {{- if not .autoscaling.enabled }} + replicas: {{ .replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "free5gc-chf.selectorLabels" $ | nindent 6 }} + project: {{ $.Values.global.projectName }} + nf: {{ .name }} + template: + metadata: + annotations: + {{- include "free5gc-chf.chfAnnotations" $ | nindent 8 }} + checksum/config: {{ include (print $.Template.BasePath "/chf-configmap.yaml") $ | sha256sum }} + labels: + {{- include "free5gc-chf.selectorLabels" $ | nindent 8 }} + project: {{ $.Values.global.projectName }} + nf: {{ .name }} + spec: + imagePullSecrets: + {{- toYaml .imagePullSecrets | nindent 8 }} + securityContext: + {{- toYaml .podSecurityContext | nindent 8 }} + initContainers: + - name: wait-nrf + {{- with $.Values.initcontainers.curl }} + image: {{ .registry }}/{{ .image }}:{{ .tag }} + {{- end }} + env: + - name: DEPENDENCIES + value: {{ $.Values.global.sbi.scheme }}://{{ $.Values.global.nrf.service.name }}:{{ $.Values.global.nrf.service.port }} + command: ['sh', '-c', 'set -x; for dependency in $DEPENDENCIES; do while [ $(curl --insecure --connect-timeout 1 -s -o /dev/null -w "%{http_code}" $dependency) -ne 200 ]; do echo waiting for dependencies; sleep 1; done; done;'] + containers: + - name: {{ .name }} + securityContext: + {{- toYaml .securityContext | nindent 12 }} + image: {{ .image.name }}:{{ .image.tag | default $.Chart.AppVersion }} + imagePullPolicy: {{ .image.pullPolicy }} + securityContext: + {{- toYaml .securityContext | nindent 12 }} + ports: + - containerPort: {{ .service.port }} + command: ["./chf"] + args: ["-c", "./config/chfcfg.yaml"] + env: + - name: GIN_MODE + value: release + volumeMounts: + - mountPath: {{ .volume.mount }} + name: {{ include "free5gc-chf.fullname" $ }}-volume + - mountPath: {{ .volume.tlsmount }} + name: {{ include "free5gc-chf.fullname" $ }}-empty-volume + - mountPath: {{ .volume.certmount }} + name: {{ include "free5gc-chf.fullname" $ }}-cert-pvc + resources: + {{- toYaml .resources | nindent 12 }} + dnsPolicy: ClusterFirst + restartPolicy: Always + nodeSelector: + {{- toYaml .nodeSelector | nindent 8 }} + affinity: + {{- toYaml .affinity | nindent 8 }} + tolerations: + {{- toYaml .tolerations | nindent 8 }} + + volumes: + - name: {{ include "free5gc-chf.fullname" $ }}-volume + projected: + sources: + - configMap: + name: {{ include "free5gc-chf.fullname" $ }}-configmap + - name: {{ include "free5gc-chf.fullname" $ }}-empty-volume + emptyDir: {} + - name: {{ include "free5gc-chf.fullname" $ }}-cert-pvc + persistentVolumeClaim: + claimName: cert-pvc +{{- end }} diff --git a/charts/free5gc/charts/free5gc-chf/templates/chf-hpa.yaml b/charts/free5gc/charts/free5gc-chf/templates/chf-hpa.yaml new file mode 100644 index 0000000..05bc414 --- /dev/null +++ b/charts/free5gc/charts/free5gc-chf/templates/chf-hpa.yaml @@ -0,0 +1,37 @@ +# +# Software Name : free5gc-helm +# +{{- with .Values.chf }} +{{- if .autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "free5gc-chf.fullname" $ }}-{{ .name }}-hpa + labels: + {{- include "free5gc-chf.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "free5gc-chf.fullname" $ }}-{{ .name }} + minReplicas: {{ .autoscaling.minReplicas }} + maxReplicas: {{ .autoscaling.maxReplicas }} + metrics: + {{- if .autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} +{{- end }} +{{- end }} diff --git a/charts/free5gc/charts/free5gc-chf/templates/chf-ingress.yaml b/charts/free5gc/charts/free5gc-chf/templates/chf-ingress.yaml new file mode 100644 index 0000000..80be878 --- /dev/null +++ b/charts/free5gc/charts/free5gc-chf/templates/chf-ingress.yaml @@ -0,0 +1,46 @@ +# +# Software Name : free5gc-helm +# +{{- with .Values.chf }} +{{- if .ingress.enabled -}} +{{- $fullName := .service.name -}} +{{- $svcPort := .service.port -}} +{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "free5gc-chf.labels" . | nindent 4 }} + project: {{ $.Values.global.projectName }} + nf: {{ .name }} + annotations: + {{- toYaml .ingress.annotations | nindent 4 }} +spec: + {{- if .ingress.tls }} + tls: + {{- range .ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + backend: + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/charts/free5gc/charts/free5gc-chf/templates/chf-service.yaml b/charts/free5gc/charts/free5gc-chf/templates/chf-service.yaml new file mode 100644 index 0000000..c9868d2 --- /dev/null +++ b/charts/free5gc/charts/free5gc-chf/templates/chf-service.yaml @@ -0,0 +1,46 @@ +# +# Software Name : free5gc-helm +# +{{- with .Values.chf }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "free5gc-chf.fullname" $ }}-service + labels: + {{- include "free5gc-chf.labels" $ | nindent 4 }} + project: {{ $.Values.global.projectName }} + nf: {{ .name }} +spec: + type: {{ .service.type }} + ports: + - port: {{ .service.port }} + targetPort: {{ .service.port }} + protocol: TCP + name: http + selector: + {{- include "free5gc-chf.selectorLabels" $ | nindent 4 }} + project: {{ $.Values.global.projectName }} + nf: {{ .name }} +{{- end}} +--- +{{- with .Values.global}} +apiVersion: v1 +kind: Service +metadata: + name: {{ .cgf.service.name }} + labels: + {{- include "free5gc-chf.labels" $ | nindent 4 }} + project: {{ .projectName }} + nf: {{ $.Values.chf.name }} +spec: + type: {{ .cgf.service.type }} + ports: + - port: {{ .cgf.service.port }} + targetPort: {{ .cgf.service.port }} + protocol: TCP + name: {{ .cgf.service.name }} + selector: + {{- include "free5gc-chf.selectorLabels" $ | nindent 4 }} + project: {{ .projectName }} + nf: {{ $.Values.chf.name }} +{{- end}} diff --git a/charts/free5gc/charts/free5gc-chf/templates/tests/test-connection.yaml b/charts/free5gc/charts/free5gc-chf/templates/tests/test-connection.yaml new file mode 100644 index 0000000..2b816bc --- /dev/null +++ b/charts/free5gc/charts/free5gc-chf/templates/tests/test-connection.yaml @@ -0,0 +1,20 @@ +# +# Software Name : free5gc-helm +# +{{- with .Values.chf }} +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "free5gc-chf.fullname" $ }}-test-connection" + labels: + {{- include "free5gc-chf.labels" $ | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ .service.name }}:{{ .service.port }}'] + restartPolicy: Never +{{- end }} diff --git a/charts/free5gc/charts/free5gc-chf/values.yaml b/charts/free5gc/charts/free5gc-chf/values.yaml new file mode 100644 index 0000000..dec1c31 --- /dev/null +++ b/charts/free5gc/charts/free5gc-chf/values.yaml @@ -0,0 +1,109 @@ +# +# Software Name : free5gc-helm +# +nameOverride: "" +fullnameOverride: "" + +global: + projectName: free5gc + nrf: + service: + name: nrf-nnrf + type: ClusterIP + port: "8000" + nodePort: "30800" + webui: + service: + name: webui-nbiling + type: ClusterIP + port: "2122" + cgf: + service: + name: webui-ncgf + type: ClusterIP + port: "2121" + sbi: + scheme: http + +initcontainers: + curl: + registry: curlimages + image: curl + tag: "8.7.1" + busybox: + image: busybox + tag: "1.32.0" + +# This section can be used to override the default values in the MongoDB chart (remember MongoDB is a subchart of the free5gcControlplane chart since control plane NFs rely on it. +mongodb: + service: + name: mongodb + type: ClusterIP + port: 27017 + nodePort: "30017" + +chf: + name: chf + replicaCount: 1 + image: + name: free5gc/chf + tag: v3.4.2 + pullPolicy: Always + service: + type: ClusterIP + port: 80 + configmap: + name: chf-configmap + volume: + mount: /free5gc/config/ + tlsmount: /free5gc/config/TLS + certmount: /free5gc/nrf-cert + podAnnotations: {} + # additional annotations + imagePullSecrets: [] + podSecurityContext: {} + securityContext: {} + resources: + requests: + cpu: 100m + memory: 128Mi + readinessProbe: + initialDelaySeconds: 0 + periodSeconds: 1 + timeoutSeconds: 1 + failureThreshold: 40 + successThreshold: 1 + livenessProbe: + initialDelaySeconds: 120 + periodSeconds: 10 + timeoutSeconds: 10 + failureThreshold: 3 + successThreshold: 1 + nodeSelector: {} + tolerations: [] + affinity: {} + autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + ingress: + enabled: false + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: [] + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + configuration: + serviceNameList: |- + - nchf-convergedcharging # Nchf_AMPolicyControl service + logger: # log output setting + enable: true # true or false + level: info # how detailed to output, value: trace, debug, info, warn, error, fatal, panic + reportCaller: false # enable the caller report or not, value: true or false diff --git a/charts/free5gc/charts/free5gc-n3iwf/values.yaml b/charts/free5gc/charts/free5gc-n3iwf/values.yaml index 5afad27..a28ca55 100644 --- a/charts/free5gc/charts/free5gc-n3iwf/values.yaml +++ b/charts/free5gc/charts/free5gc-n3iwf/values.yaml @@ -50,7 +50,7 @@ n3iwf: replicaCount: 1 image: name: free5gc/n3iwf - tag: v3.3.0 + tag: v3.4.2 pullPolicy: Always configmap: name: n3iwf-configmap diff --git a/charts/free5gc/charts/free5gc-nrf/charts/mongodb-10.7.0.tgz b/charts/free5gc/charts/free5gc-nrf/charts/mongodb-10.7.0.tgz deleted file mode 100644 index 2c2ef26..0000000 Binary files a/charts/free5gc/charts/free5gc-nrf/charts/mongodb-10.7.0.tgz and /dev/null differ diff --git a/charts/free5gc/charts/free5gc-nrf/charts/mongodb-15.6.0.tgz b/charts/free5gc/charts/free5gc-nrf/charts/mongodb-15.6.0.tgz new file mode 100644 index 0000000..740c499 Binary files /dev/null and b/charts/free5gc/charts/free5gc-nrf/charts/mongodb-15.6.0.tgz differ diff --git a/charts/free5gc/charts/free5gc-nrf/templates/nrf-configmap.yaml b/charts/free5gc/charts/free5gc-nrf/templates/nrf-configmap.yaml index 8a1f703..fb3030f 100644 --- a/charts/free5gc/charts/free5gc-nrf/templates/nrf-configmap.yaml +++ b/charts/free5gc/charts/free5gc-nrf/templates/nrf-configmap.yaml @@ -38,6 +38,10 @@ data: cert: key: ./cert/nrf.key pem: ./cert/nrf.pem + rootcert: # the local path of root CA certs + pem: cert/nrf.pem + key: cert/nrf.key + {{- .configuration.oauthConfiguration | nindent 8 }} {{- .configuration.configuration | nindent 6 }} diff --git a/charts/free5gc/charts/free5gc-nrf/templates/nrf-deployment.yaml b/charts/free5gc/charts/free5gc-nrf/templates/nrf-deployment.yaml index 8f85e3d..72a41a1 100644 --- a/charts/free5gc/charts/free5gc-nrf/templates/nrf-deployment.yaml +++ b/charts/free5gc/charts/free5gc-nrf/templates/nrf-deployment.yaml @@ -73,6 +73,8 @@ spec: name: {{ include "free5gc-nrf.fullname" $ }}-volume - mountPath: {{ .volume.tlsmount }} name: {{ include "free5gc-nrf.fullname" $ }}-empty-volume + - mountPath: {{ .volume.certmount }} + name: {{ include "free5gc-nrf.fullname" $ }}-cert-pvc resources: {{- toYaml .resources | nindent 12 }} readinessProbe: @@ -110,4 +112,7 @@ spec: name: {{ include "free5gc-nrf.fullname" $ }}-configmap - name: {{ include "free5gc-nrf.fullname" $ }}-empty-volume emptyDir: {} + - name: {{ include "free5gc-nrf.fullname" $ }}-cert-pvc + persistentVolumeClaim: + claimName: cert-pvc {{- end }} diff --git a/charts/free5gc/charts/free5gc-nrf/templates/nrf-pvc.yaml b/charts/free5gc/charts/free5gc-nrf/templates/nrf-pvc.yaml new file mode 100644 index 0000000..e95a73d --- /dev/null +++ b/charts/free5gc/charts/free5gc-nrf/templates/nrf-pvc.yaml @@ -0,0 +1,18 @@ +# +# Software Name : free5gc-helm +# +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: cert-pvc + labels: + project: {{ $.Values.global.projectName }} +spec: + selector: + matchLabels: + project: {{ $.Values.global.projectName }} + accessModes: + - ReadOnlyMany + resources: + requests: + storage: 1Mi diff --git a/charts/free5gc/charts/free5gc-nrf/values.yaml b/charts/free5gc/charts/free5gc-nrf/values.yaml index b846ac3..32a9381 100644 --- a/charts/free5gc/charts/free5gc-nrf/values.yaml +++ b/charts/free5gc/charts/free5gc-nrf/values.yaml @@ -30,9 +30,9 @@ global: initcontainers: curl: - registry: towards5gs - image: initcurl - tag: "1.0.0" + registry: curlimages + image: curl + tag: "8.7.1" busybox: image: busybox tag: "1.32.0" @@ -59,11 +59,12 @@ nrf: replicaCount: 1 image: name: free5gc/nrf - tag: v3.3.0 + tag: v3.4.2 pullPolicy: Always volume: mount: /free5gc/config/ tlsmount: /free5gc/config/TLS + certmount: /free5gc/cert podAnnotations: {} # additional annotations imagePullSecrets: [] @@ -110,6 +111,8 @@ nrf: serviceNameList: |- - nnrf-nfm - nnrf-disc + oauthConfiguration: |- + oauth: true configuration: |- DefaultPlmnId: mcc: 208 diff --git a/charts/free5gc/charts/free5gc-nssf/templates/nssf-configmap.yaml b/charts/free5gc/charts/free5gc-nssf/templates/nssf-configmap.yaml index 89f0db2..19a9f1f 100644 --- a/charts/free5gc/charts/free5gc-nssf/templates/nssf-configmap.yaml +++ b/charts/free5gc/charts/free5gc-nssf/templates/nssf-configmap.yaml @@ -37,6 +37,7 @@ data: pem: ./cert/nssf.pem nrfUri: {{ $.Values.global.sbi.scheme }}://{{ $.Values.global.nrf.service.name }}:{{ $.Values.global.nrf.service.port }} + nrfCertPem: cert/nrf.pem nsiList: - snssai: diff --git a/charts/free5gc/charts/free5gc-nssf/templates/nssf-deployment.yaml b/charts/free5gc/charts/free5gc-nssf/templates/nssf-deployment.yaml index 33eb31c..d6da883 100644 --- a/charts/free5gc/charts/free5gc-nssf/templates/nssf-deployment.yaml +++ b/charts/free5gc/charts/free5gc-nssf/templates/nssf-deployment.yaml @@ -70,6 +70,8 @@ spec: name: {{ include "free5gc-nssf.fullname" $ }}-volume - mountPath: {{ .volume.tlsmount }} name: {{ include "free5gc-nssf.fullname" $ }}-empty-volume + - mountPath: {{ .volume.certmount }} + name: {{ include "free5gc-nssf.fullname" $ }}-cert-pvc resources: {{- toYaml .resources | nindent 12 }} dnsPolicy: ClusterFirst @@ -89,4 +91,7 @@ spec: name: {{ include "free5gc-nssf.fullname" $ }}-configmap - name: {{ include "free5gc-nssf.fullname" $ }}-empty-volume emptyDir: {} + - name: {{ include "free5gc-nssf.fullname" $ }}-cert-pvc + persistentVolumeClaim: + claimName: cert-pvc {{- end }} diff --git a/charts/free5gc/charts/free5gc-nssf/values.yaml b/charts/free5gc/charts/free5gc-nssf/values.yaml index f5ab3ef..da50e52 100644 --- a/charts/free5gc/charts/free5gc-nssf/values.yaml +++ b/charts/free5gc/charts/free5gc-nssf/values.yaml @@ -30,9 +30,9 @@ global: initcontainers: curl: - registry: towards5gs - image: initcurl - tag: "1.0.0" + registry: curlimages + image: curl + tag: "8.7.1" busybox: image: busybox tag: "1.32.0" @@ -42,7 +42,7 @@ nssf: replicaCount: 1 image: name: free5gc/nssf - tag: v3.3.0 + tag: v3.4.2 pullPolicy: Always service: type: ClusterIP @@ -50,6 +50,7 @@ nssf: volume: mount: /free5gc/config/ tlsmount: /free5gc/config/TLS + certmount: /free5gc/cert podAnnotations: {} # additional annotations imagePullSecrets: [] diff --git a/charts/free5gc/charts/free5gc-pcf/templates/pcf-configmap.yaml b/charts/free5gc/charts/free5gc-pcf/templates/pcf-configmap.yaml index 29119d5..2e91e0e 100644 --- a/charts/free5gc/charts/free5gc-pcf/templates/pcf-configmap.yaml +++ b/charts/free5gc/charts/free5gc-pcf/templates/pcf-configmap.yaml @@ -41,6 +41,7 @@ data: url: mongodb://{{ $.Values.mongodb.service.name }}:{{ $.Values.mongodb.service.port }} # a valid URL of the mongodb nrfUri: {{ $.Values.global.sbi.scheme }}://{{ $.Values.global.nrf.service.name }}:{{ $.Values.global.nrf.service.port }} + nrfCertPem: cert/nrf.pem {{- .configuration.configuration | nindent 6 }} diff --git a/charts/free5gc/charts/free5gc-pcf/templates/pcf-deployment.yaml b/charts/free5gc/charts/free5gc-pcf/templates/pcf-deployment.yaml index b7dfb30..fa679d1 100644 --- a/charts/free5gc/charts/free5gc-pcf/templates/pcf-deployment.yaml +++ b/charts/free5gc/charts/free5gc-pcf/templates/pcf-deployment.yaml @@ -71,6 +71,8 @@ spec: name: {{ include "free5gc-pcf.fullname" $ }}-volume - mountPath: {{ .volume.tlsmount }} name: {{ include "free5gc-pcf.fullname" $ }}-empty-volume + - mountPath: {{ .volume.certmount }} + name: {{ include "free5gc-pcf.fullname" $ }}-cert-pvc resources: {{- toYaml .resources | nindent 12 }} dnsPolicy: ClusterFirst @@ -90,4 +92,7 @@ spec: name: {{ include "free5gc-pcf.fullname" $ }}-configmap - name: {{ include "free5gc-pcf.fullname" $ }}-empty-volume emptyDir: {} + - name: {{ include "free5gc-pcf.fullname" $ }}-cert-pvc + persistentVolumeClaim: + claimName: cert-pvc {{- end }} diff --git a/charts/free5gc/charts/free5gc-pcf/values.yaml b/charts/free5gc/charts/free5gc-pcf/values.yaml index 5495c72..cf90099 100644 --- a/charts/free5gc/charts/free5gc-pcf/values.yaml +++ b/charts/free5gc/charts/free5gc-pcf/values.yaml @@ -30,9 +30,9 @@ global: initcontainers: curl: - registry: towards5gs - image: initcurl - tag: "1.0.0" + registry: curlimages + image: curl + tag: "8.7.1" busybox: image: busybox tag: "1.32.0" @@ -50,7 +50,7 @@ pcf: replicaCount: 1 image: name: free5gc/pcf - tag: v3.3.0 + tag: v3.4.2 pullPolicy: Always service: type: ClusterIP @@ -58,6 +58,7 @@ pcf: volume: mount: /free5gc/config/ tlsmount: /free5gc/config/TLS + certmount: /free5gc/cert podAnnotations: {} # additional annotations imagePullSecrets: [] diff --git a/charts/free5gc/charts/free5gc-smf/templates/smf-configmap.yaml b/charts/free5gc/charts/free5gc-smf/templates/smf-configmap.yaml index 9597026..37af6bb 100644 --- a/charts/free5gc/charts/free5gc-smf/templates/smf-configmap.yaml +++ b/charts/free5gc/charts/free5gc-smf/templates/smf-configmap.yaml @@ -37,7 +37,8 @@ data: pem: ./cert/smf.pem nrfUri: {{ $.Values.global.sbi.scheme }}://{{ $.Values.global.nrf.service.name }}:{{ $.Values.global.nrf.service.port }} - + nrfCertPem: ./cert/nrf.pem # NRF Certificate + {{- .configuration.urrConfiguration | nindent 6 }} pfcp: nodeID: {{ $.Values.global.smf.n4if.ipAddress }} listenAddr: {{ $.Values.global.smf.n4if.ipAddress }} diff --git a/charts/free5gc/charts/free5gc-smf/templates/smf-deployment.yaml b/charts/free5gc/charts/free5gc-smf/templates/smf-deployment.yaml index f5641f7..64e8e6e 100644 --- a/charts/free5gc/charts/free5gc-smf/templates/smf-deployment.yaml +++ b/charts/free5gc/charts/free5gc-smf/templates/smf-deployment.yaml @@ -84,6 +84,8 @@ spec: name: {{ include "free5gc-smf.fullname" $ }}-volume - mountPath: {{ .volume.tlsmount }} name: {{ include "free5gc-smf.fullname" $ }}-empty-volume + - mountPath: {{ .volume.certmount }} + name: {{ include "free5gc-smf.fullname" $ }}-cert-pvc resources: {{- toYaml .resources | nindent 12 }} dnsPolicy: ClusterFirst @@ -108,4 +110,7 @@ spec: path: uerouting.yaml - name: {{ include "free5gc-smf.fullname" $ }}-empty-volume emptyDir: {} + - name: {{ include "free5gc-smf.fullname" $ }}-cert-pvc + persistentVolumeClaim: + claimName: cert-pvc {{- end }} diff --git a/charts/free5gc/charts/free5gc-smf/values.yaml b/charts/free5gc/charts/free5gc-smf/values.yaml index b7ec05f..608d693 100644 --- a/charts/free5gc/charts/free5gc-smf/values.yaml +++ b/charts/free5gc/charts/free5gc-smf/values.yaml @@ -43,9 +43,9 @@ global: initcontainers: curl: - registry: towards5gs - image: initcurl - tag: "1.0.0" + registry: curlimages + image: curl + tag: "8.7.1" busybox: image: busybox tag: "1.32.0" @@ -57,7 +57,7 @@ smf: replicaCount: 1 image: name: free5gc/smf - tag: v3.3.0 + tag: v3.4.2 pullPolicy: Always service: type: ClusterIP @@ -65,6 +65,7 @@ smf: volume: mount: /free5gc/config/ tlsmount: /free5gc/config/TLS + certmount: /free5gc/cert podAnnotations: {} # additional annotations imagePullSecrets: [] @@ -112,6 +113,10 @@ smf: - nsmf-pdusession - nsmf-event-exposure - nsmf-oam + urrConfiguration: |- + urrPeriod: 10 # default usage report period in seconds + urrThreshold: 1000 # default usage report threshold in bytes + requestedUnit: 1000 configuration: |- smfName: SMF snssaiInfos: @@ -173,21 +178,21 @@ smf: - interfaceType: N3 # the type of the interface (N3 or N9) endpoints: # the IP address of this N3/N9 interface on this UPF - 10.100.50.233 - networkInstances: - - internet # Data Network Name (DNN) + networkInstances: # Data Network Name (DNN) + - internet links: # the topology graph of userplane, A and B represent the two nodes of each link - A: gNB1 B: UPF locality: area1 # Name of the location where a set of AMF, SMF and UPFs are located t3591: - enable: true # true or false - expireTime: 16s # default is 6 seconds + enable: true # true or false + expireTime: 16s # default is 6 seconds maxRetryTimes: 3 # the max number of retransmission # retransmission timer for pdu session release command t3592: - enable: true # true or false - expireTime: 16s # default is 6 seconds + enable: true # true or false + expireTime: 16s # default is 6 seconds maxRetryTimes: 3 # the max number of retransmission ueRoutingInfo: |- diff --git a/charts/free5gc/charts/free5gc-udm/templates/udm-configmap.yaml b/charts/free5gc/charts/free5gc-udm/templates/udm-configmap.yaml index cbddc74..bf0a2f7 100644 --- a/charts/free5gc/charts/free5gc-udm/templates/udm-configmap.yaml +++ b/charts/free5gc/charts/free5gc-udm/templates/udm-configmap.yaml @@ -37,6 +37,7 @@ data: pem: ./cert/udm.pem nrfUri: {{ $.Values.global.sbi.scheme }}://{{ $.Values.global.nrf.service.name }}:{{ $.Values.global.nrf.service.port }} + nrfCertPem: cert/nrf.pem {{- .configuration.configuration | nindent 6 }} diff --git a/charts/free5gc/charts/free5gc-udm/templates/udm-deployment.yaml b/charts/free5gc/charts/free5gc-udm/templates/udm-deployment.yaml index 4036396..f1f1965 100644 --- a/charts/free5gc/charts/free5gc-udm/templates/udm-deployment.yaml +++ b/charts/free5gc/charts/free5gc-udm/templates/udm-deployment.yaml @@ -70,6 +70,8 @@ spec: name: {{ include "free5gc-udm.fullname" $ }}-volume - mountPath: {{ .volume.tlsmount }} name: {{ include "free5gc-udm.fullname" $ }}-empty-volume + - mountPath: {{ .volume.certmount }} + name: {{ include "free5gc-udm.fullname" $ }}-cert-pvc resources: {{- toYaml .resources | nindent 12 }} dnsPolicy: ClusterFirst @@ -89,4 +91,7 @@ spec: name: {{ include "free5gc-udm.fullname" $ }}-configmap - name: {{ include "free5gc-udm.fullname" $ }}-empty-volume emptyDir: {} + - name: {{ include "free5gc-udm.fullname" $ }}-cert-pvc + persistentVolumeClaim: + claimName: cert-pvc {{- end }} diff --git a/charts/free5gc/charts/free5gc-udm/values.yaml b/charts/free5gc/charts/free5gc-udm/values.yaml index 58510e0..ff7578a 100644 --- a/charts/free5gc/charts/free5gc-udm/values.yaml +++ b/charts/free5gc/charts/free5gc-udm/values.yaml @@ -30,9 +30,9 @@ global: initcontainers: curl: - registry: towards5gs - image: initcurl - tag: "1.0.0" + registry: curlimages + image: curl + tag: "8.7.1" busybox: image: busybox tag: "1.32.0" @@ -42,7 +42,7 @@ udm: replicaCount: 1 image: name: free5gc/udm - tag: v3.3.0 + tag: v3.4.2 pullPolicy: Always service: type: ClusterIP @@ -50,6 +50,7 @@ udm: volume: mount: /free5gc/config/ tlsmount: /free5gc/config/TLS + certmount: /free5gc/cert podAnnotations: {} # additional annotations imagePullSecrets: [] diff --git a/charts/free5gc/charts/free5gc-udr/charts/mongodb-10.7.0.tgz b/charts/free5gc/charts/free5gc-udr/charts/mongodb-10.7.0.tgz deleted file mode 100644 index 2c2ef26..0000000 Binary files a/charts/free5gc/charts/free5gc-udr/charts/mongodb-10.7.0.tgz and /dev/null differ diff --git a/charts/free5gc/charts/free5gc-udr/charts/mongodb-15.6.0.tgz b/charts/free5gc/charts/free5gc-udr/charts/mongodb-15.6.0.tgz new file mode 100644 index 0000000..740c499 Binary files /dev/null and b/charts/free5gc/charts/free5gc-udr/charts/mongodb-15.6.0.tgz differ diff --git a/charts/free5gc/charts/free5gc-udr/templates/udr-configmap.yaml b/charts/free5gc/charts/free5gc-udr/templates/udr-configmap.yaml index a2b126d..65a0f33 100644 --- a/charts/free5gc/charts/free5gc-udr/templates/udr-configmap.yaml +++ b/charts/free5gc/charts/free5gc-udr/templates/udr-configmap.yaml @@ -20,7 +20,7 @@ metadata: data: udrcfg.yaml: | info: - version: 1.0.2 + version: 1.1.0 description: UDR initial local configuration configuration: @@ -32,12 +32,13 @@ data: tls: key: ./cert/udr.key pem: ./cert/udr.pem - + dbConnectorType: mongodb mongodb: name: free5gc url: mongodb://{{ $.Values.mongodb.service.name }}:{{ $.Values.mongodb.service.port }} nrfUri: {{ $.Values.global.sbi.scheme }}://{{ $.Values.global.nrf.service.name }}:{{ $.Values.global.nrf.service.port }} + nrfCertPem: cert/nrf.pem logger: {{- toYaml .configuration.logger | nindent 6 }} diff --git a/charts/free5gc/charts/free5gc-udr/templates/udr-deployment.yaml b/charts/free5gc/charts/free5gc-udr/templates/udr-deployment.yaml index c5b97b6..d203eb9 100644 --- a/charts/free5gc/charts/free5gc-udr/templates/udr-deployment.yaml +++ b/charts/free5gc/charts/free5gc-udr/templates/udr-deployment.yaml @@ -72,6 +72,8 @@ spec: name: {{ include "free5gc-udr.fullname" $ }}-volume - mountPath: {{ .volume.tlsmount }} name: {{ include "free5gc-udr.fullname" $ }}-empty-volume + - mountPath: {{ .volume.certmount }} + name: {{ include "free5gc-udr.fullname" $ }}-cert-pvc resources: {{- toYaml .resources | nindent 12 }} dnsPolicy: ClusterFirst @@ -91,4 +93,7 @@ spec: name: {{ include "free5gc-udr.fullname" $ }}-configmap - name: {{ include "free5gc-udr.fullname" $ }}-empty-volume emptyDir: {} + - name: {{ include "free5gc-udr.fullname" $ }}-cert-pvc + persistentVolumeClaim: + claimName: cert-pvc {{- end }} diff --git a/charts/free5gc/charts/free5gc-udr/values.yaml b/charts/free5gc/charts/free5gc-udr/values.yaml index 36ae0f9..cbacbfd 100644 --- a/charts/free5gc/charts/free5gc-udr/values.yaml +++ b/charts/free5gc/charts/free5gc-udr/values.yaml @@ -30,9 +30,9 @@ global: initcontainers: curl: - registry: towards5gs - image: initcurl - tag: "1.0.0" + registry: curlimages + image: curl + tag: "8.7.1" busybox: image: busybox tag: "1.32.0" @@ -52,7 +52,7 @@ udr: replicaCount: 1 image: name: free5gc/udr - tag: v3.3.0 + tag: v3.4.2 pullPolicy: Always service: type: ClusterIP @@ -60,6 +60,7 @@ udr: volume: mount: /free5gc/config/ tlsmount: /free5gc/config/TLS + certmount: /free5gc/cert podAnnotations: {} # additional annotations imagePullSecrets: [] diff --git a/charts/free5gc/charts/free5gc-upf/templates/upf/upf-configmap.yaml b/charts/free5gc/charts/free5gc-upf/templates/upf/upf-configmap.yaml index 6f6c866..c106eeb 100644 --- a/charts/free5gc/charts/free5gc-upf/templates/upf/upf-configmap.yaml +++ b/charts/free5gc/charts/free5gc-upf/templates/upf/upf-configmap.yaml @@ -25,7 +25,7 @@ data: # The listen IP and nodeID of the N4 interface on this UPF (Can't set to 0.0.0.0) pfcp: - addr: {{ .n4if.ipAddress }} # IP addr for listening + addr: {{ .n4if.ipAddress }} # IP addr for listening nodeID: {{ .n4if.ipAddress }} # External IP or FQDN can be reached retransTimeout: 1s # retransmission timeout maxRetrans: 3 # the max number of retransmission diff --git a/charts/free5gc/charts/free5gc-upf/templates/upf1/upf1-configmap.yaml b/charts/free5gc/charts/free5gc-upf/templates/upf1/upf1-configmap.yaml index cf913be..703b0d5 100644 --- a/charts/free5gc/charts/free5gc-upf/templates/upf1/upf1-configmap.yaml +++ b/charts/free5gc/charts/free5gc-upf/templates/upf1/upf1-configmap.yaml @@ -25,7 +25,7 @@ data: # The listen IP and nodeID of the N4 interface on this UPF (Can't set to 0.0.0.0) pfcp: - addr: {{ .n4if.ipAddress }} # IP addr for listening + addr: {{ .n4if.ipAddress }} # IP addr for listening nodeID: {{ .n4if.ipAddress }} # External IP or FQDN can be reached retransTimeout: 1s # retransmission timeout maxRetrans: 3 # the max number of retransmission @@ -56,7 +56,7 @@ data: {{- $.Values.upf1.configmap.wrapperAdditionalCommands | toYaml | indent 2 }} {{- end }} - /free5gc/upf/upf -c {{ .volume.mount }}/upfcfg.yaml + /free5gc/upf -c {{ .volume.mount }}/upfcfg.yaml {{- end }} {{- end }} diff --git a/charts/free5gc/charts/free5gc-upf/templates/upf1/upf1-deployment.yaml b/charts/free5gc/charts/free5gc-upf/templates/upf1/upf1-deployment.yaml index 9476395..419c81f 100644 --- a/charts/free5gc/charts/free5gc-upf/templates/upf1/upf1-deployment.yaml +++ b/charts/free5gc/charts/free5gc-upf/templates/upf1/upf1-deployment.yaml @@ -74,6 +74,8 @@ spec: volumeMounts: - mountPath: {{ .volume.mount }} name: {{ include "free5gc-upf.fullname" $ }}-{{ .name }}-volume + - mountPath: {{ .volume.tlsmount }} + name: {{ include "free5gc-upf.fullname" $ }}-{{ .name }}-empty-volume resources: {{- toYaml .resources | nindent 12 }} dnsPolicy: ClusterFirst @@ -97,5 +99,7 @@ spec: - key: wrapper.sh path: wrapper.sh mode: 0777 + - name: {{ include "free5gc-upf.fullname" $ }}-{{ .name }}-empty-volume + emptyDir: {} {{- end }} {{- end }} diff --git a/charts/free5gc/charts/free5gc-upf/templates/upf2/upf2-configmap.yaml b/charts/free5gc/charts/free5gc-upf/templates/upf2/upf2-configmap.yaml index 81f7931..a5bcbc0 100644 --- a/charts/free5gc/charts/free5gc-upf/templates/upf2/upf2-configmap.yaml +++ b/charts/free5gc/charts/free5gc-upf/templates/upf2/upf2-configmap.yaml @@ -25,7 +25,7 @@ data: # The listen IP and nodeID of the N4 interface on this UPF (Can't set to 0.0.0.0) pfcp: - addr: {{ .n4if.ipAddress }} # IP addr for listening + addr: {{ .n4if.ipAddress }} # IP addr for listening nodeID: {{ .n4if.ipAddress }} # External IP or FQDN can be reached retransTimeout: 1s # retransmission timeout maxRetrans: 3 # the max number of retransmission @@ -56,7 +56,7 @@ data: {{- $.Values.upf2.configmap.wrapperAdditionalCommands | toYaml | indent 2 }} {{- end }} - /free5gc/upf/upf -c {{ .volume.mount }}/upfcfg.yaml + /free5gc/upf -c {{ .volume.mount }}/upfcfg.yaml {{- end }} {{- end }} diff --git a/charts/free5gc/charts/free5gc-upf/templates/upf2/upf2-deployment.yaml b/charts/free5gc/charts/free5gc-upf/templates/upf2/upf2-deployment.yaml index 721b9e1..216b3a8 100644 --- a/charts/free5gc/charts/free5gc-upf/templates/upf2/upf2-deployment.yaml +++ b/charts/free5gc/charts/free5gc-upf/templates/upf2/upf2-deployment.yaml @@ -74,6 +74,8 @@ spec: volumeMounts: - mountPath: {{ .volume.mount }} name: {{ include "free5gc-upf.fullname" $ }}-{{ .name }}-volume + - mountPath: {{ .volume.tlsmount }} + name: {{ include "free5gc-upf.fullname" $ }}-{{ .name }}-empty-volume resources: {{- toYaml .resources | nindent 12 }} dnsPolicy: ClusterFirst @@ -97,5 +99,7 @@ spec: - key: wrapper.sh path: wrapper.sh mode: 0777 + - name: {{ include "free5gc-upf.fullname" $ }}-{{ .name }}-empty-volume + emptyDir: {} {{- end }} {{- end }} diff --git a/charts/free5gc/charts/free5gc-upf/templates/upfb/upfb-configmap.yaml b/charts/free5gc/charts/free5gc-upf/templates/upfb/upfb-configmap.yaml index 0d34b59..7b63e64 100644 --- a/charts/free5gc/charts/free5gc-upf/templates/upfb/upfb-configmap.yaml +++ b/charts/free5gc/charts/free5gc-upf/templates/upfb/upfb-configmap.yaml @@ -25,7 +25,7 @@ data: # The listen IP and nodeID of the N4 interface on this UPF (Can't set to 0.0.0.0) pfcp: - addr: {{ .n4if.ipAddress }} # IP addr for listening + addr: {{ .n4if.ipAddress }} # IP addr for listening nodeID: {{ .n4if.ipAddress }} # External IP or FQDN can be reached retransTimeout: 1s # retransmission timeout maxRetrans: 3 # the max number of retransmission @@ -56,7 +56,7 @@ data: {{- $.Values.upfb.configmap.wrapperAdditionalCommands | toYaml | indent 2 }} {{- end }} - /free5gc/upf/upf -c {{ .volume.mount }}/upfcfg.yaml + /free5gc/upf -c {{ .volume.mount }}/upfcfg.yaml {{- end }} {{- end }} diff --git a/charts/free5gc/charts/free5gc-upf/templates/upfb/upfb-deployment.yaml b/charts/free5gc/charts/free5gc-upf/templates/upfb/upfb-deployment.yaml index e99853e..bad9507 100644 --- a/charts/free5gc/charts/free5gc-upf/templates/upfb/upfb-deployment.yaml +++ b/charts/free5gc/charts/free5gc-upf/templates/upfb/upfb-deployment.yaml @@ -79,6 +79,8 @@ spec: volumeMounts: - mountPath: {{ .volume.mount }} name: {{ include "free5gc-upf.fullname" $ }}-{{ .name }}-volume + - mountPath: {{ .volume.tlsmount }} + name: {{ include "free5gc-upf.fullname" $ }}-{{ .name }}-empty-volume resources: {{- toYaml .resources | nindent 12 }} dnsPolicy: ClusterFirst @@ -102,5 +104,7 @@ spec: - key: wrapper.sh path: wrapper.sh mode: 0777 + - name: {{ include "free5gc-upf.fullname" $ }}-{{ .name }}-empty-volume + emptyDir: {} {{- end }} {{- end }} diff --git a/charts/free5gc/charts/free5gc-upf/values.yaml b/charts/free5gc/charts/free5gc-upf/values.yaml index 57e54be..a91aa7d 100644 --- a/charts/free5gc/charts/free5gc-upf/values.yaml +++ b/charts/free5gc/charts/free5gc-upf/values.yaml @@ -62,7 +62,7 @@ upf: replicaCount: 1 image: name: free5gc/upf - tag: v3.3.0 + tag: v3.4.2 pullPolicy: Always configmap: wrapperAdditionalCommands: "" @@ -117,6 +117,9 @@ upf: - dnn: internet # Data Network Name cidr: 10.1.0.0/17 # Classless Inter-Domain Routing for assigned IPv4 pool of UE natifname: n6 + - dnn: internet # Data Network Name + cidr: 10.1.128.0/17 # Classless Inter-Domain Routing for assigned IPv4 pool of UE + natifname: n6 logger: # log output setting enable: true # true or false @@ -128,7 +131,8 @@ upf1: name: upf1 replicaCount: 1 image: - name: towards5gs/free5gc-upf + name: free5gc/upf + tag: v3.4.2 pullPolicy: Always configmap: wrapperAdditionalCommands: "" @@ -136,6 +140,7 @@ upf1: # echo "123" > /tmp/123 volume: mount: /free5gc/config/ + tlsmount: /free5gc/config/TLS # network paramters n9if: # GTP-U @@ -182,6 +187,9 @@ upf1: - dnn: internet # Data Network Name cidr: 10.1.0.0/17 # Classless Inter-Domain Routing for assigned IPv4 pool of UE natifname: n6 + - dnn: internet # Data Network Name + cidr: 10.1.128.0/17 # Classless Inter-Domain Routing for assigned IPv4 pool of UE + natifname: n6 logger: # log output setting enable: true # true or false @@ -192,7 +200,8 @@ upf2: name: upf2 replicaCount: 1 image: - name: towards5gs/free5gc-upf + name: free5gc/upf + tag: v3.4.2 pullPolicy: Always configmap: wrapperAdditionalCommands: "" @@ -200,6 +209,7 @@ upf2: # echo "123" > /tmp/123 volume: mount: /free5gc/config/ + tlsmount: /free5gc/config/TLS # network paramters n9if: # GTP-U @@ -246,6 +256,9 @@ upf2: - dnn: internet # Data Network Name cidr: 10.1.0.0/17 # Classless Inter-Domain Routing for assigned IPv4 pool of UE natifname: n6 + - dnn: internet # Data Network Name + cidr: 10.1.128.0/17 # Classless Inter-Domain Routing for assigned IPv4 pool of UE + natifname: n6 logger: # log output setting enable: true # true or false @@ -256,7 +269,8 @@ upfb: name: upfb replicaCount: 1 image: - name: towards5gs/free5gc-upf + name: free5gc/upf + tag: v3.4.2 pullPolicy: Always configmap: wrapperAdditionalCommands: "" @@ -264,6 +278,7 @@ upfb: # echo "123" > /tmp/123 volume: mount: /free5gc/config/ + tlsmount: /free5gc/config/TLS # network paramters n3if: # GTP-U @@ -312,6 +327,9 @@ upfb: - dnn: internet # Data Network Name cidr: 10.1.0.0/17 # Classless Inter-Domain Routing for assigned IPv4 pool of UE natifname: n6 + - dnn: internet # Data Network Name + cidr: 10.1.128.0/17 # Classless Inter-Domain Routing for assigned IPv4 pool of UE + natifname: n6 logger: # log output setting enable: true # true or false diff --git a/charts/free5gc/charts/free5gc-webui/charts/mongodb-10.7.0.tgz b/charts/free5gc/charts/free5gc-webui/charts/mongodb-10.7.0.tgz deleted file mode 100644 index 2c2ef26..0000000 Binary files a/charts/free5gc/charts/free5gc-webui/charts/mongodb-10.7.0.tgz and /dev/null differ diff --git a/charts/free5gc/charts/free5gc-webui/charts/mongodb-15.6.0.tgz b/charts/free5gc/charts/free5gc-webui/charts/mongodb-15.6.0.tgz new file mode 100644 index 0000000..740c499 Binary files /dev/null and b/charts/free5gc/charts/free5gc-webui/charts/mongodb-15.6.0.tgz differ diff --git a/charts/free5gc/charts/free5gc-webui/templates/webui-configmap.yaml b/charts/free5gc/charts/free5gc-webui/templates/webui-configmap.yaml index be48d41..ff48bf6 100644 --- a/charts/free5gc/charts/free5gc-webui/templates/webui-configmap.yaml +++ b/charts/free5gc/charts/free5gc-webui/templates/webui-configmap.yaml @@ -20,13 +20,31 @@ metadata: data: webuicfg.yaml: | info: - version: 1.0.1 + version: 1.0.3 description: WEBUI initial local configuration configuration: mongodb: name: free5gc url: mongodb://{{ $.Values.mongodb.service.name }}:{{ $.Values.mongodb.service.port }} + nrfUri: {{ $.Values.global.sbi.scheme }}://{{ $.Values.global.nrf.service.name }}:{{ $.Values.global.nrf.service.port }} + nrfCertPem: cert/nrf.pem + webServer: + scheme: {{ $.Values.global.sbi.scheme }} + ipv4Address: 0.0.0.0 + port: {{ .service.port }} + billingServer: + enable: true + hostIPv4: 0.0.0.0 + listenPort: {{ $.Values.global.webui.service.port }} + portRange: # passive port range + start: 2123 + end: 2130 + basePath: /tmp/webconsole + port: {{ $.Values.global.cgf.service.port }} + tls: + pem: ./cert/chf.pem + key: ./cert/chf.key logger: {{- toYaml .configuration.logger | nindent 6 }} diff --git a/charts/free5gc/charts/free5gc-webui/templates/webui-deployment.yaml b/charts/free5gc/charts/free5gc-webui/templates/webui-deployment.yaml index 5a7e93b..eb13de3 100644 --- a/charts/free5gc/charts/free5gc-webui/templates/webui-deployment.yaml +++ b/charts/free5gc/charts/free5gc-webui/templates/webui-deployment.yaml @@ -61,6 +61,7 @@ spec: {{- toYaml .securityContext | nindent 12 }} ports: - containerPort: {{ .service.port }} + - containerPort: {{ $.Values.global.webui.service.port }} command: ["./webui"] args: ["-c", "./config/webuicfg.yaml"] env: @@ -71,6 +72,8 @@ spec: name: {{ .volume.name }} - mountPath: {{ .volume.tlsmount }} name: {{ .volume.name }}-empty + - mountPath: {{ .volume.certmount }} + name: {{ include "free5gc-webui.fullname" $ }}-cert-pvc resources: {{- toYaml .resources | nindent 12 }} readinessProbe: @@ -108,4 +111,7 @@ spec: name: {{ .configmap.name }} - name: {{ .volume.name }}-empty emptyDir: {} + - name: {{ include "free5gc-webui.fullname" $ }}-cert-pvc + persistentVolumeClaim: + claimName: cert-pvc {{- end }} \ No newline at end of file diff --git a/charts/free5gc/charts/free5gc-webui/templates/webui-service.yaml b/charts/free5gc/charts/free5gc-webui/templates/webui-service.yaml index f83c1d8..215cb80 100644 --- a/charts/free5gc/charts/free5gc-webui/templates/webui-service.yaml +++ b/charts/free5gc/charts/free5gc-webui/templates/webui-service.yaml @@ -31,4 +31,26 @@ spec: {{- include "free5gc-webui.selectorLabels" $ | nindent 4 }} project: {{ $.Values.global.projectName }} nf: {{ .name }} +{{- end }} +--- +{{- with .Values.global}} +apiVersion: v1 +kind: Service +metadata: + name: {{ .webui.service.name }} + labels: + {{- include "free5gc-webui.labels" $ | nindent 4 }} + project: {{ .projectName }} + nf: {{ $.Values.webui.name }} +spec: + type: {{ .webui.service.type }} + ports: + - port: {{ .webui.service.port }} + targetPort: {{ .webui.service.port }} + protocol: TCP + name: {{ .webui.service.name }} + selector: + {{- include "free5gc-webui.selectorLabels" $ | nindent 4 }} + project: {{ .projectName }} + nf: {{ $.Values.webui.name }} {{- end }} \ No newline at end of file diff --git a/charts/free5gc/charts/free5gc-webui/values.yaml b/charts/free5gc/charts/free5gc-webui/values.yaml index f7c7080..5d84df9 100644 --- a/charts/free5gc/charts/free5gc-webui/values.yaml +++ b/charts/free5gc/charts/free5gc-webui/values.yaml @@ -25,14 +25,24 @@ global: type: ClusterIP port: "8000" nodePort: "30800" + webui: + service: + name: webui-nbiling + type: ClusterIP + port: "2122" + cgf: + service: + name: webui-ncgf + type: ClusterIP + port: "2121" sbi: scheme: http initcontainers: curl: - registry: towards5gs - image: initcurl - tag: "1.0.0" + registry: curlimages + image: curl + tag: "8.7.1" busybox: image: busybox tag: "1.32.0" @@ -52,7 +62,7 @@ webui: replicaCount: 1 image: name: free5gc/webui - tag: v3.3.0 + tag: v3.4.2 pullPolicy: Always service: name: webui-service @@ -65,6 +75,7 @@ webui: name: webui-volume mount: /free5gc/config/ tlsmount: /free5gc/config/TLS + certmount: /free5gc/cert podAnnotations: {} # additional annotations imagePullSecrets: [] diff --git a/charts/free5gc/charts/mongodb-10.7.0.tgz b/charts/free5gc/charts/mongodb-10.7.0.tgz deleted file mode 100644 index 2c2ef26..0000000 Binary files a/charts/free5gc/charts/mongodb-10.7.0.tgz and /dev/null differ diff --git a/charts/free5gc/charts/mongodb-15.6.0.tgz b/charts/free5gc/charts/mongodb-15.6.0.tgz new file mode 100644 index 0000000..740c499 Binary files /dev/null and b/charts/free5gc/charts/mongodb-15.6.0.tgz differ diff --git a/charts/free5gc/values.yaml b/charts/free5gc/values.yaml index 07d43f1..6d8a208 100644 --- a/charts/free5gc/values.yaml +++ b/charts/free5gc/values.yaml @@ -91,6 +91,7 @@ global: deployMongoDb: true deployAmf: true deployAusf: true +deployChf: true deployN3iwf: false deployNrf: true deployNssf: true diff --git a/charts/ueransim/values.yaml b/charts/ueransim/values.yaml index 62d8dfe..7cd85ae 100644 --- a/charts/ueransim/values.yaml +++ b/charts/ueransim/values.yaml @@ -48,7 +48,8 @@ gnb: name: gnb replicaCount: 1 image: - name: towards5gs/ueransim-gnb + name: free5gc/ueransim + tag: v3.4.2 pullPolicy: IfNotPresent configmap: name: gnb-configmap @@ -103,14 +104,15 @@ ue: name: ue replicaCount: 1 image: - name: towards5gs/ueransim-ue + name: free5gc/ueransim + tag: v3.4.2 pullPolicy: IfNotPresent configmap: name: ue-configmap volume: name: ue-volume mount: /ueransim/config - command: "./nr-ue -c ../config/ue-config.yaml" # This is the command that will be launched in the UE container + command: "./nr-ue -c ./config/ue-config.yaml" # This is the command that will be launched in the UE container # A script that will be run after the UE creation. It may be used to periodically generate traffic script: "" # script: |- @@ -132,15 +134,15 @@ ue: affinity: {} configuration: |- - supi: "imsi-208930000000003" # IMSI number - mcc: '208' # Mobile Country Code value - mnc: '93' # Mobile Network Code value (2 or 3 digits) + supi: "imsi-208930000000001" # IMSI number + mcc: "208" # Mobile Country Code value + mnc: "93" # Mobile Network Code value (2 or 3 digits) key: "8baf473f2f8fd09487cccbd7097c6862" # Operator code (OP or OPC) of the UE op: "8e27b6af0e692e750f32667a3b14605d" # This value specifies the OP type and it can be either 'OP' or 'OPC' opType: "OPC" # This value specifies the OP type and it can be either 'OP' or 'OPC' - amf: '8000' # Authentication Management Field (AMF) value - imei: '356938035643803' # IMEI number of the device - imeiSv: '4370816125816151' + amf: "8000" # Authentication Management Field (AMF) value + imei: "356938035643803" # IMEI number of the device + imeiSv: "4370816125816151" # UAC Access Identities Configuration uacAic: mps: false @@ -159,10 +161,17 @@ ue: slice: sst: 0x01 sd: 0x010203 + - type: "IPv4" + apn: "internet" + slice: + sst: 0x01 + sd: 0x112233 # Configured NSSAI for this UE by HPLMN configured-nssai: - sst: 0x01 sd: 0x010203 + - sst: 0x01 + sd: 0x112233 # Default Configured NSSAI for this UE default-nssai: - sst: 1 @@ -178,8 +187,8 @@ ue: EA3: true # Integrity protection maximum data rate for user plane integrityMaxRate: - uplink: 'full' - downlink: 'full' + uplink: "full" + downlink: "full" test: connectivity: