Skip to content

Commit d1405e4

Browse files
committed
fixed some more docs
Signed-off-by: Christian Hernandez <christian@chernand.io>
1 parent 4a9464a commit d1405e4

File tree

2 files changed

+117
-7
lines changed

2 files changed

+117
-7
lines changed

docs/configuration.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ loadDockerImages:
181181

182182
**Type**: `array`
183183
**Optional**: Yes
184-
**Description**: List of Kubernetes YAML manifest files to apply after cluster setup.
184+
**Description**: List of Kubernetes YAML manifest files to apply after cluster setup. Supports both local files (`file://`) and remote URLs (`http://` or `https://`).
185185

186186
See the [Post Install Manifests feature documentation]({% link features/post-install-manifests.md %}) for detailed information.
187187

@@ -190,7 +190,8 @@ See the [Post Install Manifests feature documentation]({% link features/post-ins
190190
```yaml
191191
postInstallManifests:
192192
- "file:///home/user/k8s/app.yaml"
193-
- "file:///home/user/k8s/service.yaml"
193+
- "https://example.com/configs/service.yaml"
194+
- "file:///home/user/k8s/ingress.yaml"
194195
```
195196

196197
---

docs/features/post-install-manifests.md

Lines changed: 114 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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
5160
postInstallManifests:
@@ -56,8 +65,6 @@ postInstallManifests:
5665
{: .warning }
5766
Relative paths are not supported. Always use absolute paths with the `file://` prefix.
5867

59-
### Path Examples
60-
6168
**Linux/macOS**:
6269
```yaml
6370
postInstallManifests:
@@ -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

173224
Ensure BeKind can read the manifest files:
174225

@@ -180,6 +231,23 @@ ls -l /home/user/k8s/app.yaml
180231
chmod 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

245315
1. **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

268356
If `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
365474
Group related resources in single files:

0 commit comments

Comments
 (0)