Skip to content

Commit 57f38af

Browse files
authored
Merge branch 'master' into chore/helm-chart-repo
2 parents 2ac6c65 + e4552ff commit 57f38af

File tree

16 files changed

+159
-23
lines changed

16 files changed

+159
-23
lines changed

.github/workflows/ci.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,12 @@ jobs:
2929
--name ct-lint \
3030
--volume $PWD:/workdir \
3131
--workdir /workdir/charts/apisix \
32-
quay.io/helmpack/chart-testing:v3.4.0 sh -c 'helm dependency update \
32+
quay.io/helmpack/chart-testing:v3.13.0 sh -c 'helm dependency update \
3333
&& cd ../.. \
3434
&& helm repo add bitnami https://charts.bitnami.com/bitnami \
3535
&& helm repo add apisix https://apache.github.io/apisix-helm-chart \
3636
&& ct lint \
37+
--validate-maintainers=false \
3738
--charts charts/apisix \
3839
--charts charts/apisix-dashboard \
3940
--charts charts/apisix-ingress-controller'
@@ -62,7 +63,7 @@ jobs:
6263
--volume $HOME/.kube/kind-config-kind:/root/.kube/config \
6364
--volume $PWD:/workdir \
6465
--workdir /workdir/charts/apisix \
65-
quay.io/helmpack/chart-testing:v3.4.0 sh -c 'helm dependency update \
66+
quay.io/helmpack/chart-testing:v3.13.0 sh -c 'helm dependency update \
6667
&& cd ../.. \
6768
&& helm repo add bitnami https://charts.bitnami.com/bitnami \
6869
&& helm repo add apisix https://apache.github.io/apisix-helm-chart \

charts/apisix-ingress-controller/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ keywords:
2424
- nginx
2525
- crd
2626
type: application
27-
version: 1.0.3
28-
appVersion: 2.0.0-rc2
27+
version: 1.0.5
28+
appVersion: 2.0.0-rc4
2929
sources:
3030
- https://github.com/apache/apisix-helm-chart
3131

charts/apisix-ingress-controller/README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,15 @@ The same for container level, you need to set:
124124
| config.metricsAddr | string | `":8080"` | |
125125
| config.probeAddr | string | `":8081"` | |
126126
| config.provider.initSyncDelay | string | `"20m"` | |
127-
| config.provider.syncPeriod | string | `"1s"` | |
127+
| config.provider.syncPeriod | string | `"1m"` | |
128128
| config.provider.type | string | `"apisix"` | |
129129
| config.secureMetrics | bool | `false` | |
130+
| deployment.adcContainer | object | `{"config":{"logLevel":"info"},"image":{"repository":"ghcr.io/api7/adc","tag":"0.21.0"}}` | Set adc sidecar container configuration |
130131
| deployment.affinity | object | `{}` | |
131132
| deployment.annotations | object | `{}` | Add annotations to Apache APISIX ingress controller resource |
132133
| deployment.image.pullPolicy | string | `"IfNotPresent"` | |
133134
| deployment.image.repository | string | `"apache/apisix-ingress-controller"` | |
134-
| deployment.image.tag | string | `"2.0.0-rc2"` | |
135+
| deployment.image.tag | string | `"2.0.0-rc4"` | |
135136
| deployment.nodeSelector | object | `{}` | |
136137
| deployment.podAnnotations | object | `{}` | |
137138
| deployment.podSecurityContext | object | `{}` | |
@@ -151,3 +152,9 @@ The same for container level, you need to set:
151152
| podDisruptionBudget.enabled | bool | `false` | Enable or disable podDisruptionBudget |
152153
| podDisruptionBudget.maxUnavailable | int | `1` | Set the maxUnavailable of podDisruptionBudget |
153154
| podDisruptionBudget.minAvailable | string | `"90%"` | Set the `minAvailable` of podDisruptionBudget. You can specify only one of `maxUnavailable` and `minAvailable` in a single PodDisruptionBudget. See [Specifying a Disruption Budget for your Application](https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget) for more details |
155+
| serviceMonitor.annotations | object | `{}` | @param serviceMonitor.annotations ServiceMonitor annotations |
156+
| serviceMonitor.enabled | bool | `false` | Enable or disable ServiceMonitor |
157+
| serviceMonitor.interval | string | `"15s"` | @param serviceMonitor.interval Interval at which metrics should be scraped |
158+
| serviceMonitor.labels | object | `{}` | @param serviceMonitor.labels ServiceMonitor extra labels |
159+
| serviceMonitor.metricRelabelings | object | `{}` | @param serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion. ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs |
160+
| serviceMonitor.namespace | string | `"monitoring"` | @param serviceMonitor.namespace Namespace in which to create the ServiceMonitor |

