Skip to content

Commit d4f5f12

Browse files
authored
Merge pull request opencloud-eu#31 from ferenc-hechler/fix/standard-chart-structure
Move charts to standard Helm structure with charts directory
2 parents 238b07e + 8d3be1f commit d4f5f12

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+922
-91
lines changed

README.md

Lines changed: 88 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ Welcome to the **OpenCloud Helm Charts** repository! This repository is intended
1010
- [Community](#-community)
1111
- [Contributing](#-contributing)
1212
- [Prerequisites](#prerequisites)
13-
- [Installing the Helm Charts](#-installing-the-helm-charts)
13+
- [Available Charts](#-available-charts)
14+
- [Production Chart](#production-chart-chartsopencloud)
15+
- [Development Chart](#development-chart-chartsopencloud-dev)
1416
- [Architecture](#architecture)
1517
- [Component Interaction Diagram](#component-interaction-diagram)
1618
- [Configuration](#configuration)
@@ -25,7 +27,6 @@ Welcome to the **OpenCloud Helm Charts** repository! This repository is intended
2527
- [Gateway API Configuration](#gateway-api-configuration)
2628
- [HTTPRoute Settings](#httproute-settings)
2729
- [Setting Up Gateway API with Talos, Cilium, and cert-manager](#setting-up-gateway-api-with-talos-cilium-and-cert-manager)
28-
- [Installing the DEV Helm Charts](#-installing-the-dev-helm-charts)
2930
- [License](#-license)
3031
- [Community Maintained](#community-maintained)
3132

@@ -61,21 +62,50 @@ Please ensure that your PR follows best practices and includes necessary documen
6162
- PV provisioner support in the underlying infrastructure (if persistence is enabled)
6263
- External ingress controller (e.g., Cilium Gateway API) for routing traffic to the services
6364

64-
## 📦 Installing the Helm Charts
65+
## 📦 Available Charts
6566

66-
To install the chart with the release name `opencloud`:
67+
This repository contains the following charts:
68+
69+
### Production Chart (`charts/opencloud`)
70+
71+
The complete OpenCloud deployment with all components for production use:
72+
73+
- Full microservices architecture
74+
- Keycloak for authentication
75+
- MinIO for object storage
76+
- Document editing with Collabora and/or OnlyOffice
77+
- Full Gateway API integration
6778

6879
```bash
69-
helm install opencloud . \
80+
helm install opencloud ./charts/opencloud \
7081
--namespace opencloud \
7182
--create-namespace \
83+
--set httpRoute.enabled=true \
7284
--set httpRoute.gateway.name=opencloud-gateway \
7385
--set httpRoute.gateway.namespace=kube-system
7486
```
7587

88+
[View Production Chart Documentation](./charts/opencloud/README.md)
89+
90+
### Development Chart (`charts/opencloud-dev`)
91+
92+
A lightweight single-container deployment for development and testing:
93+
94+
- Simplified deployment (single Docker container)
95+
- Minimal resource requirements
96+
- Quick setup for testing
97+
98+
```bash
99+
helm install opencloud ./charts/opencloud-dev \
100+
--namespace opencloud \
101+
--create-namespace
102+
```
103+
104+
[View Development Chart Documentation](./charts/opencloud-dev/README.md)
105+
76106
## Architecture
77107

78-
This Helm chart deploys the following components:
108+
The production chart (`charts/opencloud`) deploys the following components:
79109

80110
1. **OpenCloud** - Main application (fork of ownCloud Infinite Scale)
81111
2. **Keycloak** - Authentication provider with OpenID Connect
@@ -173,7 +203,7 @@ Key interactions:
173203

174204
## Configuration
175205

176-
The following table lists the configurable parameters of the OpenCloud chart and their default values.
206+
The following sections outline the main configuration parameters for the production chart (`charts/opencloud`). For a complete list of configuration options, please refer to the [values.yaml](./charts/opencloud/values.yaml) file.
177207

178208
### Global Settings
179209

@@ -309,15 +339,60 @@ The following table lists the configurable parameters of the OpenCloud chart and
309339

310340
## Gateway API Configuration
311341

312-
This chart includes HTTPRoute resources that can be used to expose the OpenCloud, Keycloak, and MinIO services externally. The HTTPRoutes are configured to route traffic to the respective services.
342+
The production chart includes HTTPRoute resources that can be used to expose the OpenCloud, Keycloak, and MinIO services externally. The HTTPRoutes are configured to route traffic to the respective services.
313343

314344
### HTTPRoute Settings
315345

316346
| Parameter | Description | Default |
317347
| --------- | ----------- | ------- |
318-
| `httpRoute.enabled` | Enable HTTPRoutes | `true` |
348+
| `httpRoute.enabled` | Enable HTTPRoutes | `false` |
349+
Comment
350+
| `httpRoute.gateway.create` | Create Gateway resource | `false` |
319351
| `httpRoute.gateway.name` | Gateway name | `opencloud-gateway` |
320352
| `httpRoute.gateway.namespace` | Gateway namespace | `""` (defaults to Release.Namespace) |
353+
| `httpRoute.gateway.className` | Gateway class | `cilium` |
354+
355+
### Advanced Configuration Options
356+
357+
The production chart supports several advanced configuration options introduced in recent updates:
358+
359+
#### Environment Variables
360+
361+
You can set custom environment variables for the OpenCloud deployment:
362+
363+
```yaml
364+
opencloud:
365+
env:
366+
- name: MY_VARIABLE
367+
value: "my-value"
368+
- name: ANOTHER_VARIABLE
369+
value: "another-value"
370+
```
371+
372+
Or via command line:
373+
```bash
374+
--set opencloud.env[0].name=MY_VARIABLE,opencloud.env[0].value=my-value
375+
```
376+
377+
#### Proxy Basic Auth
378+
379+
Enable basic authentication for the proxy:
380+
381+
```yaml
382+
opencloud:
383+
proxy:
384+
basicAuth:
385+
enabled: true
386+
```
387+
388+
Or via command line:
389+
```bash
390+
--set opencloud.proxy.basicAuth.enabled=true
391+
```
392+
393+
#### Improved Namespace Handling
394+
395+
The chart now automatically uses the correct namespace across all resources, eliminating the need to manually set the namespace in multiple places.
321396

322397
The following HTTPRoutes are created when `httpRoute.enabled` is set to `true`:
323398

@@ -372,7 +447,7 @@ All HTTPRoutes are configured to use the same Gateway specified by `httpRoute.ga
372447

373448
## Setting Up Gateway API with Talos, Cilium, and cert-manager
374449

375-
This section provides a practical guide to setting up the Gateway API with Talos, Cilium, and cert-manager for OpenCloud.
450+
This section provides a practical guide to setting up the Gateway API with Talos, Cilium, and cert-manager for the production OpenCloud chart.
376451

377452
### Prerequisites
378453

@@ -604,13 +679,14 @@ Finally, install OpenCloud using Helm:
604679

605680
```bash
606681
# Clone the repository
607-
git clone https://github.com/your-repo/opencloud-helm.git
682+
git clone https://github.com/opencloud-eu/helm.git opencloud-helm
608683
cd opencloud-helm
609684

610685
# Install OpenCloud
611-
helm install opencloud . \
686+
helm install opencloud ./charts/opencloud \
612687
--namespace opencloud \
613688
--create-namespace \
689+
--set httpRoute.enabled=true \
614690
--set httpRoute.gateway.name=opencloud-gateway \
615691
--set httpRoute.gateway.namespace=kube-system
616692
```
@@ -656,83 +732,6 @@ kubectl get pods -n opencloud -l app.kubernetes.io/component=onlyoffice-redis
656732
kubectl get pods -n opencloud -l app.kubernetes.io/component=onlyoffice-rabbitmq
657733
```
658734

659-
## 📦 Installing the DEV Helm Charts
660-
661-
Spin up a temporary local instance of OpenCloud using a single Docker image.
662-
663-
**Note:** This chart is primarily intended for Kubernetes deployment development and testing environments,
664-
not for production use. It provides a simplified setup with minimal configuration.
665-
666-
This version deploys opencloud as a single Docker image as described here:
667-
https://docs.opencloud.eu/docs/admin/getting-started/docker/docker
668-
669-
Deployment from the file system:
670-
671-
```
672-
$ helm install opencloud -n opencloud --create-namespace ./opencloud-dev --set=adminPassword="<MY-SECURE-PASSWORD>" --set=url="<PUBLIC-URL>"
673-
```
674-
675-
It is important that the public-url is reachable, and forwarded to the backend-service opencloud-service:443,
676-
otherwise login will not be possible or the message "missing or invalid config" is shown.
677-
678-
For testing with the default settings port-forwarding from localhost can be used:
679-
680-
```
681-
$ helm install opencloud -n opencloud --create-namespace ./opencloud-dev
682-
683-
Release "opencloud" does not exist. Installing it now.
684-
NAME: opencloud
685-
LAST DEPLOYED: Wed Apr 2 01:16:19 2025
686-
NAMESPACE: opencloud
687-
STATUS: deployed
688-
REVISION: 1
689-
TEST SUITE: None
690-
```
691-
692-
Establish a port-forwarding from localhost
693-
694-
```
695-
$ kubectl port-forward -n opencloud svc/opencloud-service 9200:443
696-
697-
Forwarding from 127.0.0.1:9200 -> 9200
698-
Forwarding from [::1]:9200 -> 9200
699-
...
700-
```
701-
702-
Now open in a browser the url: [https://localhost:9200](https://localhost:9200) while
703-
the port forwarding is active.
704-
705-
You need to accept the risc of a self signed certificate.
706-
(see [Common Issues & Help](https://docs.opencloud.eu/docs/admin/getting-started/docker/#troubleshooting)) in
707-
the getting started with Docker documentation.
708-
709-
Now you can login with the default admin / admin
710-
711-
If you want to change the public URL you can upgrade the deployment with the following command:
712-
713-
```
714-
$ helm upgrade opencloud -n opencloud ./charts/opencloud-dev --set=url="<NEW-PUBLIC-URL>"
715-
716-
Release "opencloud" has been upgraded. Happy Helming!
717-
NAME: opencloud
718-
LAST DEPLOYED: Wed Apr 2 01:42:51 2025
719-
NAMESPACE: opencloud
720-
STATUS: deployed
721-
REVISION: 2
722-
TEST SUITE: None
723-
```
724-
725-
The opencloud deployment will be restarted and is availble after a few seconds configured for the new url.
726-
727-
If you want to uninstall opencloud this can be done with
728-
729-
```
730-
$ helm uninstall -n opencloud opencloud
731-
732-
release "opencloud" uninstalled
733-
```
734-
735-
The data PVC is configured to be kept, so it will survive uninstall and install of opencloud-dev
736735

737736
## 📜 License
738737

File renamed without changes.

charts/opencloud-dev/README.md

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
<img src="https://helm.sh/img/helm.svg" width="100px" heigth="100px">
2+
3+
# OpenCloud Development Helm Chart
4+
5+
This Helm chart deploys a lightweight development version of OpenCloud using a single Docker container.
6+
7+
## 📑 Table of Contents
8+
9+
- [About](#-about)
10+
- [Prerequisites](#prerequisites)
11+
- [Installation](#-installation)
12+
- [Configuration](#configuration)
13+
- [Port Forwarding](#port-forwarding)
14+
- [License](#-license)
15+
16+
## 🚀 About
17+
18+
This development chart provides a simplified OpenCloud deployment for testing and development purposes.
19+
It uses a single Docker container that includes all necessary OpenCloud services bundled together.
20+
21+
**Note:** This chart is NOT intended for production use. For production deployments,
22+
please use the main [OpenCloud Helm Chart](../opencloud/).
23+
24+
## Prerequisites
25+
26+
- Kubernetes 1.19+
27+
- Helm 3.2.0+
28+
- PV provisioner support in the underlying infrastructure
29+
30+
## 📦 Installation
31+
32+
To install the chart with the release name `opencloud`:
33+
34+
```bash
35+
# Navigate to the chart directory first
36+
cd /path/to/helm-repo/charts/opencloud-dev
37+
38+
# Then run the installation command
39+
helm install opencloud . \
40+
--namespace opencloud \
41+
--create-namespace \
42+
--set adminPassword="<MY-SECURE-PASSWORD>" \
43+
--set url="<PUBLIC-URL>"
44+
```
45+
46+
Alternatively, from the repository root:
47+
48+
```bash
49+
helm install opencloud ./charts/opencloud-dev \
50+
--namespace opencloud \
51+
--create-namespace \
52+
--set adminPassword="<MY-SECURE-PASSWORD>" \
53+
--set url="<PUBLIC-URL>"
54+
```
55+
56+
**Important Notes:**
57+
- The `url` parameter must be reachable and forwarded to the backend service on port 443
58+
- If `url` is not properly configured, login will fail with "missing or invalid config" message
59+
60+
## Configuration
61+
62+
The following table lists the configurable parameters of the OpenCloud Development chart and their default values.
63+
64+
| Parameter | Description | Default |
65+
| --------- | ----------- | ------- |
66+
| `image` | OpenCloud image repository | `opencloudeu/opencloud-rolling` |
67+
| `tag` | OpenCloud image tag | `2.0.0` |
68+
| `adminPassword` | Admin password | `admin` |
69+
| `insecure` | Insecure mode (for self-signed certificates) | `true` |
70+
| `proxyHttpAddr` | Proxy HTTP address | `0.0.0.0:9200` |
71+
| `url` | Public URL for OpenCloud | `https://localhost:9200` |
72+
| `pvcSize` | Persistent volume size | `10Gi` |
73+
74+
## Port Forwarding
75+
76+
For local testing with default settings, you can use port-forwarding:
77+
78+
```bash
79+
# After installation
80+
kubectl port-forward -n opencloud svc/opencloud-service 9200:443
81+
```
82+
83+
Then access OpenCloud at [https://localhost:9200](https://localhost:9200) and login with:
84+
- Username: admin
85+
- Password: admin (or your custom password if set)
86+
87+
You will need to accept the self-signed certificate warning in your browser.
88+
89+
## Upgrading
90+
91+
To change the public URL or other settings, you can upgrade the deployment:
92+
93+
```bash
94+
helm upgrade opencloud . \
95+
--namespace opencloud \
96+
--set url="<NEW-PUBLIC-URL>"
97+
```
98+
99+
## Uninstalling
100+
101+
To uninstall OpenCloud:
102+
103+
```bash
104+
helm uninstall -n opencloud opencloud
105+
```
106+
107+
**Note:** The data PVC is configured to be kept, so it will survive uninstall and reinstall of the chart.
108+
109+
## 📜 License
110+
111+
This project is licensed under the **AGPLv3** license. See the [LICENSE](../../LICENSE) file for more details.

0 commit comments

Comments
 (0)