apiVersion: v1 kind: Service metadata: name: kubeslice-dns namespace: {{ .Release.Namespace }} labels: app: kubeslice-dns spec: type: ClusterIP selector: app: kubeslice-dns ports: - port: 53 protocol: UDP name: udp-53 targetPort: 1053 - port: 53 protocol: TCP name: tcp-53 targetPort: 1053 --- apiVersion: apps/v1 kind: Deployment metadata: name: kubeslice-dns namespace: {{ .Release.Namespace }} labels: app: kubeslice-dns spec: replicas: 1 selector: matchLabels: app: kubeslice-dns template: metadata: labels: app: kubeslice-dns kubeslice.io/pod-type: dns spec: serviceAccount: kubeslice-dns affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubeslice.io/node-type operator: In values: - gateway terminationGracePeriodSeconds: 30 dnsPolicy: Default {{- if and .Values.imagePullSecrets .Values.imagePullSecrets.repository .Values.imagePullSecrets.username .Values.imagePullSecrets.password }} imagePullSecrets: - name: kubeslice-image-pull-secret {{- end }} containers: - name: "dns" image: {{ .Values.dns.image }}:{{ .Values.dns.tag }} imagePullPolicy: {{ .Values.dns.pullPolicy }} resources: requests: cpu: 10m memory: 64Mi limits: cpu: 50m memory: 128Mi ports: - containerPort: 1053 protocol: UDP name: udp-53 - containerPort: 1053 protocol: TCP name: tcp-53 tolerations: - key: "kubeslice.io/node-type" operator: "Equal" value: "gateway" effect: "NoSchedule" - key: "kubeslice.io/node-type" operator: "Equal" value: "gateway" effect: "NoExecute"