controller-deployment.yaml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. {{- if eq .Values.controller.kind "deployment" }}
  2. apiVersion: extensions/v1beta1
  3. kind: Deployment
  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. replicas: {{ .Values.controller.replicaCount }}
  13. selector:
  14. matchLabels:
  15. app: {{ .Values.controller.name | trunc 63 }}
  16. template:
  17. metadata:
  18. labels:
  19. app: {{ .Values.controller.name | trunc 63 }}
  20. {{- if .Values.prometheus.create }}
  21. annotations:
  22. prometheus.io/scrape: "true"
  23. prometheus.io/port: "{{ .Values.prometheus.port }}"
  24. {{- end }}
  25. spec:
  26. serviceAccountName: {{ .Values.controller.serviceAccount.name }}
  27. hostNetwork: {{ .Values.controller.hostNetwork }}
  28. containers:
  29. - image: "{{ .Values.controller.image.repository }}:{{ .Values.controller.image.tag }}"
  30. name: {{ .Values.controller.name | trunc 63 }}
  31. imagePullPolicy: "{{ .Values.controller.image.pullPolicy }}"
  32. ports:
  33. - name: http
  34. containerPort: 80
  35. - name: https
  36. containerPort: 443
  37. env:
  38. - name: POD_NAMESPACE
  39. valueFrom:
  40. fieldRef:
  41. fieldPath: metadata.namespace
  42. - name: POD_NAME
  43. valueFrom:
  44. fieldRef:
  45. fieldPath: metadata.name
  46. args:
  47. - -nginx-plus={{ .Values.controller.nginxplus }}
  48. - -nginx-configmaps=$(POD_NAMESPACE)/nginx-config
  49. {{- if .Values.controller.defaultTLS.secret }}
  50. - -default-server-tls-secret={{ .Values.controller.defaultTLS.secret }}
  51. {{ else }}
  52. - -default-server-tls-secret=$(POD_NAMESPACE)/default-server-secret
  53. {{- end }}
  54. - -ingress-class={{ .Values.controller.ingressClass }}
  55. - -use-ingress-class-only={{ .Values.controller.useIngressClassOnly }}
  56. {{- if .Values.controller.watchNamespace }}
  57. - -watch-namespace={{ .Values.controller.watchNamespace }}
  58. {{- end }}
  59. - -health-status={{ .Values.controller.healthStatus }}
  60. - -nginx-debug={{ .Values.controller.nginxDebug }}
  61. - -nginx-status={{ .Values.controller.nginxStatus.enable }}
  62. {{- if .Values.controller.nginxStatus.enable }}
  63. - -nginx-status-port={{ .Values.controller.nginxStatus.port }}
  64. - -nginx-status-allow-cidrs={{ .Values.controller.nginxStatus.allowCidrs }}
  65. {{- end }}
  66. {{- if .Values.controller.reportIngressStatus.enable }}
  67. - -report-ingress-status
  68. - -external-service={{ .Values.controller.reportIngressStatus.externalService }}
  69. - -enable-leader-election={{ .Values.controller.reportIngressStatus.enableLeaderElection }}
  70. {{- end }}
  71. {{- if and .Values.prometheus.create .Values.controller.nginxStatus.enable }}
  72. - image: "{{ .Values.prometheus.image.repository }}:{{ .Values.prometheus.image.tag }}"
  73. name: nginx-prometheus-exporter
  74. imagePullPolicy: "{{ .Values.prometheus.image.pullPolicy }}"
  75. ports:
  76. - name: prometheus
  77. containerPort: {{ .Values.prometheus.port }}
  78. args:
  79. - -web.listen-address
  80. - :{{ .Values.prometheus.port }}
  81. {{- if .Values.controller.nginxplus }}
  82. - -nginx.plus
  83. - -nginx.scrape-uri
  84. - http://127.0.0.1:{{ .Values.controller.nginxStatus.port }}/api
  85. {{ else }}
  86. - -nginx.scrape-uri
  87. - http://127.0.0.1:{{ .Values.controller.nginxStatus.port }}/stub_status
  88. {{- end }}
  89. {{- end }}
  90. {{- end }}