controller-daemonset.yaml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. {{- if eq .Values.controller.kind "daemonset" }}
  2. apiVersion: extensions/v1beta1
  3. kind: DaemonSet
  4. metadata:
  5. name: {{ .Values.controller.name | trunc 63 }}
  6. labels:
  7. app: {{ .Values.controller.name | trunc 63 }}
  8. chart: {{ .Chart.Name }}-{{ .Chart.Version }}
  9. heritage: {{ .Release.Service }}
  10. release: {{ .Release.Name }}
  11. spec:
  12. selector:
  13. matchLabels:
  14. app: {{ .Values.controller.name | trunc 63 }}
  15. template:
  16. metadata:
  17. labels:
  18. app: {{ .Values.controller.name | trunc 63 }}
  19. {{- if .Values.prometheus.create }}
  20. annotations:
  21. prometheus.io/scrape: "true"
  22. prometheus.io/port: "{{ .Values.prometheus.port }}"
  23. {{- end }}
  24. spec:
  25. serviceAccountName: {{ .Values.controller.serviceAccount.name }}
  26. terminationGracePeriodSeconds: {{ .Values.controller.terminationGracePeriodSeconds }}
  27. {{- if .Values.controller.nodeSelector }}
  28. nodeSelector:
  29. {{ toYaml .Values.controller.nodeSelector | indent 8 }}
  30. {{- end }}
  31. {{- if eq .Values.controller.tolerations "icp" }}
  32. tolerations:
  33. - key: "dedicated"
  34. operator: "Exists"
  35. effect: "NoSchedule"
  36. - key: "CriticalAddonsOnly"
  37. operator: "Exists"
  38. {{- end }}
  39. hostNetwork: {{ .Values.controller.hostNetwork }}
  40. containers:
  41. - name: {{ .Values.controller.name | trunc 63 }}
  42. image: "{{ .Values.controller.image.repository }}:{{ .Values.controller.image.tag }}"
  43. imagePullPolicy: "{{ .Values.controller.image.pullPolicy }}"
  44. ports:
  45. - name: http
  46. containerPort: 80
  47. hostPort: 80
  48. - name: https
  49. containerPort: 443
  50. hostPort: 443
  51. env:
  52. - name: POD_NAMESPACE
  53. valueFrom:
  54. fieldRef:
  55. fieldPath: metadata.namespace
  56. - name: POD_NAME
  57. valueFrom:
  58. fieldRef:
  59. fieldPath: metadata.name
  60. args:
  61. - -nginx-plus={{ .Values.controller.nginxplus }}
  62. - -nginx-configmaps=$(POD_NAMESPACE)/nginx-config
  63. {{- if .Values.controller.defaultTLS.secret }}
  64. - -default-server-tls-secret={{ .Values.controller.defaultTLS.secret }}
  65. {{ else }}
  66. - -default-server-tls-secret=$(POD_NAMESPACE)/default-server-secret
  67. {{- end }}
  68. - -ingress-class={{ .Values.controller.ingressClass }}
  69. - -use-ingress-class-only={{ .Values.controller.useIngressClassOnly }}
  70. {{- if .Values.controller.watchNamespace }}
  71. - -watch-namespace={{ .Values.controller.watchNamespace }}
  72. {{- end }}
  73. - -health-status={{ .Values.controller.healthStatus }}
  74. - -nginx-debug={{ .Values.controller.nginxDebug }}
  75. - -nginx-status={{ .Values.controller.nginxStatus.enable }}
  76. {{- if .Values.controller.nginxStatus.enable }}
  77. - -nginx-status-port={{ .Values.controller.nginxStatus.port }}
  78. - -nginx-status-allow-cidrs={{ .Values.controller.nginxStatus.allowCidrs }}
  79. {{- end }}
  80. {{- if .Values.controller.reportIngressStatus.enable }}
  81. - -report-ingress-status
  82. - -external-service={{ .Values.controller.reportIngressStatus.externalService }}
  83. - -enable-leader-election={{ .Values.controller.reportIngressStatus.enableLeaderElection }}
  84. {{- end }}
  85. {{- if and .Values.prometheus.create .Values.controller.nginxStatus.enable }}
  86. - image: "{{ .Values.prometheus.image.repository }}:{{ .Values.prometheus.image.tag }}"
  87. name: nginx-prometheus-exporter
  88. imagePullPolicy: "{{ .Values.prometheus.image.pullPolicy }}"
  89. ports:
  90. - name: prometheus
  91. containerPort: {{ .Values.prometheus.port }}
  92. args:
  93. - -web.listen-address
  94. - :{{ .Values.prometheus.port }}
  95. {{- if .Values.controller.nginxplus }}
  96. - -nginx.plus
  97. - -nginx.scrape-uri
  98. - http://127.0.0.1:{{ .Values.controller.nginxStatus.port }}/api
  99. {{ else }}
  100. - -nginx.scrape-uri
  101. - http://127.0.0.1:{{ .Values.controller.nginxStatus.port }}/stub_status
  102. {{- end }}
  103. {{- end }}
  104. {{- end }}