charts/apisix-ingress-controller/templates/deployment.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ spec:
5353
fieldRef:
5454
fieldPath: metadata.name
5555
image: "{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag }}"
56+
imagePullPolicy: {{ .Values.deployment.image.pullPolicy }}
57+
ports:
58+
- containerPort: {{ splitList ":" .Values.config.metricsAddr | last | int }}
59+
name: metrics
60+
protocol: TCP
5661
volumeMounts:
5762
- name: {{ .Release.Name }}-ingress-config
5863
mountPath: /app/conf/config.yaml
@@ -74,6 +79,43 @@ spec:
7479
{{- toYaml .Values.deployment.resources | nindent 10 }}
7580
securityContext:
7681
{{- toYaml .Values.deployment.podSecurityContext | nindent 10 }}
82+
- name: adc-server
83+
image: "{{ .Values.deployment.adcContainer.image.repository }}:{{ .Values.deployment.adcContainer.image.tag }}"
84+
imagePullPolicy: {{ .Values.deployment.image.pullPolicy }}
85+
args:
86+
- "server"
87+
- "--listen"
88+
- "http://127.0.0.1:3000"
89+
- "--listen-status"
90+
- "3001"
91+
env:
92+
- name: ADC_RUNNING_MODE
93+
value: "ingress"
94+
- name: ADC_EXPERIMENTAL_FEATURE_FLAGS
95+
value: "remote-state-file,parallel-backend-request"
96+
- name: ADC_INGRESS_LOG_LEVEL
97+
value: "{{ .Values.deployment.adcContainer.config.logLevel }}"
98+
ports:
99+
- name: http-status
100+
containerPort: 3001
101+
protocol: TCP
102+
livenessProbe:
103+
httpGet:
104+
path: /healthz/ready
105+
port: 3001
106+
initialDelaySeconds: 10
107+
periodSeconds: 10
108+
timeoutSeconds: 10
109+
readinessProbe:
110+
httpGet:
111+
path: /healthz/ready
112+
port: 3001
113+
initialDelaySeconds: 5
114+
periodSeconds: 5
115+
resources:
116+
{{- toYaml .Values.deployment.resources | nindent 10 }}
117+
securityContext:
118+
{{- toYaml .Values.deployment.podSecurityContext | nindent 10 }}
77119
{{- with .Values.deployment.nodeSelector }}
78120
nodeSelector:
79121
{{- toYaml . | nindent 8 }}

charts/apisix-ingress-controller/templates/service.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ kind: Service
1919
metadata:
2020
labels:
2121
{{- include "apisix-ingress-controller-manager.labels" . | nindent 4 }}
22-
name: {{ .Release.Name }}-metrics-service
22+
name: {{ include "apisix-ingress-controller-manager.name.fullname" . }}
2323
namespace: {{ .Release.Namespace }}
2424
spec:
2525
ports:
26-
- name: https
27-
port: 8443
26+
- name: metrics
27+
port: 8080
2828
protocol: TCP
29-
targetPort: 8443
29+
targetPort: metrics
3030
selector:
3131
{{- include "apisix-ingress-controller-manager.selectorLabels" . | nindent 4 }}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one or more
3+
# contributor license agreements. See the NOTICE file distributed with
4+
# this work for additional information regarding copyright ownership.
5+
# The ASF licenses this file to You under the Apache License, Version 2.0
6+
# (the "License"); you may not use this file except in compliance with
7+
# the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
{{- if .Values.serviceMonitor.enabled }}
18+
apiVersion: monitoring.coreos.com/v1
19+
kind: ServiceMonitor
20+
metadata:
21+
name: {{ include "apisix-ingress-controller-manager.name.fullname" . }}
22+
{{- if .Values.serviceMonitor.namespace }}
23+
namespace: {{ .Values.serviceMonitor.namespace }}
24+
{{- end }}
25+
{{- if .Values.serviceMonitor.labels }}
26+
labels: {{- toYaml .Values.serviceMonitor.labels | nindent 4 }}
27+
{{- end }}
28+
{{- if .Values.serviceMonitor.annotations }}
29+
annotations: {{- toYaml .Values.serviceMonitor.annotations | nindent 4 }}
30+
{{- end }}
31+
spec:
32+
endpoints:
33+
- targetPort: metrics
34+
scheme: http
35+
{{- if .Values.serviceMonitor.interval }}
36+
interval: {{ .Values.serviceMonitor.interval }}
37+
{{- end }}
38+
{{- with .Values.serviceMonitor.metricRelabelings }}
39+
metricRelabelings: {{ toYaml . | nindent 6 }}
40+
{{- end }}
41+
namespaceSelector:
42+
matchNames:
43+
- {{ .Release.Namespace }}
44+
45+
selector:
46+
matchLabels:
47+
{{- include "apisix-ingress-controller-manager.labels" . | nindent 6 }}
48+
{{- end }}

