Skip to content

Commit

Permalink
Feature: add collabora online, also update dependencies (#350)
Browse files Browse the repository at this point in the history
* begin adding collabora online as a default application

* update deps

* add collabora functionality

* add collabora online docs
  • Loading branch information
jessebot authored Dec 15, 2024
1 parent cda1e68 commit 6535c2c
Show file tree
Hide file tree
Showing 9 changed files with 1,325 additions and 918 deletions.
52 changes: 52 additions & 0 deletions docs/k8s_apps/collabora.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
[Collabora Online](https://www.collaboraonline.com/) is a powerful online document editing suite which you can integrate into your own infrastructure or access via one of our trusted hosting partners.

You can use this app to deploy collabora online separately from nextcloud, or you can deploy it as part of the nextcloud app of apps. If deploying as part of nextcloud, leave this app disabled.

## Example config

```yaml
apps:
collabora_online:
enabled: false
description: |
[link=https://www.collaboraonline.com/]Collabora Online[/link] is a powerful online document editing suite which you can integrate into your own infrastructure or access via one of our trusted hosting partners.
You can use this app to deploy collabora online separately from nextcloud,
or you can deploy it as part of the nextcloud app of apps. If deploying as part
of nextcloud, leave this app disabled.
you can set an optional admin password with this variable:
- COLLABORA_ONLINE_PASSWORD
# Initialization of the app through smol-k8s-lab
init:
enabled: false
values:
admin_user: admin
password:
value_from:
# you can change this to any env var
env: COLLABORA_ONLINE_PASSWORD
argo:
# git repo to install the Argo CD app from
repo: https://github.com/small-hack/argocd-apps
# path in the argo repo to point to. Trailing slash very important!
path: collabora_online/app_of_apps/
# either the branch or tag to point at in the argo repo above
revision: main
# kubernetes cluster to install the k8s app into, defaults to Argo CD default
cluster: https://kubernetes.default.svc
# namespace to install the k8s app in
namespace: collabora-online
# recurse directories in the provided git repo
directory_recursion: false
# secret keys to provide for the Argo CD Appset secret plugin, none by default
secret_keys: {}
# source repos for Argo CD App Project (in addition to app.argo.repo)
project:
name: collabora-online
source_repos:
- https://collaboraonline.github.io/online
destination:
# automatically includes the app's namespace and argocd's namespace
namespaces: []
```
11 changes: 11 additions & 0 deletions docs/k8s_apps/nextcloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Part of the `smol-k8s-lab` init process is that we will put the following into y
- PostgreSQL credentials
- s3 credentials
- OIDC credentials
- Collabora credentials

## Required Values

Expand All @@ -30,6 +31,7 @@ To use the default `smol-k8s-lab` Argo CD Application, you'll need to provide on
- `admin_user`
- `smtp_user`
- `smtp_host`
- `collabora_user`

### Required ApplicationSet Values

Expand Down Expand Up @@ -70,6 +72,7 @@ apps:
- `NEXTCLOUD_S3_BACKUP_ACCESS_KEY`
- `NEXTCLOUD_S3_BACKUP_ACCESS_ID`
- `NEXTCLOUD_RESTIC_REPO_PASSWORD`
- `COLLABORA_ONLINE_PASSWORD`


## Backups
Expand Down Expand Up @@ -148,6 +151,7 @@ apps:
- NEXTCLOUD_S3_BACKUP_ACCESS_KEY
- NEXTCLOUD_S3_BACKUP_ACCESS_ID
- NEXTCLOUD_RESTIC_REPO_PASSWORD
- COLLABORA_ONLINE_PASSWORD
Note: smol-k8s-lab is not affiliated with Nextcloud GmbH. This is a community-supported-only install method.
# initialize the app by setting up new k8s secrets and/or Bitwarden items
Expand All @@ -167,6 +171,11 @@ apps:
smtp_password:
value_from:
env: NEXTCLOUD_SMTP_PASSWORD
collabora_user: admin
collabora_password:
value_from:
# you can change this to any env var
env: COLLABORA_ONLINE_PASSWORD
backups:
# cronjob syntax schedule to run nextcloud pvc backups
pvc_schedule: 10 0 * * *
Expand Down Expand Up @@ -195,6 +204,8 @@ apps:
secret_keys:
# the FQDN that you want to host nextcloud on
hostname: "cloud.cooldogs.net"
# host name for collabora online
collabora_hostname: "collabora.domain.com"
# you can delete these if you're not using tolerations/affinity
toleration_key: ""
toleration_operator: ""
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ nav:
- Appset Secret Plugin: k8s_apps/appset-secret-plugin.md
- Cert Manager: k8s_apps/cert_manager.md
- CloudNative Postgress Operator: k8s_apps/cnpg_operator.md
- Collabora Online: k8s_apps/collabora.md
- Core DNS: k8s_apps/core_dns.md
- External Secrets:
- External Secrets Operator: k8s_apps/external-secrets-operator.md
Expand Down
1,811 changes: 906 additions & 905 deletions poetry.lock

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "smol_k8s_lab"
version = "5.19.2"
version = "5.20.0"
description = "CLI and TUI to quickly install slimmer Kubernetes distros and then manage apps declaratively using Argo CD"
authors = ["Jesse Hitch <[email protected]>",
"Max Roby <[email protected]>"]
Expand Down Expand Up @@ -32,7 +32,7 @@ include = ["smol_k8s_lab/config/kind/kind_cluster_config.yaml",
[tool.poetry.dependencies]
bcrypt = "^4.2"
click = "^8.1"
cryptography = "^43.0"
cryptography = "^44.0"
kubernetes = "^31"
minio = "^7.2"
pyfiglet = "^1.0"
Expand All @@ -43,7 +43,7 @@ requests = "^2.32"
rich = "^13.9"
ruamel-yaml = "^0.18"
ruamel-yaml-string = "^0.1"
textual = "^0.86"
textual = "^0.89"
xdg-base-dirs = "^6.0"
pygame = "^2.5"
python-ulid = "^3.0"
Expand All @@ -60,9 +60,9 @@ optional = true

[tool.poetry.group.dev.dependencies]
deptry = "^0.21"
textual-dev = "^1.6"
textual-dev = "^1.7"
pytest-textual-snapshot = "^1.0"
poethepoet = "^0.30"
poethepoet = "^0.31"
# for creating app images: https://pypi.org/project/poetry-plugin-appimage/
# poetry-plugin-appimage = "^0.0.4"
# [tool.poetry-plugin-appimage]
Expand All @@ -75,7 +75,7 @@ optional = true

# this group is only needed for development
[tool.poetry.group.audio.dependencies]
coqui-tts = "^0.24"
coqui-tts = "^0.25"
# note: this still requires you to install ffmpeg
pydub = "^0.25.1"

Expand Down
58 changes: 57 additions & 1 deletion smol_k8s_lab/config/default_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,50 @@ apps:
# automatically includes the app's namespace and argocd's namespace
namespaces: []

collabora_online:
enabled: false
description: |
[link=https://www.collaboraonline.com/]Collabora Online[/link] is a powerful online document editing suite which you can integrate into your own infrastructure or access via one of our trusted hosting partners.
You can use this app to deploy collabora online separately from nextcloud,
or you can deploy it as part of the nextcloud app of apps. If deploying as part
of nextcloud, leave this app disabled.
you can set an optional admin password with this variable:
- COLLABORA_ONLINE_PASSWORD
# Initialization of the app through smol-k8s-lab
init:
enabled: false
values:
admin_user: admin
password:
value_from:
# you can change this to any env var
env: COLLABORA_ONLINE_PASSWORD
argo:
# git repo to install the Argo CD app from
repo: https://github.com/small-hack/argocd-apps
# path in the argo repo to point to. Trailing slash very important!
path: collabora_online/app_of_apps/
# either the branch or tag to point at in the argo repo above
revision: main
# kubernetes cluster to install the k8s app into, defaults to Argo CD default
cluster: https://kubernetes.default.svc
# namespace to install the k8s app in
namespace: collabora-online
# recurse directories in the provided git repo
directory_recursion: false
# secret keys to provide for the Argo CD Appset secret plugin, none by default
secret_keys: {}
# source repos for Argo CD App Project (in addition to app.argo.repo)
project:
name: collabora-online
source_repos:
- https://collaboraonline.github.io/online
destination:
# automatically includes the app's namespace and argocd's namespace
namespaces: []

external_secrets_operator:
enabled: true
description: |
Expand All @@ -349,7 +393,9 @@ apps:
smol-k8s-lab support initialization by creating a Kubernetes secret with your Bitwarden credentials so that the provider can unlock your vault. You will need to setup an [link=https://bitwarden.com/help/personal-api-key/]API key[/link] ahead of time. You can pass these credentials in by setting the following environment variables:
BITWARDEN_PASSWORD, BITWARDEN_CLIENTSECRET, BITWARDEN_CLIENTID
- BITWARDEN_PASSWORD
- BITWARDEN_CLIENTSECRET
- BITWARDEN_CLIENTID
# Initialization of the app through smol-k8s-lab
init:
enabled: false
Expand Down Expand Up @@ -1264,6 +1310,7 @@ apps:
- NEXTCLOUD_S3_BACKUP_ACCESS_KEY
- NEXTCLOUD_S3_BACKUP_ACCESS_ID
- NEXTCLOUD_RESTIC_REPO_PASSWORD
- COLLABORA_ONLINE_PASSWORD
Note: smol-k8s-lab is not affiliated with Nextcloud GmbH. This is a community-supported-only install method.
# initialize the app by setting up new k8s secrets and/or bitwarden items
Expand Down Expand Up @@ -1295,6 +1342,11 @@ apps:
smtp_password:
value_from:
env: NEXTCLOUD_SMTP_PASSWORD
collabora_user: admin
collabora_password:
value_from:
# you can change this to any env var
env: COLLABORA_ONLINE_PASSWORD
backups:
# cronjob syntax schedule to run nextcloud pvc backups
pvc_schedule: 10 0 * * *
Expand Down Expand Up @@ -1329,7 +1381,10 @@ apps:
# these are for node affinity, delete if not in use
affinity_key: ""
affinity_value: ""
# Fully Qualified Domain Name for nextcloud
hostname: ""
# host name for collabora online
collabora_hostname: "collabora.domain.com"
# nextcloud needs this for new users or it throws a warning in the admin panel
default_phone_region: NL
# the default domain to send emails to user with
Expand Down Expand Up @@ -1388,6 +1443,7 @@ apps:
- https://small-hack.github.io/cloudnative-pg-cluster-chart
- https://seaweedfs.github.io/seaweedfs/helm
- https://github.com/seaweedfs/seaweedfs
- https://collaboraonline.github.io/online
destination:
# automatically includes the app's namespace and argocd's namespace
namespaces: []
Expand Down
Loading

0 comments on commit 6535c2c

Please sign in to comment.