You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Feat: Introduce oci and private helm repository support
Refs: #2277
- Added support for oci repositories in cnf config (through fields
outlined in documentation) and private helm repositories (requiring
auth).
- Introduced authentication and certificate support in cnf config
through `auth_defaults` and override `auth` field.
- Added ENV expansion to cnf config (jinja templates) - provided through
the crinja shard.
- Three new tests added to verify functionality (oci pull, private helm
repo pull and certificate authentification) - tests utilize containers
as repos.
- Documentation update for new cnf config.
Signed-off-by: svteb <slavo.valko@tietoevry.com>
@@ -59,6 +59,23 @@ New releases may change the format of cnf-testsuite.yml. To update your older co
59
59
60
60
### Keys and Values
61
61
62
+
#### Environment variables (Jinja)
63
+
64
+
You can reference environment variables with Crinja syntax: {{ ENV.VAR_NAME }}. Rendering is applied only if the config contains {{ ENV. or {% … %}. Avoid mixing Helm/Go templates (e.g., {{ .Release.Namespace }}) with Crinja; quote them to keep them literal.
65
+
66
+
```yaml
67
+
config_version: v2
68
+
deployments:
69
+
helm_charts:
70
+
- name: private-chart
71
+
helm_repo_name: corp
72
+
helm_repo_url: "https://charts.example.com"
73
+
helm_chart_name: awesome
74
+
auth:
75
+
username: "{{ ENV.REPO_USER }}"
76
+
password: "{{ ENV.REPO_PASS }}"
77
+
```
78
+
62
79
#### Config version
63
80
64
81
Current config version is `"v2"`
@@ -134,6 +151,58 @@ image_registry_fqdns:
134
151
135
152
Described below: [link](#5G-parameters)
136
153
154
+
155
+
##### tls_profiles
156
+
157
+
Define reusable TLS bundles (CA/cert/key) that deployments can reference. Useful for private Helm repos and OCI registries.
158
+
159
+
```yaml
160
+
config_version: v2
161
+
common:
162
+
tls_profiles:
163
+
corp_ca:
164
+
ca_file: /path/to/ca.crt
165
+
cert_file: /path/to/client.crt
166
+
key_file: /path/to/client.key
167
+
deployments:
168
+
helm_charts:
169
+
- name: web-frontend
170
+
tls_profile: corp_ca
171
+
...
172
+
```
173
+
174
+
##### auth_defaults
175
+
176
+
Optional default credentials for private repositories and registries. Keys are hosts; values are credentials. Per-chart auth can override these.
177
+
178
+
```yaml
179
+
config_version: v2
180
+
common:
181
+
auth_defaults:
182
+
oci_registries:
183
+
"registry.example.com":
184
+
token: "{{ ENV.OCI_TOKEN }}" # or username/password
**Note:** If you pre-login (e.g., helm registry login … or helm repo add … with credentials), you don’t need to specify auth in the config.
205
+
137
206
#### Deployments
138
207
139
208
Deployments are defined as three arrays, each for different installation method. Each array element represents one deployment, and they are meant to represent a single CNF together.
@@ -171,23 +240,64 @@ deployments:
171
240
172
241
##### helm_charts
173
242
174
-
Deployment, defined by helm chart and helm repository.
175
-
Helm repository name and url can be omitted if repository is already present locally.
176
-
Explanations with example:
243
+
Deployment from either a classic Helm repository or an OCI registry.
244
+
245
+
###### Classic Helm repositories
177
246
178
247
```yaml
179
248
---
180
249
config_version: "v2"
181
250
deployments:
182
251
helm_charts:
183
-
- name: coredns # Name of the deployment
184
-
helm_repo_name: stable # Name of the repository for the helm chart
0 commit comments