Skip to content

Commit

Permalink
feat: Artifacthub integration (#44)
Browse files Browse the repository at this point in the history
* feat: Some changes for artifacthub compatibility

Signed-off-by: Kornel David <[email protected]>

* docs: Add generated parameter list to README

Signed-off-by: Kornel David <[email protected]>

* docs: Remove whitespace

Signed-off-by: Kornel David <[email protected]>

* docs: Add intro and install part to the sgw chart readme

Signed-off-by: Kornel David <[email protected]>

* docs: Fix link

Signed-off-by: Kornel David <[email protected]>

* docs: Add parameters from #40 #41 #42

Signed-off-by: Kornel David <[email protected]>

* docs: Add README to the og stunner chart

Signed-off-by: Kornel David <[email protected]>

---------

Signed-off-by: Kornel David <[email protected]>
  • Loading branch information
davidkornel authored Dec 1, 2024
1 parent f65c815 commit 72ac8bb
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 19 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# STUNner Helm charts

This repo contains the Helm charts for installing STUNner.
This repo contains the Helm charts for installing STUNner.

## Documentation

Expand Down
31 changes: 13 additions & 18 deletions helm/stunner-gateway-operator/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
annotations:
artifacthub.io/category: networking
artifacthub.io/license: MIT License
artifacthub.io/images: |
- name: stunner
image: docker.io/l7mp/stunnerd:1.0.0
- name: stunner-gateway-operator
image: docker.io/l7mp/stunner-gateway-operator:1.0.0
- name: stunner-auth-server
image: docker.io/l7mp/stunner-auth-server:1.0.0
- name: kube-rbac-proxy
image: gcr.io/kubebuilder/kube-rbac-proxy:v0.16.0
apiVersion: v2
name: stunner-gateway-operator
description: STUNner Kubernetes Gateway Operator
Expand All @@ -6,24 +19,6 @@ maintainers:
email: [email protected]
url: https://l7mp.io
icon: https://raw.githubusercontent.com/l7mp/stunner/main/docs/img/stunner.svg

# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.0.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: 1.0.0
98 changes: 98 additions & 0 deletions helm/stunner-gateway-operator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# STUNner

The Helm chart of STUNner: A Kubernetes media gateway for WebRTC.

## Note

The official documentation for the STUNner installation methods is in the repository of STUNner. For further information, see the [documentation](https://github.com/l7mp/stunner/blob/main/docs/INSTALL.md).

## Installation

This chart is the recommended way to deploy the STUNner ecosystem into your cluster.

The below will install the stable version of STUNner. In particular, the this will install only the STUNner control plane, i.e., the gateway operator and the authentication service, the dataplane will be automatically provisioned by the operator when needed (but see below). We recommend to use the `stunner-system` namespace to keep the full STUNner control plane in a single scope.

```console
helm install stunner-gateway-operator stunner/stunner-gateway-operator --create-namespace \
--namespace=stunner-system
```

And that's all: you don't need to install the dataplane separately, this is handled automatically by the operator. The `stunnerd` pods created by the operator can be customized using the Dataplane custom resource: you can specify the `stunnerd` container image version, provision resources per each `stunnerd` pod, deploy into the host network namespace, etc.; see the documentation [here](https://pkg.go.dev/github.com/l7mp/stunner-gateway-operator/api/v1#DataplaneSpec).

## Parameters

### STUNner Gateway operator

| Name | Description | Value |
| ------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ----------------------------------------- |
| `stunnerGatewayOperator.enabled` | If enabled, the operator will be installed. | `true` |
| `stunnerGatewayOperator.deployment.name` | Name of the deployment for the operator. | `stunner-gateway-operator` |
| `stunnerGatewayOperator.deployment.podLabels` | Labels for the deployment pods. | `{}` |
| `stunnerGatewayOperator.deployment.tolerations` | Tolerations for pod assignment. | `[]` |
| `stunnerGatewayOperator.deployment.nodeSelector` | Node labels for pod assignment. | `{}` |
| `stunnerGatewayOperator.deployment.imagePullSecrets` | Image pull secrets for the image. | `[]` |
| `stunnerGatewayOperator.deployment.container` | Container configuration values. | |
| `stunnerGatewayOperator.deployment.container.manager` | Configuration values for the STUNner Gateway Operator container. | |
| `stunnerGatewayOperator.deployment.container.manager.image.name` | The name of the image to use. | `docker.io/l7mp/stunner-gateway-operator` |
| `stunnerGatewayOperator.deployment.container.manager.image.pullPolicy` | The pull policy for the image. | `IfNotPresent` |
| `stunnerGatewayOperator.deployment.container.manager.image.tag` | The tag for the image. | `1.0.0` |
| `stunnerGatewayOperator.deployment.container.manager.resources.limits.cpu` | CPU limits for the container. | `1000m` |
| `stunnerGatewayOperator.deployment.container.manager.resources.limits.memory` | Memory limits for the container. | `512Mi` |
| `stunnerGatewayOperator.deployment.container.manager.resources.requests.cpu` | CPU requests for the container. | `250m` |
| `stunnerGatewayOperator.deployment.container.manager.resources.requests.memory` | Memory requests for the container. | `128Mi` |
| `stunnerGatewayOperator.deployment.container.manager.args` | Arguments for the container. | `[]` |
| `stunnerGatewayOperator.deployment.container.kubeRbacProxy` | Configuration values for the Kube RBAC Proxy container. | |
| `stunnerGatewayOperator.deployment.container.kubeRbacProxy.image.name` | The name of the image to use. | `gcr.io/kubebuilder/kube-rbac-proxy` |
| `stunnerGatewayOperator.deployment.container.kubeRbacProxy.image.pullPolicy` | The pull policy for the image. | `IfNotPresent` |
| `stunnerGatewayOperator.deployment.container.kubeRbacProxy.image.tag` | The tag for the image. | `v0.16.0` |

### Dataplane

Default dataplane configuration for the operator to use. See more [here](https://github.com/l7mp/stunner/blob/main/docs/GATEWAY.md#dataplane).

| Name | Description | Value |
| --------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| `stunnerGatewayOperator.dataplane.mode` | Mode to use for the deployment of the dataplane. Can be either `managed` or `legacy`. Read about the modes [here](stunnerGatewayOperator.dataplane). | `managed` |
| `stunnerGatewayOperator.dataplane.spec.replicas` | The replica number of the dataplane to be deployed. | `1` |
| `stunnerGatewayOperator.dataplane.spec.image.name` | The name of the image to use for the dataplane. | `docker.io/l7mp/stunnerd` |
| `stunnerGatewayOperator.dataplane.spec.image.pullPolicy` | The pull policy for the image. | `IfNotPresent` |
| `stunnerGatewayOperator.dataplane.spec.image.tag` | The tag for the image. | `1.0.0` |
| `stunnerGatewayOperator.dataplane.spec.imagePullSecrets` | Image pull secrets for the image. | `[]` |
| `stunnerGatewayOperator.dataplane.spec.command` | The command for the image to run on startup. | `[]` |
| `stunnerGatewayOperator.dataplane.spec.args` | The arguments for the image to use with the command. | `[]` |
| `stunnerGatewayOperator.dataplane.spec.env` | Environment variables to set for the image. | `[]` |
| `stunnerGatewayOperator.dataplane.spec.resources.limits.cpu` | CPU limits for the container. | `2` |
| `stunnerGatewayOperator.dataplane.spec.resources.limits.memory` | Memory limits for the container. | `512Mi` |
| `stunnerGatewayOperator.dataplane.spec.resources.requests.cpu` | CPU requests for the container. | `500m` |
| `stunnerGatewayOperator.dataplane.spec.resources.requests.memory` | Memory requests for the container. | `128Mi` |
| `stunnerGatewayOperator.dataplane.spec.terminationGracePeriodSeconds` | Period in seconds to use for graceful shutdown. | `3600` |
| `stunnerGatewayOperator.dataplane.spec.enableMetricsEndpoint` | Enable metrics endpoint in the deployed stunner instance. | `false` |
| `stunnerGatewayOperator.dataplane.spec.hostNetwork` | Enable host networking in the deployed stunner instance. | `false` |
| `stunnerGatewayOperator.dataplane.spec.labels` | Labels to be applied to the deployed stunner instance. | `{}` |
| `stunnerGatewayOperator.dataplane.spec.annotations` | Annotations to be applied to the deployed stunner instance. | `{}` |
| `stunnerGatewayOperator.dataplane.spec.affinity` | Affinity settings for the deployed stunner instance. | `{}` |
| `stunnerGatewayOperator.dataplane.spec.securityContext` | Security context for the deployed stunner instance. | `{}` |
| `stunnerGatewayOperator.dataplane.spec.containerSecurityContext` | Security context for the container. | `{}` |
| `stunnerGatewayOperator.dataplane.spec.tolerations` | Tolerations for pod assignment. | `[]` |

### STUNner Authentication Service

Default configuration for the authentication service to be deployed. See more the authentication in STUNner [here](https://github.com/l7mp/stunner/blob/main/docs/AUTH.md).

| Name | Description | Value |
| ------------------------------------------------------------------------------- | -------------------------------------------------------- | ------------------------------------ |
| `stunnerAuthService.enabled` | If enabled, the authentication service will be deployed. | `true` |
| `stunnerAuthService.deployment.podLabels` | Labels for the auth service pods. | `{}` |
| `stunnerAuthService.deployment.tolerations` | Tolerations for pod assignment. | `[]` |
| `stunnerAuthService.deployment.replicas` | Replicas for the auth-service deployment. | `1` |
| `stunnerAuthService.deployment.nodeSelector` | Node labels for pod assignment. | |
| `stunnerAuthService.deployment.imagePullSecrets` | Image pull secrets for the auth service image. | `[]` |
| `stunnerAuthService.deployment.container.authService.securityContext` | Security context for the auth-service pod. | `{}` |
| `stunnerAuthService.deployment.container.authService.image.name` | The name of the image to use. | `docker.io/l7mp/stunner-auth-server` |
| `stunnerAuthService.deployment.container.authService.image.pullPolicy` | The pull policy for the image. | `IfNotPresent` |
| `stunnerAuthService.deployment.container.authService.image.tag` | The tag for the image. | `1.0.0` |
| `stunnerAuthService.deployment.container.authService.resources.limits.cpu` | CPU limits for the container. | `200m` |
| `stunnerAuthService.deployment.container.authService.resources.limits.memory` | Memory limits for the container. | `128Mi` |
| `stunnerAuthService.deployment.container.authService.resources.requests.cpu` | CPU requests for the container. | `10m` |
| `stunnerAuthService.deployment.container.authService.resources.requests.memory` | Memory requests for the container. | `64Mi` |
| `stunnerAuthService.deployment.container.authService.args` | Arguments for the container. | `[]` |
6 changes: 6 additions & 0 deletions helm/stunner/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# STUNner


Note that this chart is obsolete and will be removed in a future release. The stable, tested, supported and recommended way to install the STUNner ecosystem is by using the [STUNner-Gateway-Operator chart](https://artifacthub.io/packages/helm/stunner/stunner-gateway-operator). If you don't have any particular reason to use this chart, please use the mentioned chart.

The STUNner-Gateway-Operator chart is available on [ArtifactHub](https://artifacthub.io/packages/helm/stunner/stunner-gateway-operator), in its official [GitHub repository](https://github.com/l7mp/stunner-helm/tree/main/helm/stunner-gateway-operator).

0 comments on commit 72ac8bb

Please sign in to comment.