Skip to content

Commit 1ac5815

Browse files
Víctor Rampérez MartínVíctor Rampérez Martín
authored andcommitted
refactor(apisix): upgrade APISIX helm chart dependency
1 parent 4719f9e commit 1ac5815

File tree

5 files changed

+65
-259
lines changed

5 files changed

+65
-259
lines changed

README.md

Lines changed: 12 additions & 132 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,18 @@ This project is part of [FIWARE](https://www.fiware.org/). For more information
1818
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
1919
**Table of Contents**
2020

21+
- [odrl-authorization](#odrl-authorization)
2122
- [Overview](#overview)
2223
- [Release Information](#release-information)
2324
- [Core components](#core-components)
24-
- [Deployment](#deployment)
25-
- [Local Deployment](#local-deployment)
26-
- [Deployment with Helm](#deployment-with-helm)
27-
- [Testing](#testing)
28-
- [APISIX Deployment Modes](#apisix-deployment-modes)
29-
- [Comparison Table](#comparison-table)
30-
- [1. With ETCD and with the Ingress Controller](#1-with-etcd-and-with-the-ingress-controller)
31-
- [2. With ETCD and without the Ingress Controller](#2-with-etcd-and-without-the-ingress-controller)
32-
- [3. Without ETCD and with the Ingress Controller](#3-without-etcd-and-with-the-ingress-controller)
33-
- [4. Without ETCD and without the Ingress Controller](#4-without-etcd-and-without-the-ingress-controller)
34-
- [Values](#values)
35-
- [How to contribute](#how-to-contribute)
36-
- [License](#license)
25+
- [Deployment](#deployment)
26+
- [Local Deployment](#local-deployment)
27+
- [Deployment with Helm](#deployment-with-helm)
28+
- [Testing](#testing)
29+
- [APISIX Deployment Modes](#apisix-deployment-modes)
30+
- [Values](#values)
31+
- [How to contribute](#how-to-contribute)
32+
- [License](#license)
3733

3834
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
3935

@@ -130,100 +126,7 @@ the [test-scenarios](./it/src/test/resources/it/mvds_basic.feature) against it.
130126

131127
APISIX can operate in four distinct deployment modes. Each mode determines how routes are stored, managed, and persisted, as well as which components are responsible for maintaining the routing configuration.
132128

133-
### Comparison Table
134-
135-
| Mode | ETCD | Ingress Controller | Route Source | Persistence | Notes |
136-
| -------------------------------------------------- | ---- | ------------------ | ------------------------------------------ | ------------------------------ | ------------------------------------------ |
137-
| **1. With ETCD and with Ingress Controller** | ✔️ | ✔️ | APISIX CRDs, Kubernetes Ingress, Admin API | ✔️ Persisted in ETCD | Recommended for Kubernetes-native setups |
138-
| **2. With ETCD and without Ingress Controller** | ✔️ || Admin API only | ✔️ Persisted in ETCD | Chart-defined routes are *not* initialized |
139-
| **3. Without ETCD and with Ingress Controller** || ✔️ | APISIX CRDs, Kubernetes Ingress, Admin API | ❌ In-memory only | Requires at least one route to start |
140-
| **4. Without ETCD and without Ingress Controller** ||| Static ConfigMap (`apisix.yaml`) | ✔️ Persisted only in ConfigMap | **Under development**; installation may fail but upgrades will work |
141-
142-
---
143-
144-
### 1. With ETCD and with the Ingress Controller
145-
146-
In this mode, APISIX persists all route definitions in ETCD. Routes may be defined via APISIX CRDs, standard Kubernetes Ingress resources, or the Admin API.
147-
Because the configuration is stored in ETCD, all routes—including those created through the Admin API—will **remain available after restarts**.
148-
149-
```yaml
150-
apisix:
151-
ingress-controller:
152-
enabled: true
153-
apisix:
154-
deployment:
155-
role: traditional
156-
role_traditional:
157-
config_provider: yaml
158-
etcd:
159-
enabled: true
160-
```
161-
162-
---
163-
164-
### 2. With ETCD and without the Ingress Controller
165-
166-
In this configuration, ETCD persists the routes, but no Ingress Controller is available to manage them. As a result, routes can **only** be created or updated using the APISIX Admin API.
167-
Chart-defined routes are **not** initialized automatically.
168-
169-
```yaml
170-
apisix:
171-
ingress-controller:
172-
enabled: false
173-
apisix:
174-
deployment:
175-
role: traditional
176-
role_traditional:
177-
config_provider: yaml
178-
etcd:
179-
enabled: true
180-
```
181-
182-
---
183-
184-
### 3. Without ETCD and with the Ingress Controller
185-
186-
When ETCD is disabled, APISIX loads all routes from APISIX CRDs and stores them in memory. The Ingress Controller continuously synchronizes APISIX with these CRDs.
187-
Although the Admin API can still modify routes, such changes **will not persist across restarts**.
188-
Kubernetes Ingress objects may also be used to define new routes.
189-
190-
> [!WARNING]
191-
> APISIX requires at least one route to exist for the service to start correctly.
192-
193-
```yaml
194-
apisix:
195-
ingress-controller:
196-
enabled: true
197-
apisix:
198-
deployment:
199-
role: traditional
200-
role_traditional:
201-
config_provider: yaml
202-
etcd:
203-
enabled: false
204-
```
205-
206-
---
207-
208-
### 4. Without ETCD and without the Ingress Controller
209-
210-
In this mode, routes are defined statically within the `apisix.yaml` ConfigMap. APISIX loads these routes at startup, and the configuration remains unchanged unless the ConfigMap or Helm values are manually updated.
211-
This mode is suitable for simple or fully static environments.
212-
213-
> [!WARNING]
214-
> This mode is currently under development. Installation may fail, but upgrades will function correctly.
215-
216-
```yaml
217-
apisix:
218-
ingress-controller:
219-
enabled: false
220-
apisix:
221-
deployment:
222-
mode: standalone
223-
role: data_plane
224-
etcd:
225-
enabled: false
226-
```
129+
For mor information, please check the oficial APISIX documentation on [deployment modes](https://apisix.apache.org/docs/apisix/deployment-modes/) and the [APISIX Helm Chart documentation](https://github.com/apache/apisix-helm-chart/tree/master) for configuration details.
227130

228131
<!-- BEGIN HELM DOCS -->
229132

@@ -519,35 +422,12 @@ true
519422
</tr>
520423
<tr>
521424
<td>apisix.routes</td>
522-
<td>dict</td>
425+
<td>list</td>
523426
<td><pre lang="json">
524427
[]
525428
</pre>
526429
</td>
527-
<td>Configuration of routes for apisix
528-
529-
```yaml
530-
uri: /*
531-
host: host-name-test
532-
type: Service
533-
namespace: super-ns # release namespace by default
534-
upstream:
535-
nodes:
536-
data-service-test:9090: 1
537-
type: roundrobin
538-
plugins:
539-
openid-connect:
540-
bearer_only: true
541-
use_jwks: true
542-
client_id: data-service
543-
client_secret: unused
544-
discovery: https://verifier:8080/services/data-service/.well-known/openid-configuration
545-
opa:
546-
host: "http://localhost:8181"
547-
policy: policy/main
548-
with_body: true
549-
```
550-
</td>
430+
<td>Reserved for future use. Route definitions are no longer generated from this field. In standalone mode (default), define routes via <code>apisix.apisix.deployment.standalone.config</code>. When the ingress controller is enabled, use ApisixRoute CRDs or Kubernetes Ingress resources directly.</td>
551431
</tr>
552432
<tr>
553433
<td>fullnameOverride</td>

charts/odrl-authorization/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: odrl-authorization
33
description: Umbrella chart to deploy FIWARE ODRL Authorization
44
type: application
5-
version: 1.0.5
5+
version: 2.0.0
66
dependencies:
77
# authorization
88
- name: odrl-pap
@@ -11,5 +11,5 @@ dependencies:
1111
repository: https://fiware.github.io/helm-charts
1212
- name: apisix
1313
condition: apisix.enabled
14-
version: 2.12.3
14+
version: 2.13.0
1515
repository: https://apache.github.io/apisix-helm-chart

charts/odrl-authorization/templates/routes.yaml

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

charts/odrl-authorization/values.yaml

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,31 @@ apisix:
1919
defaultIngressClass: false
2020
apisix:
2121
deployment:
22-
mode: traditional
22+
mode: standalone
23+
# -- Deployment role
24+
# Optional: traditional, data_plane, control_plane
25+
#
26+
# ref: https://apisix.apache.org/docs/apisix/deployment-modes/
27+
role: "data_plane"
28+
role_traditional:
29+
# enum: etcd, yaml
30+
config_provider: "yaml"
31+
# -- Standalone rules configuration
32+
#
33+
# ref: https://apisix.apache.org/docs/apisix/deployment-modes/#standalone
34+
standalone:
35+
# -- Rules which are set to the default apisix.yaml configmap.
36+
# If apisix.deployment.standalone.existingConfigMap is empty, these are used.
37+
config: |
38+
routes:
39+
- uri: /hi
40+
upstream:
41+
nodes:
42+
"127.0.0.1:1980": 1
43+
type: roundrobin
44+
# -- Specifies the name of the ConfigMap that contains the rule configurations.
45+
# The configuration must be set to the key named `apisix.yaml` in the configmap.
46+
existingConfigMap: ""
2347
admin:
2448
enabled: true
2549
customPlugins:
@@ -84,32 +108,6 @@ apisix:
84108
host: 'http://localhost:8181'
85109
policy: policy/main
86110
with_body: true
87-
# -- (dict) Configuration of routes for apisix
88-
# @raw
89-
#
90-
# ```yaml
91-
# uri: /*
92-
# host: host-name-test
93-
# type: Service
94-
# namespace: super-ns # release namespace by default
95-
# upstream:
96-
# nodes:
97-
# data-service-test:9090: 1
98-
# type: roundrobin
99-
# plugins:
100-
# openid-connect:
101-
# bearer_only: true
102-
# use_jwks: true
103-
# client_id: data-service
104-
# client_secret: unused
105-
# discovery: https://verifier:8080/services/data-service/.well-known/openid-configuration
106-
# opa:
107-
# host: "http://localhost:8181"
108-
# policy: policy/main
109-
# with_body: true
110-
# ```
111-
#
112-
routes: []
113111
etcd:
114112
enabled: true
115113

deploy/helmfile.yaml

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ releases:
7272
values:
7373
- apisix:
7474
ingress-controller:
75+
enabled: true
7576
apisix:
7677
adminService:
7778
name: odrl-authorization-apisix-admin
@@ -80,9 +81,31 @@ releases:
8081
type: apisix-standalone
8182
apisix:
8283
deployment:
83-
role: traditional
84-
role_traditional:
85-
config_provider: yaml
84+
standalone:
85+
config: |
86+
routes:
87+
- host: apisix.127.0.0.1.nip.io
88+
uri: "/*"
89+
upstream:
90+
nodes:
91+
mockserver:8080: 1
92+
type: roundrobin
93+
plugins:
94+
openid-connect:
95+
client_id: ""
96+
client_secret: the-secret
97+
bearer_only: true
98+
use_jwks: true
99+
discovery: http://mockserver:8080/.well-known/openid-configuration
100+
opa:
101+
host: http://localhost:8181
102+
policy: policy/main
103+
with_body: true
104+
- host: pap.127.0.0.1.nip.io
105+
uri: /*
106+
upstream:
107+
nodes:
108+
odrl-pap:8080: 1
86109
ingress:
87110
enabled: true
88111
hostname: apisix.127.0.0.1.nip.io
@@ -94,29 +117,6 @@ releases:
94117
nodePort: 30080
95118
catchAllRoute:
96119
enabled: false
97-
routes:
98-
- host: apisix.127.0.0.1.nip.io
99-
uri: "/*"
100-
upstream:
101-
nodes:
102-
mockserver:8080: 1
103-
type: roundrobin
104-
plugins:
105-
openid-connect:
106-
client_id: ""
107-
client_secret: the-secret
108-
bearer_only: true
109-
use_jwks: true
110-
discovery: http://mockserver:8080/.well-known/openid-configuration
111-
opa:
112-
host: http://localhost:8181
113-
policy: policy/main
114-
with_body: true
115-
- host: pap.127.0.0.1.nip.io
116-
uri: /*
117-
upstream:
118-
nodes:
119-
odrl-pap:8080: 1
120120
etcd:
121121
enabled: false
122122
opa:

0 commit comments

Comments
 (0)