charts/apisix-ingress-controller/values.yaml

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,18 @@ deployment:
6060
image:
6161
repository: apache/apisix-ingress-controller
6262
pullPolicy: IfNotPresent
63-
tag: "2.0.0-rc2"
63+
tag: "2.0.0-rc4"
6464
# -- Set pod resource requests & limits
6565
resources: {}
6666

67+
# -- Set adc sidecar container configuration
68+
adcContainer:
69+
image:
70+
repository: ghcr.io/api7/adc
71+
tag: "0.21.0"
72+
config:
73+
logLevel: "info"
74+
6775
config:
6876
logLevel: "info"
6977
controllerName: apisix.apache.org/apisix-ingress-controller
@@ -80,7 +88,7 @@ config:
8088
execADCTimeout: "15s"
8189
provider:
8290
type: "apisix"
83-
syncPeriod: "1s"
91+
syncPeriod: "1m"
8492
initSyncDelay: "20m"
8593
kubernetes:
8694
ingressClass: apisix
@@ -102,3 +110,18 @@ apisix:
102110
namespace: apisix-ingress
103111
name: apisix-admin
104112
port: 9180
113+
114+
serviceMonitor:
115+
# -- Enable or disable ServiceMonitor
116+
enabled: false
117+
# -- @param serviceMonitor.namespace Namespace in which to create the ServiceMonitor
118+
namespace: "monitoring"
119+
# -- @param serviceMonitor.interval Interval at which metrics should be scraped
120+
interval: 15s
121+
# -- @param serviceMonitor.labels ServiceMonitor extra labels
122+
labels: {}
123+
# -- @param serviceMonitor.annotations ServiceMonitor annotations
124+
annotations: {}
125+
# -- @param serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion.
126+
# ref: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs
127+
metricRelabelings: {}

charts/apisix/Chart.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
dependencies:
22
- name: etcd
33
repository: https://charts.bitnami.com/bitnami
4-
version: 9.7.3
4+
version: 12.0.18
55
- name: apisix-ingress-controller
66
repository: https://apache.github.io/apisix-helm-chart
7-
version: 1.0.2
8-
digest: sha256:61e0700375e4227a0b091c52661ffd39d8d8a5faf8e6331af9736ee7c55f2346
9-
generated: "2025-07-29T15:34:25.528135+08:00"
7+
version: 1.0.5
8+
digest: sha256:645325383aa153ba7b41ef4f63ba38f5169173b2791aaeb32b0754ecbb922884
9+
generated: "2025-09-01T16:08:09.544116895+08:00"

charts/apisix/Chart.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ type: application
3131
# This is the chart version. This version number should be incremented each time you make changes
3232
# to the chart and its templates, including the app version.
3333
# Versions are expected to follow Semantic Versioning (https://semver.org/)
34-
version: 2.11.4
34+
version: 2.11.6
3535

3636
# This is the version number of the application being deployed. This version number should be
3737
# incremented each time you make changes to the application. Versions are not expected to
@@ -42,11 +42,11 @@ sources:
4242

4343
dependencies:
4444
- name: etcd
45-
version: 9.7.3
45+
version: 12.0.18
4646
repository: https://charts.bitnami.com/bitnami
4747
condition: etcd.enabled
4848
- name: apisix-ingress-controller
49-
version: 1.0.2
49+
version: 1.0.5
5050
repository: https://apache.github.io/apisix-helm-chart
5151
condition: ingress-controller.enabled
5252
alias: ingress-controller

