@@ -43,9 +43,18 @@ postInstallManifests:
4343
4444## Configuration Format
4545
46+ ### Supported URL Formats
47+
48+ BeKind supports multiple ways to specify manifest locations:
49+
50+ - **Local files**: ` file://` URLs with absolute paths
51+ - **HTTP(S) URLs**: Direct links to manifests served as `text/plain`
52+
53+ You can mix and match both types in the same configuration.
54+
4655# ## File URLs
4756
48- Each manifest must be specified as a ` file://` URL with an absolute path :
57+ Local files must be specified as `file://` URLs with absolute paths :
4958
5059` ` ` yaml
5160postInstallManifests:
@@ -56,8 +65,6 @@ postInstallManifests:
5665{: .warning }
5766Relative paths are not supported. Always use absolute paths with the `file://` prefix.
5867
59- # ## Path Examples
60-
6168**Linux/macOS**:
6269` ` ` yaml
6370postInstallManifests:
@@ -71,6 +78,31 @@ postInstallManifests:
7178 - "file:///C:/Users/username/k8s/app.yaml"
7279` ` `
7380
81+ # ## HTTP(S) URLs
82+
83+ Manifests can be fetched from remote URLs :
84+
85+ ` ` ` yaml
86+ postInstallManifests:
87+ - "https://yoursite.example.org/manifests/deployment.yaml"
88+ - "http://internal-server.local/configs/service.yaml"
89+ ` ` `
90+
91+ {: .note }
92+ Remote manifests must be served with the `text/plain` or `application/yaml` content type.
93+
94+ # ## Mixed Configuration
95+
96+ You can combine local files and remote URLs :
97+
98+ ` ` ` yaml
99+ postInstallManifests:
100+ - "file:///home/user/local/namespace.yaml"
101+ - "https://example.com/shared/rbac.yaml"
102+ - "file:///home/user/local/deployment.yaml"
103+ - "https://example.com/configs/service.yaml"
104+ ` ` `
105+
74106---
75107
76108# # Examples
@@ -94,6 +126,25 @@ postInstallManifests:
94126 - "file:///home/user/networking/ingress.yaml"
95127` ` `
96128
129+ # ## Remote Manifests
130+
131+ ` ` ` yaml
132+ postInstallManifests:
133+ - "https://raw.githubusercontent.com/user/repo/main/manifests/app.yaml"
134+ - "https://gist.githubusercontent.com/user/abc123/raw/deployment.yaml"
135+ - "https://yoursite.example.org/configs/service.yaml"
136+ ` ` `
137+
138+ # ## Mixed Local and Remote
139+
140+ ` ` ` yaml
141+ postInstallManifests:
142+ - "file:///home/user/k8s/namespace.yaml"
143+ - "https://example.com/configs/base-config.yaml"
144+ - "file:///home/user/k8s/secrets.yaml"
145+ - "https://example.com/configs/monitoring.yaml"
146+ ` ` `
147+
97148# ## With Argo CD Applications
98149
99150` ` ` yaml
@@ -168,7 +219,7 @@ spec:
168219 image: my-app:latest
169220` ` `
170221
171- # ## File Accessibility
222+ # ## Local File Accessibility
172223
173224Ensure BeKind can read the manifest files :
174225
@@ -180,6 +231,23 @@ ls -l /home/user/k8s/app.yaml
180231chmod 644 /home/user/k8s/app.yaml
181232` ` `
182233
234+ # ## Remote URL Accessibility
235+
236+ For HTTP(S) URLs, ensure :
237+ - The URL is accessible from where BeKind is running
238+ - The server returns `text/plain` or `application/yaml` content type
239+ - No authentication is required, or use a URL with embedded credentials (not recommended for production)
240+ - HTTPS certificates are valid (or use HTTP for internal/trusted networks)
241+
242+ Test URL accessibility :
243+
244+ ` ` ` bash
245+ # Test with curl
246+ curl -I https://example.com/manifests/app.yaml
247+
248+ # Should return 200 OK with text/plain or application/yaml content type
249+ ` ` `
250+
183251---
184252
185253# # Execution Order
@@ -240,7 +308,9 @@ Currently, only YAML files are supported. JSON manifests are not supported.
240308
241309# ## File Not Found
242310
243- If BeKind can't find a manifest file :
311+ If BeKind can't find a manifest :
312+
313+ **For local files:**
244314
2453151. **Check the path is absolute** :
246316 ` ` ` yaml
@@ -263,6 +333,24 @@ If BeKind can't find a manifest file:
263333 chmod 644 /home/user/project/manifests/app.yaml
264334 ` ` `
265335
336+ **For remote URLs:**
337+
338+ 1. **Test URL accessibility** :
339+ ` ` ` bash
340+ curl -v https://example.com/manifests/app.yaml
341+ ` ` `
342+
343+ 2. **Check content type** :
344+ ` ` ` bash
345+ curl -I https://example.com/manifests/app.yaml
346+ # Should see: Content-Type: text/plain or application/yaml
347+ ` ` `
348+
349+ 3. **Verify network connectivity** :
350+ - Can you reach the server from your machine?
351+ - Are there firewall rules blocking access?
352+ - Is the URL correct (check for typos)?
353+
266354# ## Application Failures
267355
268356If `kubectl apply` fails :
@@ -337,6 +425,20 @@ If resources depend on each other:
337425
338426# # Best Practices
339427
428+ # ## Use Remote Manifests for Shared Configurations
429+
430+ Store common manifests in a central location :
431+
432+ ` ` ` yaml
433+ postInstallManifests:
434+ # Shared base configuration
435+ - "https://config.company.com/k8s/base/namespace.yaml"
436+ - "https://config.company.com/k8s/base/rbac.yaml"
437+ # Local overrides
438+ - "file:///home/user/local/secrets.yaml"
439+ - "file:///home/user/local/app.yaml"
440+ ` ` `
441+
340442# ## Organize by Environment
341443
342444```
@@ -360,6 +462,13 @@ postInstallManifests:
360462 - "file://${HOME}/.bekind/profiles/dev/manifests/apps.yaml"
361463```
362464
465+ Or use remote URLs for consistency:
466+ ``` yaml
467+ postInstallManifests :
468+ - " https://github.com/company/k8s-configs/raw/main/dev/namespace.yaml"
469+ - " https://github.com/company/k8s-configs/raw/main/dev/apps.yaml"
470+ ` ` `
471+
363472### Combine Related Resources
364473
365474Group related resources in single files:
0 commit comments