docs(helm chart): values.yaml is documented and json.schema provided (#932)
* docs(helm chart): values.yaml is documented and json.schema provided Helm Chart values.yaml file is documented with inline comments. These have been used to generate a README (in the helm repo) and a values.json.schema file. fixes https://github.com/specklesystems/speckle-server/issues/887 fixes https://github.com/specklesystems/speckle-server/issues/867
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
"build": "yarn workspaces foreach -ptv run build",
|
||||
"build:public": "yarn workspaces foreach -ptv --no-private run build",
|
||||
"lint": "eslint . --ext .js,.ts,.vue --max-warnings=0",
|
||||
"helm:readme:generate": "./utils/helm/update-documentation.sh",
|
||||
"prettier:check": "prettier --check .",
|
||||
"prettier:fix": "prettier --write .",
|
||||
"circleci:check": "circleci config validate ./.circleci/config.yml",
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"comments": {
|
||||
"format": "##"
|
||||
},
|
||||
"tags": {
|
||||
"param": "@param",
|
||||
"section": "@section",
|
||||
"descriptionStart": "@descriptionStart",
|
||||
"descriptionEnd": "@descriptionEnd",
|
||||
"skip": "@skip",
|
||||
"extra": "@extra"
|
||||
},
|
||||
"modifiers": {
|
||||
"array": "array",
|
||||
"object": "object",
|
||||
"string": "string",
|
||||
"nullable": "nullable"
|
||||
},
|
||||
"regexp": {
|
||||
"paramsSectionTitle": "Parameters"
|
||||
}
|
||||
}
|
||||
@@ -94,14 +94,6 @@ Part-of label
|
||||
app.kubernetes.io/part-of: {{ include "speckle.name" . }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Connects to kube api-server to determine if Cilium CRD are present.
|
||||
If they are we assume that Cilium is installed.
|
||||
*/}}
|
||||
{{- define "speckle.networkpolicy.ciliumIsPresent" -}}
|
||||
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Creates a network policy egress definition for connecting to Redis
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,292 +1,794 @@
|
||||
## @section Namespace
|
||||
##
|
||||
|
||||
## @param namespace The name of the namespace in which Speckle will be deployed.
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
|
||||
##
|
||||
namespace: speckle-test
|
||||
|
||||
## @param create_namespace Enabling this will create a new namespace into which Speckle will be deployed
|
||||
## The name of the namespace to create should be provided in the `namespace` parameter.
|
||||
##
|
||||
create_namespace: false
|
||||
|
||||
## @section SSL
|
||||
##
|
||||
|
||||
## @param domain The DNS host name at which this Speckle deployment will be reachable
|
||||
##
|
||||
domain: localhost
|
||||
|
||||
## @param ssl_canonical_url HTTPS protocol will be the preferred protocol for serving this Speckle deployment
|
||||
##
|
||||
ssl_canonical_url: true
|
||||
|
||||
## @param cert_manager_issuer The name of the ClusterIssuer kubernetes resource that provides the SSL Certificate
|
||||
##
|
||||
cert_manager_issuer: letsencrypt-staging
|
||||
|
||||
## @section Ingress metadata for NetworkPolicy
|
||||
## @descriptionStart
|
||||
## This section is ignored unless networkPolicy is enabled for frontend or server.
|
||||
## The NetworkPolicy uses this value to enable connections from the ingress controller pod in this namespace to reach Speckle.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||
## @descriptionEnd
|
||||
##
|
||||
ingress:
|
||||
## @param ingress.namespace The namespace in which the ingress controller is deployed.
|
||||
namespace: ingress-nginx
|
||||
## @param ingress.controllerName The name of the Kubernetes pod in which the ingress controller is deployed.
|
||||
controllerName: ingress-nginx
|
||||
|
||||
## @section Common parameters
|
||||
##
|
||||
## @param docker_image_tag Speckle is published as a Docker Image. The version of the image which will be deployed is specified by this tag.
|
||||
##
|
||||
docker_image_tag: v2.3.3
|
||||
|
||||
## @param imagePullPolicy Determines the conditions when the Docker Images for Speckle should be pulled from the Image registry.
|
||||
## ref: https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy
|
||||
##
|
||||
imagePullPolicy: IfNotPresent
|
||||
|
||||
## @param secretName This is the name of the Kubernetes Secret resource in which secrets for Speckle are stored.
|
||||
## Secrets within this Secret resource may include Postgres and Redis connectin strings, S3 secret values, email server passwords, etc..
|
||||
## The expected key within the Secret resource is indicated elsewhere in this values.yaml file.
|
||||
## This is expected to be an opaque Secret resource type.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
|
||||
##
|
||||
secretName: server-vars
|
||||
|
||||
## @param file_size_limit_mb This maximum size of any single file (unit is Megabytes) that can be uploaded to Speckle
|
||||
##
|
||||
file_size_limit_mb: 100
|
||||
|
||||
## @section Monitoring
|
||||
## @descriptionStart
|
||||
## This enables metrics generated by Speckle to be ingested by Prometheus: https://prometheus.io/
|
||||
## Enabling this requires Prometheus to have been deployed prior, as this resource expects the Prometheus Customer Resource Definition
|
||||
## for the ServiceMonitor to already be existing within the cluster.
|
||||
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/getting-started.md#related-resources
|
||||
## @descriptionEnd
|
||||
##
|
||||
|
||||
## @param enable_prometheus_monitoring If enabled, Speckle deploys a Prometheus ServiceMonitor resource
|
||||
##
|
||||
enable_prometheus_monitoring: false
|
||||
|
||||
prometheusMonitoring:
|
||||
## @param prometheusMonitoring.namespace If provided, deploys Speckle's Prometheus resources in the given namespace
|
||||
## Prometheus prior to v0.19.0, or any version when deployed with default parameters, expects ServiceMonitors to be deployed within the same namespace.
|
||||
## This parameter allows the Prometheus resources provided by Speckle to be deployed in another namespace.
|
||||
## This allows Prometheus (< v0.19.0 or any version with default configuration) to be deployed in a separate namespace from Speckle.
|
||||
## Note that Speckle expect the namespace to exist prior to deployment.
|
||||
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/getting-started.md#related-resources
|
||||
##
|
||||
namespace: ''
|
||||
## @param prometheusMonitoring.release If provided, adds the value to a `release` label on all the Prometheus resources deployed by Speckle
|
||||
## Prometheus prior to v0.19.0, or any version when deployed with default parameters, expects ServiceMonitors to be selectable on the release label.
|
||||
## This parameter allows Prometheus to be deployed with a non-default release name.
|
||||
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/getting-started.md#related-resources
|
||||
##
|
||||
release: ''
|
||||
|
||||
## @section Postgres Database
|
||||
## @descriptionStart
|
||||
## Defines parameters related to connections to the Postgres database.
|
||||
## A secret containing the connection string to the Postgres database must stored within the Kubernetes cluster as an opaque Kubernetes Secret.
|
||||
## The name of the secret must match the `secretName` parameter, and the key within this secret must be `postgres_url`.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
|
||||
## @descriptionEnd
|
||||
##
|
||||
db:
|
||||
# postgres_url: secret -> postgres_url
|
||||
## @param db.useCertificate If enabled, the certificate defined in db.certificate is used to verify TLS connections to the Postgres database
|
||||
##
|
||||
useCertificate: false
|
||||
## @param db.maxConnectionsServer The number of connections to the Postgres database to provide in the connection pool
|
||||
##
|
||||
maxConnectionsServer: 4
|
||||
## @param db.certificate The x509 public certificate for SSL connections to the Postgres database
|
||||
## Use of this certificate requires db.useCertificate to be enabled and an appropriate value for db.PGSSLMODE provided.
|
||||
## The value must be formatted as a multi-line string. We recommend using the pipe-symbol and taking care to
|
||||
## indent all lines of the value correctly.
|
||||
## ref: https://helm.sh/docs/chart_template_guide/yaml_techniques/#strings-in-yaml
|
||||
##
|
||||
certificate: '' # Multi-line string with the contents of `ca-certificate.crt`
|
||||
## @param db.PGSSLMODE This defines the level of security used when connecting to the Postgres database
|
||||
## Postgres provides different froms of protection from different types of threat when communicating between the client (Speckle) and the Postgres database.
|
||||
## ref: https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION
|
||||
##
|
||||
PGSSLMODE: require
|
||||
networkPolicy: # if network policy is enabled for any service, this provides the networkPolicy with the necessary details to allow egress connections to the database
|
||||
port: '' # the port to connect to, if known (default: "5432")
|
||||
externalToCluster: # use if the database is external to the kubernetes cluster
|
||||
enabled: true # only one of externalToCluster or inCluster should be enabled, if both are enabled only inCluster is deployed
|
||||
host: '' # Domain name, or provide IP address. If both are provided IP address takes precedence
|
||||
ipv4: '' # IP address of the externally hosted Database. If not known, provide the host instead. If both are provided the IP address takes precedence.
|
||||
inCluster: # use if the database is deployed within the same kubernetes cluster as Speckle
|
||||
enabled: false # only one of externalToCluster or inCluster should be enabled, if both are enabled only inCluster is deployed
|
||||
podSelector: {} # the selector to match with pod of the deployed database instance
|
||||
namespaceSelector: {} # the selector to match the namespace in which the database pod is deployed
|
||||
## @extra db.networkPolicy If networkPolicy is enabled for any service, this provides the NetworkPolicy with the necessary details to allow egress connections to the Postgres database
|
||||
##
|
||||
networkPolicy:
|
||||
## @param db.networkPolicy.port the port on the server providing the Postgres database (default: "5432")
|
||||
##
|
||||
port: ''
|
||||
## @extra db.networkPolicy.externalToCluster Only required if the Postgres database is not hosted within the Kubernetes cluster in which Speckle will be deployed.
|
||||
##
|
||||
externalToCluster:
|
||||
## @param db.networkPolicy.externalToCluster.enabled If enabled, indicates that the Postgres database is hosted externally to the Kubernetes cluster
|
||||
## Only one of externalToCluster or inCluster should be enabled. If both are enabled then inCluster takes precedence and is the only one deployed
|
||||
##
|
||||
enabled: true
|
||||
## @param db.networkPolicy.externalToCluster.host The domain name at which the Postgres database is hosted.
|
||||
## This should match the value provided within the connection string.
|
||||
## Provide the IP address if available (use the `ipv4` parameter), as the IP address takes precedence.
|
||||
##
|
||||
host: ''
|
||||
## @param db.networkPolicy.externalToCluster.ipv4 The IP address at which the Postgres database is hosted
|
||||
## This should be an IP address not within the Kubernetes Cluster Pod or Service IP ranges.
|
||||
## If both host and ipv4 parameters are provided, ipv4 takes precedence and host is ignored.
|
||||
##
|
||||
ipv4: ''
|
||||
## @extra db.networkPolicy.inCluster Only required if the Postgres database is hosted within the Kubernetes cluster in which Speckle will be deployed.
|
||||
##
|
||||
inCluster:
|
||||
## @param db.networkPolicy.inCluster.enabled If enabled, indicates that the Postgres database is hosted withing the same Kubernetes cluster in which Speckle will be deployed
|
||||
## Only one of externalToCluster or inCluster should be enabled. If both are enabled then inCluster takes precedence and is the only set of egress network policy rules deployed.
|
||||
##
|
||||
enabled: false
|
||||
## @param db.networkPolicy.inCluster.podSelector The pod Selector yaml object used to uniquely select the Postgres database pods within the cluster and given namespace
|
||||
## This is a Kubernetes podSelector object
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/#behavior-of-to-and-from-selectors
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
##
|
||||
podSelector: {}
|
||||
## @param db.networkPolicy.inCluster.namespaceSelector The namespace selector yaml object used to uniquely select the namespace in which the Postgres database pods are deployed
|
||||
## This is a Kubernetes namespaceSelector object
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/#behavior-of-to-and-from-selectors
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
##
|
||||
namespaceSelector: {}
|
||||
|
||||
## @section S3 Compatible Storage
|
||||
## @descriptionStart
|
||||
## Defines parameters related to connecting to the S3 compatible storage.
|
||||
## A secret containing the secret key must stored within the Kubernetes cluster as an opaque Kubernetes Secret.
|
||||
## The name of the Kubernetes Secret resource must match the `secretName` parameter, and the key within this Kubernetes Secret must be `s3_secret_key`.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
|
||||
## @descriptionEnd
|
||||
##
|
||||
s3:
|
||||
## @param s3.endpoint The URL at which the s3 compatible storage is hosted
|
||||
## The url should be prefixed by the protocol (e.g. `https://`)
|
||||
## The url may need to include the port if it is not the default (e.g. `443` for `https` protocol)
|
||||
##
|
||||
endpoint: ''
|
||||
## @param s3.bucket The s3 compatible bucket in which Speckle data will be stored
|
||||
## The access key should be granted write permissions to this bucket
|
||||
##
|
||||
bucket: ''
|
||||
## @param s3.access_key The key of the access key used to authenticate with the s3 compatible storage
|
||||
##
|
||||
access_key: ''
|
||||
## @param s3.create_bucket If enabled, will create a bucket with the given bucket name at this endpoint
|
||||
## If enabled, the access_key must be granted the appropriate bucket creation privileges
|
||||
##
|
||||
create_bucket: 'false'
|
||||
region: '' # optional, defaults to 'us-east-1'
|
||||
# secret_key: secret -> s3_secret_key
|
||||
networkPolicy: # if network policy is enabled for any service, this provides the networkPolicy with the necessary details to allow egress connections to the s3 compatible storage
|
||||
externalToCluster: # use if the s3 compatible storage is external to the kubernetes cluster
|
||||
enabled: true # only one of externalToCluster or inCluster should be enabled, if both are enabled only inCluster is deployed
|
||||
inCluster: # use if the s3 compatible storage is deployed within the same kubernetes cluster as Speckle
|
||||
enabled: false # only one of externalToCluster or inCluster should be enabled, if both are enabled only inCluster is deployed
|
||||
podSelector: {} # the selector to match with pod of the deployed s3 compatible storage instance
|
||||
namespaceSelector: {} # the selector to match the namespace in which the s3 compatible storage pod is deployed
|
||||
## @param s3.region The region in which the bucket resides (or will be created in).
|
||||
## If not provided, defaults to `us-east-1`. For many providers of s3 compatible storage, such as minio, this value may be ignored.
|
||||
##
|
||||
region: ''
|
||||
## @extra s3.networkPolicy If networkPolicy is enabled for any service, this provides the NetworkPolicy with the necessary details to allow egress connections to the s3 compatible storage
|
||||
##
|
||||
networkPolicy:
|
||||
## @param s3.networkPolicy.port the port on the server providing the s3 compatible storage (default: "443")
|
||||
##
|
||||
port: ''
|
||||
## @extra s3.networkPolicy.externalToCluster Only required if the s3 compatible storage is not hosted within the Kubernetes cluster in which Speckle will be deployed.
|
||||
##
|
||||
externalToCluster:
|
||||
## @param s3.networkPolicy.externalToCluster.enabled If enabled, indicates that the s3 compatible storage is hosted externally to the Kubernetes cluster
|
||||
## Only one of externalToCluster or inCluster should be enabled. If both are enabled then inCluster takes precedence and is the only one deployed
|
||||
##
|
||||
enabled: true
|
||||
## @param s3.networkPolicy.externalToCluster.host The domain name at which the s3 compatible storage is hosted.
|
||||
## This should match the value provided within the connection string.
|
||||
## Provide the IP address if available (use the `ipv4` parameter), as the IP address takes precedence.
|
||||
##
|
||||
host: ''
|
||||
## @param s3.networkPolicy.externalToCluster.ipv4 The IP address at which the s3 compatible storage is hosted
|
||||
## This should be an IP address not within the Kubernetes Cluster Pod or Service IP ranges.
|
||||
## If both host and ipv4 parameters are provided, ipv4 takes precedence and host is ignored.
|
||||
##
|
||||
ipv4: ''
|
||||
## @extra s3.networkPolicy.inCluster Only required if the s3 compatible storage is hosted within the Kubernetes cluster in which Speckle will be deployed.
|
||||
##
|
||||
inCluster:
|
||||
## @param s3.networkPolicy.inCluster.enabled If enabled, indicates that the s3 compatible storage is hosted withing the same Kubernetes cluster in which Speckle will be deployed
|
||||
## Only one of externalToCluster or inCluster should be enabled. If both are enabled then inCluster takes precedence and is the only set of egress network policy rules deployed.
|
||||
##
|
||||
enabled: false
|
||||
## @param s3.networkPolicy.inCluster.podSelector The pod Selector yaml object used to uniquely select the s3 compatible storage pods within the cluster and given namespace
|
||||
## This is a Kubernetes podSelector object
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/#behavior-of-to-and-from-selectors
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
##
|
||||
podSelector: {}
|
||||
## @param s3.networkPolicy.inCluster.namespaceSelector The namespace selector yaml object used to uniquely select the namespace in which the s3 compatible storage pods are deployed
|
||||
## This is a Kubernetes namespaceSelector object
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/#behavior-of-to-and-from-selectors
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
##
|
||||
namespaceSelector: {}
|
||||
|
||||
## @section Redis Store
|
||||
## @descriptionStart
|
||||
## Defines parameters related to connecting to the Redis Store.
|
||||
## A secret containing the redis url (containing domain, username, and password) must stored within the Kubernetes cluster as an opaque Kubernetes Secret.
|
||||
## The name of the Kubernetes Secret resource must match the `secretName` parameter, and the key within this Kubernetes Secret resource must be `redis_url`.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
|
||||
## @descriptionEnd
|
||||
##
|
||||
redis:
|
||||
# redis_url: secret -> redis_url
|
||||
networkPolicy: # if network policy is enabled for any service, this provides the networkPolicy with the necessary details to allow egress connections to redis
|
||||
port: '' # the port to connect to, if known (default: "6379")
|
||||
externalToCluster: # use if redis is external to the kubernetes cluster
|
||||
enabled: true # only one of externalToCluster or inCluster should be enabled, if both are enabled only inCluster is deployed
|
||||
host: '' # Domain name of the externally hosted Redis. It is preferable to provide the IP address. If both are provided IP address takes precedence
|
||||
ipv4: '' # IP address of the externally hosted Redis. If not known, provide the host instead. If both are provided the IP address takes precedence.
|
||||
inCluster: # use if redis is deployed within the same kubernetes cluster as Speckle
|
||||
enabled: false # only one of externalToCluster or inCluster should be enabled, if both are enabled only inCluster is deployed
|
||||
podSelector: {} # the selector to match with pod of the deployed Redis instance
|
||||
namespaceSelector: {} # the selector to match the namespace in which the Redis pod is deployed
|
||||
## @extra redis.networkPolicy If networkPolicy is enabled for Speckle server, this provides the NetworkPolicy with the necessary details to allow egress connections to the Redis store
|
||||
##
|
||||
networkPolicy:
|
||||
## @param redis.networkPolicy.port the port on the server providing the Redis store (default: "6379")
|
||||
##
|
||||
port: ''
|
||||
## @extra redis.networkPolicy.externalToCluster Only required if the Redis store is not hosted within the Kubernetes cluster in which Speckle will be deployed.
|
||||
##
|
||||
externalToCluster:
|
||||
## @param redis.networkPolicy.externalToCluster.enabled If enabled, indicates that the Redis store is hosted externally to the Kubernetes cluster
|
||||
## Only one of externalToCluster or inCluster should be enabled. If both are enabled then inCluster takes precedence and is the only one deployed
|
||||
##
|
||||
enabled: true
|
||||
## @param redis.networkPolicy.externalToCluster.host The domain name at which the Redis store is hosted.
|
||||
## This should match the value provided within the connection string.
|
||||
## Provide the IP address if available (use the `ipv4` parameter), as the IP address takes precedence.
|
||||
##
|
||||
host: ''
|
||||
## @param redis.networkPolicy.externalToCluster.ipv4 The IP address at which the Redis store is hosted
|
||||
## This should be an IP address not within the Kubernetes Cluster Pod or Service IP ranges.
|
||||
## If both host and ipv4 parameters are provided, ipv4 takes precedence and host is ignored.
|
||||
##
|
||||
ipv4: ''
|
||||
## @extra redis.networkPolicy.inCluster is only required if the Redis store is hosted within the Kubernetes cluster in which Speckle will be deployed.
|
||||
##
|
||||
inCluster:
|
||||
## @param redis.networkPolicy.inCluster.enabled If enabled, indicates that the Redis store is hosted withing the same Kubernetes cluster in which Speckle will be deployed
|
||||
## Only one of externalToCluster or inCluster should be enabled. If both are enabled then inCluster takes precedence and is the only set of egress network policy rules deployed.
|
||||
##
|
||||
enabled: false
|
||||
## @param redis.networkPolicy.inCluster.podSelector The pod Selector yaml object used to uniquely select the Redis store pods within the cluster and given namespace
|
||||
## This is a Kubernetes podSelector object
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/#behavior-of-to-and-from-selectors
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
##
|
||||
podSelector: {}
|
||||
## @param redis.networkPolicy.inCluster.namespaceSelector The namespace selector yaml object used to uniquely select the namespace in which the Redis store pods are deployed
|
||||
## This is a Kubernetes namespaceSelector object
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/#behavior-of-to-and-from-selectors
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
##
|
||||
namespaceSelector: {}
|
||||
|
||||
## @section Server
|
||||
## @descriptionStart
|
||||
## Defines parameters related to the backend server component of Speckle.
|
||||
## A secret containing the an unique value (this can be generated randomly) must stored within the Kubernetes cluster as an opaque Kubernetes Secret.
|
||||
## The name of the Kubernetes Secret resource must match the `secretName` parameter, and the key within this Secret resource must be `session_secret`.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
|
||||
## @descriptionEnd
|
||||
##
|
||||
server:
|
||||
## @param server.replicas The number of instances of the Server pod to be deployed within the cluster.
|
||||
##
|
||||
replicas: 1
|
||||
# session_secret: secret -> `session_secret`
|
||||
## @extra server.auth Speckle provides a number of different mechanisms for authenticating users. Each available option must be configured here.
|
||||
##
|
||||
auth:
|
||||
local:
|
||||
## @param server.auth.local.enabled If enabled, users can register and authenticate with an email address and password.
|
||||
## The login details are stored in the Postgres database connected to Speckle and are encrypted.
|
||||
##
|
||||
enabled: true
|
||||
google:
|
||||
## @param server.auth.google.enabled If enabled, users can authenticate via Google with their Google account credentials.
|
||||
## If enabling Google, the `server.auth.google.client_id` parameter is required.
|
||||
## A secret containing the client secret must stored within the Kubernetes cluster as an opaque Kubernetes Secret.
|
||||
## The name of the Kubernetes Secret resource must match the `secretName` parameter, and the key within this Kubernetes Secret must be `google_client_secret`.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
|
||||
##
|
||||
enabled: false
|
||||
## @param server.auth.google.client_id This is the ID for Speckle that you have registered with Google.
|
||||
##
|
||||
client_id: ''
|
||||
# client_secret: secret -> `google_client_secret`
|
||||
github:
|
||||
## @param server.auth.github.enabled If enabled, users can authenticate via Github with their Github account credentials.
|
||||
## If enabling Github authentication, the `server.auth.github.client_id` parameter is required.
|
||||
## A secret containing the client secret must stored within the Kubernetes cluster as an opaque Kubernetes Secret.
|
||||
## The name of the Kubernetes Secret resource must match the `secretName` parameter, and the key within this Kubernetes Secret must be `github_client_secret`.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
|
||||
##
|
||||
enabled: false
|
||||
## @param server.auth.github.client_id This is the ID for Speckle that you have registered with Github
|
||||
##
|
||||
client_id: ''
|
||||
# client_secret: secret -> `github_client_secret`
|
||||
azure_ad:
|
||||
## @param server.auth.azure_ad.enabled If enabled, users can authenticate via Azure Active Directory.
|
||||
## If enabling Azure Active Directory authentication, a secret containing the client secret must stored within the Kubernetes cluster as an opaque Kubernetes Secret.
|
||||
## The name of the Kubernetes Secret resource must match the `secretName` parameter, and the key within this Kubernetes Secret must be `azure_ad_client_secret`.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
|
||||
##
|
||||
enabled: false
|
||||
## @param server.auth.azure_ad.org_name This is the Organisation Name that you have registered with Azure
|
||||
##
|
||||
org_name: ''
|
||||
## @param server.auth.azure_ad.identity_metadata This is the identity metadata for Speckle that you have registered with Azure
|
||||
##
|
||||
identity_metadata: ''
|
||||
## @param server.auth.azure_ad.issuer This is the issuer name for Speckle that you have registered with Azure
|
||||
##
|
||||
issuer: ''
|
||||
## @param server.auth.azure_ad.client_id This is the ID for Speckle that you have registered with Azure
|
||||
##
|
||||
client_id: ''
|
||||
# client_secret: secret -> `azure_ad_client_secret`
|
||||
## @extra server.email Speckle can communicate with users via email, providing account verification and notification.
|
||||
##
|
||||
email:
|
||||
## @param server.email.enabled If enabled, Speckle can send email to users - for example, email verification for account registration.
|
||||
## If enabling Email, a secret containing the password to the email server must stored within the Kubernetes cluster as an opaque Kubernetes Secret.
|
||||
## The name of the Kubernetes Secret resource must match the `secretName` parameter, and the key within this Kubernetes Secret must be `email_password`.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
|
||||
##
|
||||
enabled: false
|
||||
## @param server.email.host The domain name or IP address of the server hosting the email service.
|
||||
##
|
||||
host: ''
|
||||
## @param server.email.port The port on the server for the email service.
|
||||
##
|
||||
port: ''
|
||||
## @param server.email.username The username with which Speckle will authenticate with the email service.
|
||||
## Note that the `email_password` is expected to be provided in the Kubernetes Secret with the name provided in the `secretName` parameter.
|
||||
##
|
||||
username: ''
|
||||
# password: secret -> `email_password`
|
||||
requests:
|
||||
## @param server.requests.cpu The CPU that should be available on a node when scheduling this pod.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 500m
|
||||
## @param server.requests.memory The Memory that should be available on a node when scheduling this pod.
|
||||
## Depending on the Kubernetes cluster's configuration, exceeding this value may result in pod eviction from a node.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 1Gi
|
||||
limits:
|
||||
## @param server.limits.cpu The maximum CPU that will be made available to the server Pod in a given period.
|
||||
## If this limit is exceeded, execution of the Pod will be paused until the next period.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 1000m
|
||||
## @param server.limits.memory The maximum Memory that will be made available to the server Pod.
|
||||
## If this limit is exceeded, processes within the pod that request additional memory may be stopped.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 3Gi
|
||||
serviceAccount:
|
||||
## @param server.serviceAccount.create If enabled, a Kubernetes Service Account will be created for this pod.
|
||||
## This provides additional security by limiting this pod's access to the Kubernetes API and to Secrets on the Kubernetes cluster.
|
||||
## If disabled, the default Service Account will be used which in most Kubernetes configurations will grant this pod
|
||||
## access to most secrets on the cluster and access to the Kubernetes API.
|
||||
##
|
||||
create: true
|
||||
|
||||
monitoring:
|
||||
apollo:
|
||||
## @param server.monitoring.apollo.enabled (Optional) If enabled, exports metrics from the GraphQL API to Apollo Graphql Studio.
|
||||
## If enabling Apollo, a secret containing the key to the Apollo Graphql Studio API must stored within the Kubernetes cluster as an opaque Kubernetes Secret.
|
||||
## The name of the Kubernetes Secret resource must match the `secretName` parameter, and the key within this Kubernetes Secret must be `apollo_key`.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
|
||||
##
|
||||
enabled: false
|
||||
## @param server.monitoring.apollo.graph_id The ID for Speckle that you registered in Apollo Graphql Studio.
|
||||
##
|
||||
graph_id: ''
|
||||
# key: secret -> `apollo_key`
|
||||
|
||||
# Sentry specific:
|
||||
## @param server.sentry_dns (Optional) The Data Source Name that was provided by Sentry.io
|
||||
## Sentry.io allows events within Speckle to be monitored
|
||||
##
|
||||
sentry_dns: ''
|
||||
## @param server.disable_tracking If set to true, will prevent tracking metrics from being collected
|
||||
## Setting this value to false requires `sentry_dns` to be set
|
||||
##
|
||||
disable_tracking: false
|
||||
## @param server.disable_tracing If set to true, will prevent tracing metrics from being collected
|
||||
## Setting this value to false requires `sentry_dns` to be set
|
||||
##
|
||||
disable_tracing: false
|
||||
networkPolicy:
|
||||
## @param server.networkPolicy.enabled If enabled, will provide additional security be limiting network traffic into and out of the pod to only the required endpoints and ports.
|
||||
## If enabled, the `ingress`, `postgres.networkPolicy`, `redis.networkPolicy`, and `s3.networkPolicy` parameters need be configured.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||
##
|
||||
enabled: false
|
||||
## @param server.affinity Affinity for Speckle server pods assignment
|
||||
## @param server.affinity Affinity for Speckle server pods scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
##
|
||||
affinity: {}
|
||||
## @param server.nodeSelector Node labels for Speckle server pods assignment
|
||||
## @param server.nodeSelector Node labels for Speckle server pods scheduling
|
||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
##
|
||||
nodeSelector: {}
|
||||
## @param server.tolerations Tolerations for Speckle server pods assignment
|
||||
## @param server.tolerations Tolerations for Speckle server pods scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
##
|
||||
tolerations: []
|
||||
## @param server.topologySpreadConstraints Spread Constraints for Speckle server pod assignment
|
||||
## @param server.topologySpreadConstraints Spread Constraints for Speckle server pod scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
##
|
||||
topologySpreadConstraints: []
|
||||
|
||||
## @section Frontend
|
||||
## @descriptionStart
|
||||
## Defines parameters related to the frontend server component of Speckle.
|
||||
## @descriptionEnd
|
||||
##
|
||||
frontend:
|
||||
## @param frontend.replicas The number of instances of the Frontend pod to be deployed within the cluster.
|
||||
##
|
||||
replicas: 1
|
||||
requests:
|
||||
## @param frontend.requests.cpu The CPU that should be available on a node when scheduling this pod.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 250m
|
||||
## @param frontend.requests.memory The Memory that should be available on a node when scheduling this pod.
|
||||
## Depending on the Kubernetes cluster's configuration, exceeding this value may result in pod eviction from a node.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 256Mi
|
||||
limits:
|
||||
## @param frontend.limits.cpu The maximum CPU that will be made available to the frontend Pod in a given period.
|
||||
## If this limit is exceeded, execution of the Pod will be paused until the next period.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 1000m
|
||||
## @param frontend.limits.memory The maximum Memory that will be made available to the frontend Pod.
|
||||
## If this limit is exceeded, processes within the pod that request additional memory may be stopped.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 512Mi
|
||||
networkPolicy:
|
||||
## @param frontend.networkPolicy.enabled If enabled, will provide additional security be limiting network traffic into and out of the pod to only the required endpoints and ports.
|
||||
## If enabled, the `ingress` parameters need be configured.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||
##
|
||||
enabled: false
|
||||
## @param server.affinity Affinity for Speckle server pods assignment
|
||||
## @param frontend.affinity Affinity for Speckle frontend pod scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
##
|
||||
affinity: {}
|
||||
## @param server.nodeSelector Node labels for Speckle server pods assignment
|
||||
## @param frontend.nodeSelector Node labels for Speckle frontend pods scheduling
|
||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
##
|
||||
nodeSelector: {}
|
||||
## @param server.tolerations Tolerations for Speckle server pods assignment
|
||||
## @param frontend.tolerations Tolerations for Speckle frontend pods scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
##
|
||||
tolerations: []
|
||||
## @param server.topologySpreadConstraints Spread Constraints for Speckle server pod assignment
|
||||
## @param frontend.topologySpreadConstraints Spread Constraints for Speckle frontend pod scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
##
|
||||
topologySpreadConstraints: []
|
||||
serviceAccount:
|
||||
## @param frontend.serviceAccount.create If enabled, a Kubernetes Service Account will be created for this pod.
|
||||
## This provides additional security by limiting this pod's access to the Kubernetes API and to Secrets on the Kubernetes cluster.
|
||||
## If disabled, the default Service Account will be used which in most Kubernetes configurations will grant this pod
|
||||
## access to most secrets on the cluster and access to the Kubernetes API.
|
||||
##
|
||||
create: true
|
||||
|
||||
## @section Preview Service
|
||||
## @descriptionStart
|
||||
## Defines parameters related to the Preview Service component of Speckle.
|
||||
## @descriptionEnd
|
||||
##
|
||||
preview_service:
|
||||
## @param preview_service.replicas The number of instances of the Preview Service pod to be deployed within the cluster.
|
||||
##
|
||||
replicas: 1
|
||||
requests:
|
||||
## @param preview_service.requests.cpu The CPU that should be available on a node when scheduling this pod.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 500m
|
||||
## @param preview_service.requests.memory The Memory that should be available on a node when scheduling this pod.
|
||||
## Depending on the Kubernetes cluster's configuration, exceeding this value may result in pod eviction from a node.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 2Gi
|
||||
limits:
|
||||
## @param preview_service.limits.cpu The maximum CPU that will be made available to the Preview Service Pod in a given period.
|
||||
## If this limit is exceeded, execution of the Pod will be paused until the next period.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 1000m
|
||||
## @param preview_service.limits.memory The maximum Memory that will be made available to the Preview Service Pod.
|
||||
## If this limit is exceeded, processes within the pod that request additional memory may be stopped.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 4Gi
|
||||
networkPolicy:
|
||||
## @param preview_service.networkPolicy.enabled If enabled, will provide additional security be limiting network traffic into and out of the pod to only the required endpoints and ports.
|
||||
## If enabled, the `db.networkPolicy` parameters need be configured.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||
##
|
||||
enabled: false
|
||||
## @param server.affinity Affinity for Speckle server pods assignment
|
||||
## @param preview_service.affinity Affinity for Speckle Preview Service pod scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
##
|
||||
affinity: {}
|
||||
## @param server.nodeSelector Node labels for Speckle server pods assignment
|
||||
## @param preview_service.nodeSelector Node labels for Speckle Preview Service pods scheduling
|
||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
##
|
||||
nodeSelector: {}
|
||||
## @param server.tolerations Tolerations for Speckle server pods assignment
|
||||
## @param preview_service.tolerations Tolerations for Speckle Preview Service pods scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
##
|
||||
tolerations: []
|
||||
## @param server.topologySpreadConstraints Spread Constraints for Speckle server pod assignment
|
||||
## @param preview_service.topologySpreadConstraints Spread Constraints for Speckle Preview Service pod scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
##
|
||||
topologySpreadConstraints: []
|
||||
serviceAccount:
|
||||
## @param preview_service.serviceAccount.create If enabled, a Kubernetes Service Account will be created for this pod.
|
||||
## This provides additional security by limiting this pod's access to the Kubernetes API and to Secrets on the Kubernetes cluster.
|
||||
## If disabled, the default Service Account will be used which in most Kubernetes configurations will grant this pod
|
||||
## access to most secrets on the cluster and access to the Kubernetes API.
|
||||
##
|
||||
create: true
|
||||
|
||||
## @section Webhook Service
|
||||
## @descriptionStart
|
||||
## Defines parameters related to the Webhook Service component of Speckle.
|
||||
## @descriptionEnd
|
||||
##
|
||||
webhook_service:
|
||||
## @param webhook_service.replicas The number of instances of the Webhook Service pod to be deployed within the cluster.
|
||||
##
|
||||
replicas: 1
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 512Mi
|
||||
networkPolicy:
|
||||
enabled: false
|
||||
## @param server.affinity Affinity for Speckle server pods assignment
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
##
|
||||
affinity: {}
|
||||
## @param server.nodeSelector Node labels for Speckle server pods assignment
|
||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
##
|
||||
nodeSelector: {}
|
||||
## @param server.tolerations Tolerations for Speckle server pods assignment
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
##
|
||||
tolerations: []
|
||||
## @param server.topologySpreadConstraints Spread Constraints for Speckle server pod assignment
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
##
|
||||
topologySpreadConstraints: []
|
||||
serviceAccount:
|
||||
create: true
|
||||
|
||||
fileimport_service:
|
||||
replicas: 1
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 512Mi
|
||||
limits:
|
||||
cpu: 1000m
|
||||
## @param webhook_service.requests.cpu The CPU that should be available on a node when scheduling this pod.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 500m
|
||||
## @param webhook_service.requests.memory The Memory that should be available on a node when scheduling this pod.
|
||||
## Depending on the Kubernetes cluster's configuration, exceeding this value may result in pod eviction from a node.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 2Gi
|
||||
serviceAccount:
|
||||
create: true
|
||||
time_limit_min: 10
|
||||
limits:
|
||||
## @param webhook_service.limits.cpu The maximum CPU that will be made available to the Webhook Service Pod in a given period.
|
||||
## If this limit is exceeded, execution of the Pod will be paused until the next period.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 1000m
|
||||
## @param webhook_service.limits.memory The maximum Memory that will be made available to the Webhook Service Pod.
|
||||
## If this limit is exceeded, processes within the pod that request additional memory may be stopped.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 4Gi
|
||||
networkPolicy:
|
||||
## @param webhook_service.networkPolicy.enabled If enabled, will provide additional security be limiting network traffic into and out of the pod to only the required endpoints and ports.
|
||||
## If enabled, the `db.networkPolicy` parameters need be configured.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||
##
|
||||
enabled: false
|
||||
## @param server.affinity Affinity for Speckle server pods assignment
|
||||
## @param webhook_service.affinity Affinity for Speckle Webhook Service pod scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
##
|
||||
affinity: {}
|
||||
## @param server.nodeSelector Node labels for Speckle server pods assignment
|
||||
## @param webhook_service.nodeSelector Node labels for Speckle Webhook Service pods scheduling
|
||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
##
|
||||
nodeSelector: {}
|
||||
## @param server.tolerations Tolerations for Speckle server pods assignment
|
||||
## @param webhook_service.tolerations Tolerations for Speckle Webhook Service pods scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
##
|
||||
tolerations: []
|
||||
## @param server.topologySpreadConstraints Spread Constraints for Speckle server pod assignment
|
||||
## @param webhook_service.topologySpreadConstraints Spread Constraints for Speckle Webhook Service pod scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
##
|
||||
topologySpreadConstraints: []
|
||||
serviceAccount:
|
||||
## @param webhook_service.serviceAccount.create If enabled, a Kubernetes Service Account will be created for this pod.
|
||||
## This provides additional security by limiting this pod's access to the Kubernetes API and to Secrets on the Kubernetes cluster.
|
||||
## If disabled, the default Service Account will be used which in most Kubernetes configurations will grant this pod
|
||||
## access to most secrets on the cluster and access to the Kubernetes API.
|
||||
##
|
||||
create: true
|
||||
|
||||
monitoring:
|
||||
## @section File Import Service
|
||||
## @descriptionStart
|
||||
## Defines parameters related to the File Import Service component of Speckle.
|
||||
## @descriptionEnd
|
||||
##
|
||||
fileimport_service:
|
||||
## @param fileimport_service.replicas The number of instances of the FileImport Service pod to be deployed within the cluster.
|
||||
##
|
||||
replicas: 1
|
||||
requests:
|
||||
## @param fileimport_service.requests.cpu The CPU that should be available on a node when scheduling this pod.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 100m
|
||||
## @param fileimport_service.requests.memory The Memory that should be available on a node when scheduling this pod.
|
||||
## Depending on the Kubernetes cluster's configuration, exceeding this value may result in pod eviction from a node.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 512Mi
|
||||
limits:
|
||||
## @param fileimport_service.limits.cpu The maximum CPU that will be made available to the FileImport Service Pod in a given period.
|
||||
## If this limit is exceeded, execution of the Pod will be paused until the next period.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 1000m
|
||||
## @param fileimport_service.limits.memory The maximum Memory that will be made available to the FileImport Service Pod.
|
||||
## If this limit is exceeded, processes within the pod that request additional memory may be stopped.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 2Gi
|
||||
networkPolicy:
|
||||
## @param fileimport_service.networkPolicy.enabled If enabled, will provide additional security be limiting network traffic into and out of the pod to only the required endpoints and ports.
|
||||
## If enabled, the `db.networkPolicy` parameters need be configured.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||
##
|
||||
enabled: false
|
||||
## @param fileimport_service.affinity Affinity for Speckle FileImport Service pod scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
##
|
||||
affinity: {}
|
||||
## @param fileimport_service.nodeSelector Node labels for Speckle FileImport Service pods scheduling
|
||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
##
|
||||
nodeSelector: {}
|
||||
## @param fileimport_service.tolerations Tolerations for Speckle FileImport Service pods scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
##
|
||||
tolerations: []
|
||||
## @param fileimport_service.topologySpreadConstraints Spread Constraints for Speckle FileImport Service pod scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
##
|
||||
topologySpreadConstraints: []
|
||||
serviceAccount:
|
||||
## @param fileimport_service.serviceAccount.create If enabled, a Kubernetes Service Account will be created for this pod.
|
||||
## This provides additional security by limiting this pod's access to the Kubernetes API and to Secrets on the Kubernetes cluster.
|
||||
## If disabled, the default Service Account will be used which in most Kubernetes configurations will grant this pod
|
||||
## access to most secrets on the cluster and access to the Kubernetes API.
|
||||
##
|
||||
create: true
|
||||
## @param fileimport_service.time_limit_min The maximum time that a file can take to be processed by the FileImport Service.
|
||||
## Files which take longer than this value to process will be cancelled.
|
||||
## If you experience repeated issues with small files taking a long time, and increasing CPU and/or memory requests & limits does not help,
|
||||
## please reach out to Speckle at https://speckle.community/
|
||||
##
|
||||
time_limit_min: 10
|
||||
|
||||
## @section Monitoring
|
||||
## @descriptionStart
|
||||
## Provides Speckle with metrics related to the Postgres database.
|
||||
## @descriptionEnd
|
||||
##
|
||||
monitoring:
|
||||
## @param monitoring.replicas The number of instances of the Monitoring pod to be deployed within the cluster.
|
||||
##
|
||||
replicas: 1
|
||||
requests:
|
||||
## @param monitoring.requests.cpu The CPU that should be available on a node when scheduling this pod.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 100m
|
||||
## @param monitoring.requests.memory The Memory that should be available on a node when scheduling this pod.
|
||||
## Depending on the Kubernetes cluster's configuration, exceeding this value may result in pod eviction from a node.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 64Mi
|
||||
limits:
|
||||
## @param monitoring.limits.cpu The maximum CPU that will be made available to the Monitoring Pod in a given period.
|
||||
## If this limit is exceeded, execution of the Pod will be paused until the next period.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 200m
|
||||
## @param monitoring.limits.memory The maximum Memory that will be made available to the Monitoring Pod.
|
||||
## If this limit is exceeded, processes within the pod that request additional memory may be stopped.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 512Mi
|
||||
networkPolicy:
|
||||
## @param monitoring.networkPolicy.enabled If enabled, will provide additional security be limiting network traffic into and out of the pod to only the required endpoints and ports.
|
||||
## If enabled, the `db.networkPolicy` parameters need be configured.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||
##
|
||||
enabled: false
|
||||
## @param server.affinity Affinity for Speckle server pods assignment
|
||||
## @param monitoring.affinity Affinity for Speckle Monitoring pod scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
##
|
||||
affinity: {}
|
||||
## @param server.nodeSelector Node labels for Speckle server pods assignment
|
||||
## @param monitoring.nodeSelector Node labels for Speckle Monitoring pods scheduling
|
||||
## ref: https://kubernetes.io/docs/user-guide/node-selection/
|
||||
##
|
||||
nodeSelector: {}
|
||||
## @param server.tolerations Tolerations for Speckle server pods assignment
|
||||
## @param monitoring.tolerations Tolerations for Speckle Monitoring pods scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
##
|
||||
tolerations: []
|
||||
## @param server.topologySpreadConstraints Spread Constraints for Speckle server pod assignment
|
||||
## @param monitoring.topologySpreadConstraints Spread Constraints for Speckle Monitoring pod scheduling
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||
##
|
||||
topologySpreadConstraints: []
|
||||
serviceAccount:
|
||||
## @param monitoring.serviceAccount.create If enabled, a Kubernetes Service Account will be created for this pod.
|
||||
## This provides additional security by limiting this pod's access to the Kubernetes API and to Secrets on the Kubernetes cluster.
|
||||
## If disabled, the default Service Account will be used which in most Kubernetes configurations will grant this pod
|
||||
## access to most secrets on the cluster and access to the Kubernetes API.
|
||||
##
|
||||
create: true
|
||||
|
||||
## @section Testing
|
||||
## @descriptionStart
|
||||
## Defines parameters related to testing that the deployment of Speckle has been successful.
|
||||
## @descriptionEnd
|
||||
##
|
||||
|
||||
## @param helm_test_enabled If enabled, an additional pod is deployed which verifies some functionality of Speckle to determine if it is deployed correctly
|
||||
##
|
||||
helm_test_enabled: true
|
||||
|
||||
test:
|
||||
requests:
|
||||
## @param test.requests.cpu The CPU that should be available on a node when scheduling this pod.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 100m
|
||||
## @param test.requests.memory The Memory that should be available on a node when scheduling this pod.
|
||||
## Depending on the Kubernetes cluster's configuration, exceeding this value may result in pod eviction from a node.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 64Mi
|
||||
limits:
|
||||
## @param test.limits.cpu The maximum CPU that will be made available to the Test Pod in a given period.
|
||||
## If this limit is exceeded, execution of the Pod will be paused until the next period.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
cpu: 200m
|
||||
## @param test.limits.memory The maximum Memory that will be made available to the Test Pod.
|
||||
## If this limit is exceeded, processes within the pod that request additional memory may be stopped.
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
|
||||
##
|
||||
memory: 512Mi
|
||||
networkPolicy:
|
||||
## @param test.networkPolicy.enabled If enabled, will provide additional security be limiting network traffic into and out of the pod to only the required endpoints and ports.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||
##
|
||||
enabled: false
|
||||
serviceAccount:
|
||||
## @param test.serviceAccount.create If enabled, a Kubernetes Service Account will be created for this pod.
|
||||
## This provides additional security by limiting this pod's access to the Kubernetes API and to Secrets on the Kubernetes cluster.
|
||||
## If disabled, the default Service Account will be used which in most Kubernetes configurations will grant this pod
|
||||
## access to most secrets on the cluster and access to the Kubernetes API.
|
||||
##
|
||||
create: true
|
||||
|
||||
secretName: server-vars
|
||||
|
||||
enable_prometheus_monitoring: false
|
||||
prometheusMonitoring:
|
||||
namespace: ''
|
||||
release: ''
|
||||
cert_manager_issuer: letsencrypt-staging
|
||||
|
||||
helm_test_enabled: true
|
||||
|
||||
create_namespace: false
|
||||
file_size_limit_mb: 100
|
||||
imagePullPolicy: IfNotPresent
|
||||
|
||||
ingress:
|
||||
namespace: ingress-nginx
|
||||
controllerName: ingress-nginx
|
||||
|
||||
Executable
+71
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
if ! command -v node &> /dev/null
|
||||
then
|
||||
echo "🛑 node could not be found. Please install node (and ensure it is in your PATH) before trying again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v git &> /dev/null
|
||||
then
|
||||
echo "🛑 git could not be found. Please install git (and ensure it is in your PATH) before trying again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
GIT_ROOT="$(git rev-parse --show-toplevel)"
|
||||
|
||||
README_GENERATOR_DIR="${GIT_ROOT}/../readme-generator-for-helm"
|
||||
HELM_DIR="${GIT_ROOT}/../speckle-helm"
|
||||
HELM_GIT_TARGET_BRANCH="gh-pages"
|
||||
HELM_GIT_PR_BRANCH="${HELM_GIT_TARGET_BRANCH}-$(openssl rand -hex 6)"
|
||||
|
||||
JSON_SCHEMA_PATH="${GIT_ROOT}/utils/helm/speckle-server/values.schema.json"
|
||||
|
||||
if [ ! -d "${README_GENERATOR_DIR}" ]; then
|
||||
echo "🔭 Could not find readme-generator-for-helm in a sibling directory to speckle-server"
|
||||
echo "👩👩👧👧 Proceeding with cloning readme-generator-for-helm to a sibling directory, readme-generator-for-helm"
|
||||
git clone git@github.com:bitnami-labs/readme-generator-for-helm.git "${README_GENERATOR_DIR}"
|
||||
fi
|
||||
|
||||
pushd "${README_GENERATOR_DIR}"
|
||||
echo "✨ Updating to the latest version of readme-generator-for-helm"
|
||||
git switch main
|
||||
git pull origin main
|
||||
popd
|
||||
|
||||
if [ ! -d "${HELM_DIR}" ]; then
|
||||
echo "🔭 Could not find Speckle Helm in a sibling directory (named speckle-helm) to speckle-server"
|
||||
echo "👩👩👧👧 Proceeding with cloning Speckle's helm repository to a sibling directory, speckle-helm"
|
||||
git clone git@github.com:specklesystems/helm.git "${HELM_DIR}"
|
||||
fi
|
||||
|
||||
pushd "${HELM_DIR}"
|
||||
echo "✨ Updating to the latest version of Speckle helm"
|
||||
git switch main
|
||||
git pull origin main
|
||||
echo "🍽 Preparing forked branch for updates"
|
||||
git switch "${HELM_GIT_TARGET_BRANCH}"
|
||||
git pull origin "${HELM_GIT_TARGET_BRANCH}"
|
||||
git switch -c "${HELM_GIT_PR_BRANCH}"
|
||||
popd
|
||||
|
||||
pushd "${GIT_ROOT}"
|
||||
echo "🏗 Generating the documentation"
|
||||
node "${README_GENERATOR_DIR}/bin/index.js" \
|
||||
--config "${GIT_ROOT}/utils/helm/.helm-readme-configuration.json" \
|
||||
--values "${GIT_ROOT}/utils/helm/speckle-server/values.yaml" \
|
||||
--readme "${HELM_DIR}/README.md" \
|
||||
--schema "${JSON_SCHEMA_PATH}"
|
||||
|
||||
echo "🐛 Workaround for bug in generator for schema.json: https://github.com/bitnami-labs/readme-generator-for-helm/issues/34"
|
||||
TMP_OUTPUT="$(mktemp -t speckle-server-json-schema)"
|
||||
jq --arg replacement 'object' '(.. | .items? | select(.type == "")).type |= $replacement' "${JSON_SCHEMA_PATH}" > "${TMP_OUTPUT}" && mv "${TMP_OUTPUT}" "${JSON_SCHEMA_PATH}"
|
||||
popd
|
||||
|
||||
pushd "${HELM_DIR}"
|
||||
echo "🌳 Preparing Pull Request for Helm README..."
|
||||
git add README.md
|
||||
git commit -m "Updating README with revised parameters from values.yaml"
|
||||
git push --set-upstream origin "${HELM_GIT_PR_BRANCH}"
|
||||
echo "🙏 Please create a Pull Request, ❗️selecting gh-pages as the target branch❗️: https://github.com/specklesystems/helm/pull/new/${HELM_GIT_PR_BRANCH}"
|
||||
popd
|
||||
Reference in New Issue
Block a user