charts/apisix/README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ The command removes all the Kubernetes components associated with the chart and
123123
| apisix.ssl.enabled | bool | `false` | |
124124
| apisix.ssl.existingCASecret | string | `""` | Specifies the name of Secret contains trusted CA certificates in the PEM format used to verify the certificate when APISIX needs to do SSL/TLS handshaking with external services (e.g. etcd) |
125125
| apisix.ssl.fallbackSNI | string | `""` | Define SNI to fallback if none is presented by client |
126+
| apisix.ssl.sslCiphers | string | `"ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA"` | TLS ciphers allowed to use. |
126127
| apisix.ssl.sslProtocols | string | `"TLSv1.2 TLSv1.3"` | TLS protocols allowed to use. |
127128
| apisix.status.ip | string | `"0.0.0.0"` | |
128129
| apisix.status.port | int | `7085` | |
@@ -150,7 +151,7 @@ The command removes all the Kubernetes components associated with the chart and
150151
| control.service.port | int | `9090` | which port to use for Apache APISIX Control API |
151152
| control.service.servicePort | int | `9090` | Service port to use for Apache APISIX Control API |
152153
| control.service.type | string | `"ClusterIP"` | Control service type |
153-
| etcd | object | `{"auth":{"rbac":{"create":false,"rootPassword":""},"tls":{"certFilename":"","certKeyFilename":"","enabled":false,"existingSecret":"","sni":"","verify":true}},"autoCompactionMode":"periodic","autoCompactionRetention":"1h","containerSecurityContext":{"enabled":false},"enabled":true,"prefix":"/apisix","replicaCount":3,"service":{"port":2379},"timeout":30}` | etcd configuration use the FQDN address or the IP of the etcd |
154+
| etcd | object | `{"auth":{"rbac":{"create":false,"rootPassword":""},"tls":{"certFilename":"","certKeyFilename":"","enabled":false,"existingSecret":"","sni":"","verify":true}},"autoCompactionMode":"periodic","autoCompactionRetention":"1h","containerSecurityContext":{"enabled":false},"enabled":true,"image":{"registry":"docker.io","repository":"bitnami/etcd","tag":"latest"},"prefix":"/apisix","replicaCount":3,"service":{"port":2379},"timeout":30}` | etcd configuration use the FQDN address or the IP of the etcd |
154155
| etcd.auth | object | `{"rbac":{"create":false,"rootPassword":""},"tls":{"certFilename":"","certKeyFilename":"","enabled":false,"existingSecret":"","sni":"","verify":true}}` | if etcd.enabled is true, set more values of bitnami/etcd helm chart |
155156
| etcd.auth.rbac.create | bool | `false` | No authentication by default. Switch to enable RBAC authentication |
156157
| etcd.auth.rbac.rootPassword | string | `""` | root password for etcd. Requires etcd.auth.rbac.create to be true. |
@@ -161,7 +162,9 @@ The command removes all the Kubernetes components associated with the chart and
161162
| etcd.auth.tls.sni | string | `""` | specify the TLS Server Name Indication extension, the ETCD endpoint hostname will be used when this setting is unset. |
162163
| etcd.auth.tls.verify | bool | `true` | whether to verify the etcd endpoint certificate when setup a TLS connection to etcd |
163164
| etcd.containerSecurityContext | object | `{"enabled":false}` | added for backward compatibility with old kubernetes versions, as seccompProfile is not supported in kubernetes < 1.19 |
164-
| etcd.enabled | bool | `true` | install etcd(v3) by default, set false if do not want to install etcd(v3) together |
165+
| etcd.enabled | bool | `true` | install built-in etcd by default, set false if do not want to install built-in etcd together, this etcd is based on bitnami/etcd helm chart and latest bitnami docker image, only for development and testing purposes, if you want to use etcd in production, we recommend you to install etcd by yourself and use `externalEtcd` to connect it. |
166+
| etcd.image | object | `{"registry":"docker.io","repository":"bitnami/etcd","tag":"latest"}` | docker image for built-in etcd |
167+
| etcd.image.tag | string | `"latest"` | `bitnami/etcd` only provide `latest` tag now, ref: https://github.com/bitnami/containers/issues/83267, you can switch `etcd.image.repository` to `bitnamilegacy/etcd` to use old versioned tags. |
165168
| etcd.prefix | string | `"/apisix"` | apisix configurations prefix |
166169
| etcd.timeout | int | `30` | Set the timeout value in seconds for subsequent socket operations from apisix to etcd cluster |
167170
| externalEtcd | object | `{"existingSecret":"","host":["http://etcd.host:2379"],"password":"","secretPasswordKey":"etcd-root-password","user":"root"}` | external etcd configuration. If etcd.enabled is false, these configuration will be used. |

0 commit comments

Comments
 (0)