@@ -53,18 +53,18 @@ This UI communicates with the API Server to provide a user-friendly interface fo
5353┌─────────────────────────────────────────────┐
5454│ Kubernetes Cluster │
5555│ │
56- │ ┌──────────────┐ ┌──────────────┐ │
57- │ │ Forkspacer │◄────►│ API Server │ │
58- │ │ Operator │ │ (Backend) │ │
59- │ │ (watches │ │ (REST API) │ │
60- │ │ CRDs) │ └──────┬───────┘ │
61- │ └──────────────┘ │ │
62- │ │ │
63- │ ┌────────▼───────┐ │
64- │ │ Operator UI │◄──┼─── Users
65- │ │ (Frontend) │ │
66- │ │ (Nginx) │ │
67- │ └────────────────┘ │
56+ │ ┌──────────────┐ ┌──────────────┐ │
57+ │ │ Forkspacer │◄────►│ API Server │ │
58+ │ │ Operator │ │ (Backend) │ │
59+ │ │ (watches │ │ (REST API) │ │
60+ │ │ CRDs) │ └──────┬───────┘ │
61+ │ └──────────────┘ │ │
62+ │ │ │
63+ │ ┌────────▼───────┐ │
64+ │ │ Operator UI │◄──── ┼─── Users
65+ │ │ (Frontend) │ │
66+ │ │ (Nginx) │ │
67+ │ └────────────────┘ │
6868└─────────────────────────────────────────────┘
6969```
7070
@@ -176,29 +176,34 @@ spec:
176176### Module Components Explained
177177
178178**Metadata:**
179+
179180- ` name`: Module identifier
180181- `category` : Classification (database, monitoring, storage, etc.)
181182- `description` : Human-readable description
182183- `resource_usage` : Expected CPU/memory consumption
183184
184185**Config:**
186+
185187- Dynamic form fields rendered in the UI
186188- Types : ` option` , `integer`, `string`, `boolean`
187189- Each config item has validation rules (required, min/max, values)
188190- UI auto-generates forms based on config definitions
189191
190192**Spec:**
193+
191194- `repo` : Helm repository URL
192195- `chartName` : Helm chart name
193196- `version` : Chart version (supports templating)
194197- `values` : Helm values (from file, raw YAML, or ConfigMap)
195198
196199**Outputs:**
200+
197201- Connection information exposed after deployment
198202- Can reference static values or Kubernetes secrets
199203- Displayed in the UI for easy access
200204
201205**Workspace:**
206+
202207- Associates the module with a workspace
203208- Enables multi-tenancy and resource isolation
204209
@@ -250,10 +255,10 @@ spec:
250255 app: operator-ui
251256 spec:
252257 containers:
253- - name: operator-ui
254- image: ghcr.io/forkspacer/operator-ui:v0.1.0
255- ports:
256- - containerPort: 80
258+ - name: operator-ui
259+ image: ghcr.io/forkspacer/operator-ui:v0.1.0
260+ ports:
261+ - containerPort: 80
257262---
258263apiVersion: v1
259264kind: Service
@@ -264,8 +269,8 @@ spec:
264269 selector:
265270 app: operator-ui
266271 ports:
267- - port: 80
268- targetPort: 80
272+ - port: 80
273+ targetPort: 80
269274 type: ClusterIP
270275` ` `
271276
@@ -507,17 +512,20 @@ docker run -p 8080:80 ghcr.io/forkspacer/operator-ui:v0.1.0
507512#### Version Bumping Guidelines
508513
509514** Patch version (v0.1.0 → v0.1.1):**
515+
510516- Bug fixes
511517- Security patches
512518- Documentation updates
513519- Performance improvements (no API changes)
514520
515521** Minor version (v0.1.1 → v0.2.0):**
522+
516523- New features
517524- New UI components
518525- API additions (backwards compatible)
519526
520527** Major version (v0.9.0 → v1.0.0):**
528+
521529- First stable production release
522530- Breaking API changes
523531- Major architectural changes
@@ -623,20 +631,20 @@ metadata:
623631spec :
624632 ingressClassName : nginx
625633 tls :
626- - hosts :
627- - forkspacer-ui.example.com
628- secretName : operator-ui-tls
634+ - hosts :
635+ - forkspacer-ui.example.com
636+ secretName : operator-ui-tls
629637 rules :
630- - host : forkspacer-ui.example.com
631- http :
632- paths :
633- - path : /
634- pathType : Prefix
635- backend :
636- service :
637- name : operator-ui
638- port :
639- number : 80
638+ - host : forkspacer-ui.example.com
639+ http :
640+ paths :
641+ - path : /
642+ pathType : Prefix
643+ backend :
644+ service :
645+ name : operator-ui
646+ port :
647+ number : 80
640648` ` `
641649
642650---
@@ -648,7 +656,8 @@ spec:
648656Configure the API server endpoint in ` src/config.ts`:
649657
650658` ` ` typescript
651- export const API_BASE_URL = process.env.REACT_APP_API_URL || 'http://localhost:8080';
659+ export const API_BASE_URL =
660+ process.env.REACT_APP_API_URL || "http://localhost:8080";
652661` ` `
653662
654663# ## Custom Nginx Configuration
@@ -755,6 +764,7 @@ This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENS
755764# # Acknowledgments
756765
757766Built with :
767+
758768- [React](https://reactjs.org/) - UI framework
759769- [Create React App](https://create-react-app.dev/) - Build tooling
760770- [TypeScript](https://www.typescriptlang.org/) - Type safety
0 commit comments