Skip to content

Commit c76d933

Browse files
authored
feat: new version ingress controller helm chart (#175)
Signed-off-by: ashing <[email protected]>
1 parent 5f78890 commit c76d933

28 files changed

+12184
-3261
lines changed

charts/ingress-controller/.helmignore

Lines changed: 0 additions & 23 deletions
This file was deleted.

charts/ingress-controller/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ keywords:
66
- api7
77
- crd
88
type: application
9-
version: 0.0.3
9+
version: 0.1.0
1010
appVersion: 2.0.0
1111
sources:
1212
- https://github.com/api7/api7-helm-chart
Lines changed: 28 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# api7-ingress-controller
22

3-
![Version: 0.0.3](https://img.shields.io/badge/Version-0.0.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.0.0](https://img.shields.io/badge/AppVersion-2.0.0-informational?style=flat-square)
3+
![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.0.0](https://img.shields.io/badge/AppVersion-2.0.0-informational?style=flat-square)
44

55
Ingress Controller for API7
66

@@ -12,88 +12,39 @@ Ingress Controller for API7
1212

1313
| Key | Type | Default | Description |
1414
|-----|------|---------|-------------|
15-
| affinity | object | `{}` | |
16-
| annotations | object | `{}` | Add annotations to Apache APISIX ingress controller resource |
1715
| autoscaling.enabled | bool | `false` | |
18-
| autoscaling.maxReplicas | int | `100` | |
1916
| autoscaling.minReplicas | int | `1` | |
20-
| autoscaling.targetCPUUtilizationPercentage | int | `80` | |
21-
| autoscaling.version | string | `"v2"` | HPA version, the value is "v2" or "v2beta1", default "v2" |
22-
| clusterDomain | string | `"cluster.local"` | |
23-
| config.apisixResourceSyncInterval | string | `"1h"` | Default interval for synchronizing Kubernetes resources to APISIX |
24-
| config.certFile | string | `"/etc/webhook/certs/cert.pem"` | the TLS certificate file path. |
25-
| config.dashboard | object | `{"adminAPIVersion":"v3","adminKey":"a7adm-dMx6MQ0NvEbr1V1oC109ovU9r3AZ80966HDx83M48chS1951P0788e4029ef18499999f421c6aea370ae","baseURL":"http://dashboard:7080","clusterName":"default","existingSecret":"","existingSecretAdminKeyKey":""}` | APISIX related configurations. |
26-
| config.dashboard.adminAPIVersion | string | `"v3"` | the APISIX admin API version. can be "v2" or "v3", default is "v2". |
27-
| config.dashboard.baseURL | string | `"http://dashboard:7080"` | Enabling this value, overrides serviceName and serviceNamespace. |
28-
| config.dashboard.existingSecret | string | `""` | The APISIX Helm chart supports storing user credentials in a secret. The secret needs to contain a single key for admin token with key adminKey by default. |
29-
| config.dashboard.existingSecretAdminKeyKey | string | `""` | Name of the admin token key in the secret, overrides the default key name "adminKey" |
30-
| config.enableProfiling | bool | `true` | enable profiling via web interfaces host:port/debug/pprof, default is true. |
31-
| config.httpListen | string | `":8080"` | the HTTP Server listen address, default is ":8080" |
32-
| config.httpsListen | string | `":8443"` | the HTTPS Server listen address, default is ":8443" |
33-
| config.ingressPublishService | string | `""` | the controller will use the Endpoint of this Service to update the status information of the Ingress resource. The format is "namespace/svc-name" to solve the situation that the data plane and the controller are not deployed in the same namespace. |
34-
| config.ingressStatusAddress | list | `[]` | |
35-
| config.keyFile | string | `"/etc/webhook/certs/key.pem"` | the TLS key file path. |
36-
| config.kubernetes | object | `{"apiVersion":"apisix.apache.org/v2","apisixRouteVersion":"apisix.apache.org/v2","electionId":"ingress-apisix-leader","enableGatewayAPI":false,"ingressClass":"apisix","ingressVersion":"networking/v1","kubeconfig":"","namespaceSelector":[""],"resyncInterval":"6h","watchEndpointSlices":false}` | Kubernetes related configurations. |
37-
| config.kubernetes.apiVersion | string | `"apisix.apache.org/v2"` | the resource API version, support "apisix.apache.org/v2beta3" and "apisix.apache.org/v2". default is "apisix.apache.org/v2" |
38-
| config.kubernetes.apisixRouteVersion | string | `"apisix.apache.org/v2"` | the supported apisixroute api group version, can be "apisix.apache.org/v2" "apisix.apache.org/v2beta3" or "apisix.apache.org/v2beta2" |
39-
| config.kubernetes.electionId | string | `"ingress-apisix-leader"` | the election id for the controller leader campaign, only the leader will watch and delivery resource changes, other instances (as candidates) stand by. |
40-
| config.kubernetes.enableGatewayAPI | bool | `false` | whether to enable support for Gateway API. Note: This feature is currently under development and may not work as expected. It is not recommended to use it in a production environment. Before we announce support for it to reach Beta level or GA. |
41-
| config.kubernetes.ingressClass | string | `"apisix"` | The class of an Ingress object is set using the field IngressClassName in Kubernetes clusters version v1.18.0 or higher or the annotation "kubernetes.io/ingress.class" (deprecated). |
42-
| config.kubernetes.ingressVersion | string | `"networking/v1"` | the supported ingress api group version, can be "networking/v1beta1", "networking/v1" (for Kubernetes version v1.19.0 or higher), and "extensions/v1beta1", default is "networking/v1". |
43-
| config.kubernetes.kubeconfig | string | `""` | the Kubernetes configuration file path, default is "", so the in-cluster configuration will be used. |
44-
| config.kubernetes.namespaceSelector | list | `[""]` | namespace_selector represent basis for selecting managed namespaces. the field is support since version 1.4.0 For example, "apisix.ingress=watching", so ingress will watching the namespaces which labels "apisix.ingress=watching" |
45-
| config.kubernetes.resyncInterval | string | `"6h"` | how long should api7-ingress-controller re-synchronizes with Kubernetes, default is 6h, |
46-
| config.kubernetes.watchEndpointSlices | bool | `false` | whether to watch EndpointSlices rather than Endpoints. |
47-
| config.logLevel | string | `"info"` | the error log level, default is info, optional values are: debug, info, warn, error, panic, fatal |
48-
| config.logOutput | string | `"stderr"` | the output file path of error log, default is stderr, when the file path is "stderr" or "stdout", logs are marshalled plainly, which is more readable for human; otherwise logs are marshalled in JSON format, which can be parsed by programs easily. |
49-
| config.pluginMetadataCM | string | `""` | Pluginmetadata in APISIX can be controlled through ConfigMap. default is "" |
17+
| config.controllerName | string | `"apisix.apache.org/apisix-ingress-controller"` | |
18+
| config.enableHTTP2 | bool | `false` | |
19+
| config.execADCTimeout | string | `"15s"` | |
20+
| config.leaderElection.disable | bool | `false` | |
21+
| config.leaderElection.id | string | `"apisix-ingress-controller-leader"` | |
22+
| config.leaderElection.leaseDuration | string | `"15s"` | |
23+
| config.leaderElection.renewDeadline | string | `"10s"` | |
24+
| config.leaderElection.retryPeriod | string | `"2s"` | |
25+
| config.logLevel | string | `"info"` | |
26+
| config.metricsAddr | string | `":8080"` | |
27+
| config.probeAddr | string | `":8081"` | |
28+
| config.provider.initSyncDelay | string | `"20m"` | |
29+
| config.provider.syncPeriod | string | `"0s"` | |
30+
| config.secureMetrics | string | `""` | |
31+
| deployment.affinity | object | `{}` | |
32+
| deployment.annotations | object | `{}` | |
33+
| deployment.image.pullPolicy | string | `"IfNotPresent"` | |
34+
| deployment.image.repository | string | `"api7/api7-ingress-controller"` | |
35+
| deployment.image.tag | string | `"dev"` | |
36+
| deployment.nodeSelector | object | `{}` | |
37+
| deployment.podAnnotations | object | `{}` | |
38+
| deployment.podSecurityContext.allowPrivilegeEscalation | bool | `false` | |
39+
| deployment.podSecurityContext.capabilities.drop[0] | string | `"ALL"` | |
40+
| deployment.replicas | int | `1` | |
41+
| deployment.tolerations | list | `[]` | |
42+
| deployment.topologySpreadConstraints | list | `[]` | |
5043
| fullnameOverride | string | `""` | |
51-
| gateway.externalIPs | list | `[]` | load balancer ips |
52-
| gateway.externalTrafficPolicy | string | `"Cluster"` | |
53-
| gateway.nginx.errorLog | string | `"stderr"` | Nginx error logs path |
54-
| gateway.nginx.errorLogLevel | string | `"warn"` | Nginx error logs level |
55-
| gateway.nginx.workerConnections | string | `"10620"` | Nginx worker connections |
56-
| gateway.nginx.workerProcesses | string | `"auto"` | Nginx worker processes |
57-
| gateway.nginx.workerRlimitNofile | string | `"20480"` | Nginx workerRlimitNoFile |
58-
| gateway.resources | object | `{}` | |
59-
| gateway.securityContext | object | `{}` | |
60-
| gateway.tls.additionalContainerPorts | list | `[]` | Support multiple https ports, See [Configuration](https://github.com/apache/apisix/blob/0bc65ea9acd726f79f80ae0abd8f50b7eb172e3d/conf/config-default.yaml#L99) |
61-
| gateway.tls.certCAFilename | string | `""` | Filename be used in the gateway.tls.existingCASecret |
62-
| gateway.tls.containerPort | int | `9443` | |
63-
| gateway.tls.enabled | bool | `false` | |
64-
| gateway.tls.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) |
65-
| gateway.tls.fallbackSNI | string | `""` | Define SNI to fallback if none is presented by client |
66-
| gateway.tls.http2.enabled | bool | `true` | |
67-
| gateway.tls.servicePort | int | `443` | |
68-
| gateway.tls.sslProtocols | string | `"TLSv1.2 TLSv1.3"` | TLS protocols allowed to use. |
69-
| gateway.type | string | `"NodePort"` | Apache APISIX service type for user access itself |
70-
| image.pullPolicy | string | `"IfNotPresent"` | |
71-
| image.repository | string | `"api7/api7-ingress-controller"` | |
72-
| image.tag | string | `"2.0.0"` | |
73-
| imagePullSecrets | list | `[]` | |
74-
| labelsOverride | object | `{}` | Override default labels assigned to Apache APISIX ingress controller resource |
44+
| labelsOverride | object | `{}` | |
7545
| nameOverride | string | `""` | |
76-
| nodeSelector | object | `{}` | |
77-
| podAnnotations | object | `{}` | |
7846
| podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":1,"minAvailable":"90%"}` | See https://kubernetes.io/docs/tasks/run-application/configure-pdb/ for more details |
7947
| podDisruptionBudget.enabled | bool | `false` | Enable or disable podDisruptionBudget |
8048
| podDisruptionBudget.maxUnavailable | int | `1` | Set the maxUnavailable of podDisruptionBudget |
8149
| 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 |
82-
| podSecurityContext | object | `{}` | |
83-
| priorityClassName | string | `""` | |
84-
| rbac.create | bool | `true` | Specifies whether RBAC resources should be created |
85-
| replicaCount | int | `1` | |
86-
| resources | object | `{}` | |
87-
| securityContext | object | `{}` | |
88-
| service.port | int | `80` | |
89-
| serviceAccount.automountServiceAccountToken | bool | `true` | Whether automounting API credentials for a service account |
90-
| serviceAccount.create | bool | `true` | Specifies whether a ServiceAccount should be created |
91-
| serviceAccount.name | string | `""` | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template |
92-
| serviceMonitor | object | `{"annotations":{},"enabled":false,"interval":"15s","labels":{},"metricRelabelings":{},"namespace":"monitoring"}` | Enable creating ServiceMonitor objects for Prometheus operator. Requires Prometheus operator v0.38.0 or higher. |
93-
| serviceMonitor.annotations | object | `{}` | @param serviceMonitor.annotations ServiceMonitor annotations |
94-
| serviceMonitor.labels | object | `{}` | @param serviceMonitor.labels ServiceMonitor extra labels |
95-
| 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 |
96-
| tolerations | list | `[]` | |
97-
| topologySpreadConstraints | list | `[]` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods |
98-
| updateStrategy | object | `{}` | Update strategy for apisix ingress controller deployment |
9950

charts/ingress-controller/crds/ApisixClusterConfig.yaml

Lines changed: 0 additions & 100 deletions
This file was deleted.

0 commit comments

Comments
 (0)