Skip to content

Commit

Permalink
more doc updates and minor tui tweaks (#108)
Browse files Browse the repository at this point in the history
* fix ruamel.yaml link

* create an assets directory and move all images and videos there along with fonts

* fix font

* add our first video, resize the modify globals modal, and regenerate all the screenshots after screensize changes

* add delete cluster tooltip

* adding more videos

* remove full_tour.mov as it's missing details

* expand the kubevirt docs

* update seaweedfs and add cnpg operator base

* add seaweedfs diagrm fix missing files for kubevirt

* tidy up mastodon

* fix mastodon link

* Create CONTRIBUTING.md - because we didn't have one before :O

* clean up readme images

* slimming the readme and linking docs

* replace yes and no with check mark and x emojis

* add more details on changed stuff

* add more notes about upgrading

* slimming down readme more

* Update README.md - clean up grammar

* cleanup kubevirt and add details to seaweedfs

* bump pyproject version to 2.0.0b2

* lock poetry

---------

Co-authored-by: cloudymax <[email protected]>
  • Loading branch information
jessebot and cloudymax authored Dec 4, 2023
1 parent f61a92d commit d6b3e4e
Show file tree
Hide file tree
Showing 121 changed files with 3,235 additions and 2,875 deletions.
68 changes: 68 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Contributing

Please be nice. The maintainers are very soft.

Otherwise, please feel free to contribute anything: Issues (bug reports and feature requests), Pull requests, and Discussions

# Submitting Pull Requests

If it's a doc fix, don't worry about testing, just explain what you're fixing and we're a-ok 👍

If it's a code fix, please:
- don't forget to bump the version in [`pyproject.toml`](https://github.com/small-hack/smol-k8s-lab/blob/main/pyproject.toml#L3)
- test your code before submitting it and explain how you tested it in the pull request

## Development

`smol-k8s-lab` is written in Python. You can check out the [`pyproject.toml`](./pyproject.toml) for the versions of each library we install below:

- [bcrypt] (to pass a password to argocd and automatically update your Bitwarden)
- [rich] (this is what makes all the pretty formatted text in logs and `--help`)
- [textual] (this is the framework used for writing the TUI)
- [ruamel.yaml] (to handle the k8s yamls and configs while maintaining comments)
- [click] (handles arguments for the CLI)

We also utilize the [Bitwarden cli], for a password manager so you never have to see/know your Argo CD password.

NOTE: We're open to unit, integration, and ci testing btw! We just don't have any because we weren't stable enough to justify them yet. 🤦

### Prereqs

- [poetry](https://python-poetry.org/docs/#installation) to manage our dependencies and virtual environments for python.
- [pre-commit](https://pre-commit.com/index.html#install) to manage pre-commit hooks, mostly related to poetry

```bash
git clone [email protected]:small-hack/smol-k8s-lab.git
cd smol-k8s-lab
pre-commit install
```

### virtual environment

Install the project locally after cloning it.

```bash
# this installs a local version of smol-k8s-lab that points to your cloned repo directly
poetry install
```

And then you can do all your development in a virtual environment by running:

```bash
# this sources the virtual env for this project
poetry shell

# this will print your version you're working on
smol-k8s-lab --version
```

When you're done playing with your environment, you can just type `exit` to leave the shell :)

<!-- smol-k8s-lab dependency lib link references -->
[Bitwarden cli]: https://bitwarden.com/help/cli/
[bcrypt]: https://pypi.org/project/bcrypt/
[click]: https://pypi.org/project/click/
[rich]: https://github.com/Textualize/richP
[ruamel.yaml]: https://pypi.org/project/ruamel.yaml/
[Poetry]: https://python-poetry.org/
[textual]: https://github.com/Textualize/textual
189 changes: 100 additions & 89 deletions README.md

Large diffs are not rendered by default.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
Binary file added docs/assets/images/cnpg_operator_screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
314 changes: 314 additions & 0 deletions docs/assets/images/screenshots/add_k3s_option_screen.svg

Large diffs are not rendered by default.

303 changes: 303 additions & 0 deletions docs/assets/images/screenshots/apps_screen.svg

Large diffs are not rendered by default.

File renamed without changes
300 changes: 300 additions & 0 deletions docs/assets/images/screenshots/distro_config_screen.svg

Large diffs are not rendered by default.

File renamed without changes
File renamed without changes
299 changes: 299 additions & 0 deletions docs/assets/images/screenshots/kind_config_screen.svg

Large diffs are not rendered by default.

298 changes: 298 additions & 0 deletions docs/assets/images/screenshots/kind_config_screen2.svg

Large diffs are not rendered by default.

Large diffs are not rendered by default.

314 changes: 314 additions & 0 deletions docs/assets/images/screenshots/new_app_modal_screen.svg

Large diffs are not rendered by default.

257 changes: 257 additions & 0 deletions docs/assets/images/screenshots/start_screen.svg

Large diffs are not rendered by default.

258 changes: 258 additions & 0 deletions docs/assets/images/screenshots/tui_config_screen.svg

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Binary file added docs/assets/images/seaweedfs.drawio.png
Binary file not shown.
Binary file added docs/assets/videos/tour_of_apps_config.mov
Binary file not shown.
Binary file added docs/assets/videos/tour_of_distros.mov
Binary file not shown.
4 changes: 2 additions & 2 deletions docs/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ smol-k8s-lab --help
<details>
<summary>Help text example</summary>

<a href="/images/screenshots/help_text.svg">
<img src="/images/screenshots/help_text.svg" alt="Output of smol-k8s-lab --help after cloning the directory and installing the prerequisites.">
<a href="/assets/images/screenshots/help_text.svg">
<img src="/assets/images/screenshots/help_text.svg" alt="Output of smol-k8s-lab --help after cloning the directory and installing the prerequisites.">
</a>

</details>
Expand Down
316 changes: 0 additions & 316 deletions docs/images/screenshots/add_k3s_option_screen.svg
Diff not rendered.
270 changes: 0 additions & 270 deletions docs/images/screenshots/apps_screen.svg
Diff not rendered.
302 changes: 0 additions & 302 deletions docs/images/screenshots/distro_config_screen.svg
Diff not rendered.
301 changes: 0 additions & 301 deletions docs/images/screenshots/kind_config_screen.svg
Diff not rendered.
300 changes: 0 additions & 300 deletions docs/images/screenshots/kind_config_screen2.svg
Diff not rendered.
285 changes: 0 additions & 285 deletions docs/images/screenshots/modify_global_parameters_modal_screen.svg
Diff not rendered.
283 changes: 0 additions & 283 deletions docs/images/screenshots/new_app_modal_screen.svg
Diff not rendered.
255 changes: 0 additions & 255 deletions docs/images/screenshots/start_screen.svg
Diff not rendered.
256 changes: 0 additions & 256 deletions docs/images/screenshots/tui_config_screen.svg
Diff not rendered.
72 changes: 35 additions & 37 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,14 @@ Smol K8s Lab leverages Argo CD and slim k8s distributions like K3s to create pro
</a>
</p>
<p align="center">
<a href="images/screenshots/help_text.svg">
<img src="images/screenshots/help_text.svg" alt="Output of smol-k8s-lab --help after cloning the directory and installing the prerequisites.">
<a href="assets/images/screenshots/help_text.svg">
<img src="assets/images/screenshots/help_text.svg" alt="Output of smol-k8s-lab --help after cloning the directory and installing the prerequisites.">
</a>
</p>


![type:video](/assets/videos/full_tour.mov)

## About

`smol-k8s-lab`'s declarative workflow enables rapid iteration in production-like environments with minimal costs for failure. This makes it ideal for proof-of-concepts, prototyping, and benchmarking Kubernetes applications and distributions! 💙
Expand All @@ -34,27 +37,27 @@ We always install the latest version of Kubernetes that is available from the di

| Distro | Description |
|:----------:|:------------------------------------------------------|
| [<img src="images/icons/k3s_icon.ico" width="26">][k3s] <br /> [k3s] | The certified Kubernetes distribution built for IoT & Edge computing |
| [<img src="images/icons/k3d.png" width="26">][k3d] <br /> [k3d] | K3d is k3s in Docker 🐳. <br> ⚠️ testing |
| [<img src="images/icons/kind_icon.png" width="32">][KinD] <br /> [KinD] | kind is a tool for running local Kubernetes clusters using Docker container “nodes”. kind was primarily designed for testing Kubernetes itself, but may be used for local development or CI. |
| [<img src="assets/images/icons/k3s_icon.ico" width="26">][k3s] <br /> [k3s] | The certified Kubernetes distribution built for IoT & Edge computing |
| [<img src="assets/images/icons/k3d.png" width="26">][k3d] <br /> [k3d] | K3d is k3s in Docker 🐳. <br> ⚠️ testing |
| [<img src="assets/images/icons/kind_icon.png" width="32">][KinD] <br /> [KinD] | kind is a tool for running local Kubernetes clusters using Docker container “nodes”. kind was primarily designed for testing Kubernetes itself, but may be used for local development or CI. |

We tend to test first on k3s first, then the other distros. k3d support coming soon.

## Default Installed Applications
Version is the helm chart version, or manifest version.
Version is the helm chart version, or manifest version. See the [Default Applications](/k8s_apps/argocd) tab for more info on each application.

| Application | Description | Initialization Supported |
|:-------------------------------:|:------------------------------------------------------|:------------------------:|
| [<img src="images/icons/metallb_icon.png" width="32px" alt="metallb logo, blue arrow pointing up, with small line on one leg of arrow to show balance">][metallb] <br /> [metallb] | Loadbalancer and IP Address pool manager for metal ||
| [<img src="images/icons/nginx.ico" width="32px" alt="nginx logo, white letter N with green background">][ingress-nginx] <br /> [ingress-nginx] | The ingress-nginx controller allows access to the cluster remotely, needed for web traffic ||
| [<img src="images/icons/cert-manager_icon.png" width="32px" alt="cert manager logo">][cert-manager] <br /> [cert-manager] | For SSL/TLS certificates ||
| [<img src="images/icons/argo_icon.png" width="32" alt="argo CD logo, an organer squid wearing a fishbowl helmet">][Argo CD] <br /> [Argo CD] | Gitops - Continuous Deployment ||
| [<img src="images/icons/argo_icon.png" width="32" alt="argo CD logo, an organer squid wearing a fishbowl helmet">][Argo CD Appset Secret Plugin] <br /> [Argo CD Appset Secret Plugin] | Gitops - Continuous Deployment ||
| [<img src="images/icons/eso_icon.png" width="32" alt="ESO logo, outline of robot with astricks in a screen in it's belly">][ESO] <br /> [ESO] | external-secrets-operator integrates external secret management systems like Bitwarden or GitLab ||
| [<img src="images/icons/eso_icon.png" width="32" alt="ESO logo, again">][Bitwarden ESO Provider] <br /> [Bitwarden ESO Provider] | Bitwarden external-secrets-operator provider ||
| [<img src="images/icons/zitadel.png" width="32" alt="Zitadel logo, an orange arrow pointing left">][ZITADEL] <br /> [ZITADEL] | An identity provider and OIDC provider to provide SSO ||
| [<img src="images/icons/vouch.png" width="32" alt="Vouch logo, the letter V in rainbow ">][Vouch] <br /> [Vouch] | Vouch proxy allows you to secure web pages that lack authentication e.g. prometheus ||
| [<img src="images/icons/prometheus.png" width="32" alt="Prometheus logo, a torch">][Prometheus Stack] <br /> [Prometheus Stack] | Prometheus monitoring and logging stack using [loki]/[promtail], [alert manager], and [grafana] ||
| [<img src="assets/images/icons/metallb_icon.png" width="32px" alt="metallb logo, blue arrow pointing up, with small line on one leg of arrow to show balance">][metallb] <br /> [metallb] | Loadbalancer and IP Address pool manager for metal ||
| [<img src="assets/images/icons/nginx.ico" width="32px" alt="nginx logo, white letter N with green background">][ingress-nginx] <br /> [ingress-nginx] | The ingress-nginx controller allows access to the cluster remotely, needed for web traffic ||
| [<img src="assets/images/icons/cert-manager_icon.png" width="32px" alt="cert manager logo">][cert-manager] <br /> [cert-manager] | For SSL/TLS certificates ||
| [<img src="assets/images/icons/argo_icon.png" width="32" alt="argo CD logo, an organer squid wearing a fishbowl helmet">][Argo CD] <br /> [Argo CD] | Gitops - Continuous Deployment ||
| [<img src="assets/images/icons/argo_icon.png" width="32" alt="argo CD logo, an organer squid wearing a fishbowl helmet">][Argo CD Appset Secret Plugin] <br /> [Argo CD Appset Secret Plugin] | Gitops - Continuous Deployment ||
| [<img src="assets/images/icons/eso_icon.png" width="32" alt="ESO logo, outline of robot with astricks in a screen in it's belly">][ESO] <br /> [ESO] | external-secrets-operator integrates external secret management systems like Bitwarden or GitLab ||
| [<img src="assets/images/icons/eso_icon.png" width="32" alt="ESO logo, again">][Bitwarden ESO Provider] <br /> [Bitwarden ESO Provider] | Bitwarden external-secrets-operator provider ||
| [<img src="assets/images/icons/zitadel.png" width="32" alt="Zitadel logo, an orange arrow pointing left">][ZITADEL] <br /> [ZITADEL] | An identity provider and OIDC provider to provide SSO ||
| [<img src="assets/images/icons/vouch.png" width="32" alt="Vouch logo, the letter V in rainbow ">][Vouch] <br /> [Vouch] | Vouch proxy allows you to secure web pages that lack authentication e.g. prometheus ||
| [<img src="assets/images/icons/prometheus.png" width="32" alt="Prometheus logo, a torch">][Prometheus Stack] <br /> [Prometheus Stack] | Prometheus monitoring and logging stack using [loki]/[promtail], [alert manager], and [grafana] ||


Minor Notes:
Expand All @@ -66,21 +69,20 @@ Minor Notes:

| Application/Tool | Description | Initialization Supported |
|:----------------:|:------------|:------------------------:|
| [<img src="images/icons/cilium.png" width="32" alt="cilium logo">][Cilium] <br /> [Cilium]<sup>alpha</sup> | Kubernetes netflow visualizer and policy editor ||
| [<img src="images/icons/kyverno_icon.png" width="32" alt="kyvero logo">][Kyverno] <br /> [Kyverno]<sup>alpha</sup> | Kubernetes native policy management to enforce policies on k8s resources ||
| [<img src="images/icons/kepler.png" width="32" alt="kepler logo">][kepler] <br /> [kepler] | Kepler (Kubernetes Efficient Power Level Exporter) uses eBPF to probe energy-related system stats and exports them as Prometheus metrics. ||
| [<img src="images/icons/k8up.png" width="32" alt="k8up logo, a minimalist logo of a small blue hill with line starting the right going into the hill">][k8up] <br /> [k8up] | Backups operator using [restic] to backup to s3 endpoints ||
| [<img src="images/icons/k8tz.png" width="32" alt="k8tz logo, the k8s logo but with a watch in the center instead of the ship wheel">][k8tz] <br /> [k8tz] | Timezone environment variable injector for pods and cronjobs ||
| [<img src="images/icons/nextcloud.png" width="32" alt="nextcloud logo, 3 white circles touching eachother on a blue background">][Nextcloud] <br /> [Nextcloud] | Nextcloud is a self hosted file server ||
| [<img src="images/icons/mastodon.png" width="32" alt="Mastodon logo, a white M in a purple chat bubble">][Mastodon] <br /> [Mastodon] | Mastodon is a self hosted federated social media network ||
| [<img src="images/icons/matrix.png" width="32" alt="Matrix logo">][matrix] <br /> [matrix] | Matrix is a self hosted chat platform ||
| [<img src="images/icons/minio.png" width="32" alt="minio logo, a minimalist drawing in red of a crane">][minio] <br /> [minio] | Self hosted S3 Object Store operator ||
| [<img src="images/icons/seaweedfs.png" width="32" alt="seaweedfs logo, ">][seaweedfs] <br /> [seaweedfs] | Self hosted S3 Object Store ||
| [<img src="images/icons/k9s_icon.png" alt="k9s logo, outline of dog with ship wheels for eyes" width="32px">][k9s]</br>[k9s] | Terminal based dashboard for kubernetes ||
| [<img src="assets/images/icons/cilium.png" width="32" alt="cilium logo">][Cilium] <br /> [Cilium]<sup>alpha</sup> | Kubernetes netflow visualizer and policy editor ||
| [<img src="assets/images/icons/kyverno_icon.png" width="32" alt="kyvero logo">][Kyverno] <br /> [Kyverno]<sup>alpha</sup> | Kubernetes native policy management to enforce policies on k8s resources ||
| [<img src="assets/images/icons/kepler.png" width="32" alt="kepler logo">][kepler] <br /> [kepler] | Kepler (Kubernetes Efficient Power Level Exporter) uses eBPF to probe energy-related system stats and exports them as Prometheus metrics. ||
| [<img src="assets/images/icons/k8up.png" width="32" alt="k8up logo, a minimalist logo of a small blue hill with line starting the right going into the hill">][k8up] <br /> [k8up] | Backups operator using [restic] to backup to s3 endpoints ||
| [<img src="assets/images/icons/k8tz.png" width="32" alt="k8tz logo, the k8s logo but with a watch in the center instead of the ship wheel">][k8tz] <br /> [k8tz] | Timezone environment variable injector for pods and cronjobs ||
| [<img src="assets/images/icons/nextcloud.png" width="32" alt="nextcloud logo, 3 white circles touching eachother on a blue background">][Nextcloud] <br /> [Nextcloud] | Nextcloud is a self hosted file server ||
| [<img src="assets/images/icons/mastodon.png" width="32" alt="Mastodon logo, a white M in a purple chat bubble">][Mastodon] <br /> [Mastodon] | Mastodon is a self hosted federated social media network ||
| [<img src="assets/images/icons/matrix.png" width="32" alt="Matrix logo">][matrix] <br /> [matrix] | Matrix is a self hosted chat platform ||
| [<img src="assets/images/icons/minio.png" width="32" alt="minio logo, a minimalist drawing in red of a crane">][minio] <br /> [minio] | Self hosted S3 Object Store operator ||
| [<img src="assets/images/icons/seaweedfs.png" width="32" alt="seaweedfs logo, ">][seaweedfs] <br /> [seaweedfs] | Self hosted S3 Object Store ||
| [<img src="assets/images/icons/k9s_icon.png" alt="k9s logo, outline of dog with ship wheels for eyes" width="32px">][k9s]</br>[k9s] | Terminal based dashboard for kubernetes ||


# Status
This is still in early beta, as we figure out all the apps and distros we want to support, and pin all the versions, but if you'd like to contribute or just found a :bug:, feel free to open an issue (or pull request), and we'll take a look! We'll try to get back to you asap!


## Development
Expand All @@ -104,10 +106,6 @@ We also utilize the [Bitwarden cli], for a password manager so you never have to

HA cluster design with K3s requires etcd or another external key-value store such as PostgreSQL. Smol-K8s-Lab deploys k3s in a single-node configuration using SQLite which can be used for multi-node configurations but is not suitable for high-availability.

### Troubleshooting

If you're stuck, checkout the [Notes section](https://jessebot.github.io/smol-k8s-lab/notes) to see if we also got stuck on the same thing at some point :)

<!-- k8s apps link references -->
[Local Path Provisioner]: https://github.com/rancher/local-path-provisioner
[nginx-ingress]: https://github.io/kubernetes/ingress-nginx
Expand Down Expand Up @@ -151,10 +149,10 @@ If you're stuck, checkout the [Notes section](https://jessebot.github.io/smol-k8
[restic]: https://restic.readthedocs.io/en/stable/

<!-- smol-k8s-lab dependency lib link references -->
[Poetry]: https://python-poetry.org/
[rich]: https://github.com/Textualize/richP
[textual]: https://github.com/Textualize/textual
[PyYAML]: https://pyyaml.org/
[Bitwarden cli]: https://bitwarden.com/help/cli/
[bcrypt]: https://pypi.org/project/bcrypt/
[click]: https://pypi.org/project/click/
[Bitwarden cli]: https://bitwarden.com/help/cli/
[rich]: https://github.com/Textualize/richP
[ruamel.yaml]: https://pypi.org/project/ruamel.yaml/
[Poetry]: https://python-poetry.org/
[textual]: https://github.com/Textualize/textual
4 changes: 2 additions & 2 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ smol-k8s-lab --help
<details>
<summary>Help text example</summary>

<a href="/images/screenshots/help_text.svg">
<img src="/images/screenshots/help_text.svg" alt="Output of smol-k8s-lab --help after cloning the directory and installing the prerequisites.">
<a href="/assets/images/screenshots/help_text.svg">
<img src="/assets/images/screenshots/help_text.svg" alt="Output of smol-k8s-lab --help after cloning the directory and installing the prerequisites.">
</a>

</details>
Expand Down
1 change: 1 addition & 0 deletions docs/k8s_apps/apps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
beepboop
2 changes: 1 addition & 1 deletion docs/k8s_apps/argocd.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Argo CD is one of the most complex applications we deploy for you. We follow thi

The final Application will be sourced from [small-hack/argocd-apps/argocd](https://github.com/small-hack/argocd-apps/tree/main/argocd), which you can learn more about its readme.

<img src="/images/screenshots/argocd_screenshot.png" alt="screenshot of the Argo CD Application viewed through the Argo CD web interface in tree mode. It shows Argo CD as the parent application and then 3 child applications: appset-secret-plugin (an app), argocd-bitwarden-eso (an appset), and argocd-web-app-set (an appset).">
<img src="/assets/images/screenshots/argocd_screenshot.png" alt="screenshot of the Argo CD Application viewed through the Argo CD web interface in tree mode. It shows Argo CD as the parent application and then 3 child applications: appset-secret-plugin (an app), argocd-bitwarden-eso (an appset), and argocd-web-app-set (an appset).">


## ApplicationSets
Expand Down
2 changes: 1 addition & 1 deletion docs/k8s_apps/bitwarden_eso_provider.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
We use the Bitwarden ESO Provider along side the [external-secrets-operator](/k8s_apps/external-secrets-operator.md) to pull secret data from your Bitwarden vault, into the cluster as [Kubernetes Secrets](https://kubernetes.io/docs/concepts/configuration/secret/).

<img src="/images/screenshots/bweso_screenshot.png" alt="a screenshot of the Argo CD web interface showing the bitwarden-eso-provider application in tree view mode. it shows the following children of bitwarden-eso-provider: test-connection configmap, bitwarden-eso-provider service,bitwarden-eso-provider service account, bitwarden-eso-provider deployment, bitwarden-fields cluster secret store, bitwarden-login cluster secret store. the deployment then points to additonal replica sets which point to a single pod">
<img src="/assets/images/screenshots/bweso_screenshot.png" alt="a screenshot of the Argo CD web interface showing the bitwarden-eso-provider application in tree view mode. it shows the following children of bitwarden-eso-provider: test-connection configmap, bitwarden-eso-provider service,bitwarden-eso-provider service account, bitwarden-eso-provider deployment, bitwarden-fields cluster secret store, bitwarden-login cluster secret store. the deployment then points to additonal replica sets which point to a single pod">

`smol-k8s-lab` stores any sensitive user specific data about applications in your Bitwarden vault. Some examples include admin credentials, database credentials, and OIDC credentials.

Expand Down
Loading

0 comments on commit d6b3e4e

Please sign in to comment.