blob: 8471f7f05ccacd44ddca6d201fff9910bf43ca58 [file] [log] [blame]
Jeremy Ronquillo11851d32020-06-08 15:13:08 -07001{{/*
Jeremy Ronquilloec2d3e42020-06-05 11:33:39 -07002# Copyright 2019-present Open Networking Foundation
Jeremy Ronquillo11851d32020-06-08 15:13:08 -07003
Scott Baker4cad5ee2022-06-09 14:17:35 -07004# SPDX-License-Identifier: Apache-2.0
Jeremy Ronquillo11851d32020-06-08 15:13:08 -07005*/}}
6
7{{ tuple "cdn-local" . | include "cdn-local.service_account" }}
8
9---
10apiVersion: apps/v1
11kind: StatefulSet
12metadata:
13 name: cdn-local
14 labels:
15{{ tuple "cdn-local" . | include "cdn-local.metadata_labels" | indent 4 }}
16spec:
17 replicas: {{ .Values.config.nginx.replicas }}
18 selector:
19 matchLabels:
20{{ tuple "cdn-local" . | include "cdn-local.metadata_labels" | indent 6 }}
21 serviceName: "cdn-local"
22 template:
23 metadata:
24 labels:
25{{ tuple "cdn-local" . | include "cdn-local.metadata_labels" | indent 8 }}
26{{ if .Values.config.sriov.enabled }}
27 annotations:
28 k8s.v1.cni.cncf.io/networks: '[
29 {
30 "name": "sgi-net-cdn",
31 "interface": {{ .Values.config.nginx.sgiInterface.name | quote }},
32 "ips": {{ .Values.config.nginx.sgiInterface.ip | quote }}
33 }
34 ]'
35{{ end }}
36 spec:
37 {{- if .Values.nodeSelectors.enabled }}
38 nodeSelector:
39 {{ .Values.nodeSelectors.nginx.label }}: {{ .Values.nodeSelectors.nginx.value }}
40 {{- end }}
41 hostNetwork: {{ not .Values.config.sriov.enabled }}
42 serviceAccountName: cdn-local
43 initContainers:
44 - name: cdn-local-init
45 image: {{ .Values.images.tags.nginx }}
46 imagePullPolicy: {{ .Values.images.pullPolicy }}
47 securityContext:
48 allowPrivilegeEscalation: false
49 readOnlyRootFilesystem: false
50 runAsUser: 0
51 command: [ "bash", "-xc"]
52 args:
53 - cp /config/*.sh /shared-vol;cp /conf/* /shared-vol
54 volumeMounts:
55 - name: shared-volume
56 mountPath: /shared-vol
57 - name: nginx-net-config
58 mountPath: /config
59 - name: nginx-rtmp-config
60 mountPath: /conf
61 containers:
62 - name: nginx
63 image: {{ .Values.images.tags.nginx }}
64 imagePullPolicy: {{ .Values.images.pullPolicy }}
65 command: [ "bash", "-xc"]
66 args:
67 - chmod a+x /config/*.sh; /config/run-nginx.sh
68 securityContext:
69 privileged: true
70 volumeMounts:
71 - name: shared-volume
72 mountPath: /config
73 - name: shared-volume
74 mountPath: /conf
75 resources:
76 requests:
77 {{- if .Values.resources.enabled }}
78{{ toYaml .Values.resources.nginx.requests | indent 12 }}
79 {{- end }}
80 {{- if .Values.config.sriov.enabled }}
81 intel.com/sriov_netdevice: 2
82 {{- end }}
83 limits:
84 {{- if .Values.resources.enabled }}
85{{ toYaml .Values.resources.nginx.limits | indent 12 }}
86 {{- end }}
87 {{- if .Values.config.sriov.enabled }}
88 intel.com/sriov_netdevice: 2
89 {{- end }}
90 volumes:
91 - name: nginx-net-config
92 configMap:
93 name: nginx-net-config
94 defaultMode: 493
95 - name: nginx-rtmp-config
96 configMap:
97 name: nginx-rtmp-config
98 defaultMode: 420
99 - name: shared-volume
100 emptyDir: {}