Skip to content

Helm Deployment

You can deploy the Beamlit Controller using Helm. Below is an example of how to deploy the Beamlit Controller using Helm:

export CLIENT_ID=REPLACE_ME
export CLIENT_SECRET=REPLACE_ME
helm install beamlit-controller oci://ghcr.io/beamlit/beamlit-controller-chart \
    --set installMetricServer=true \ # If you want to install the metric server along with the controller to allow offloading models
    --set beamlitApiToken=`echo -n $CLIENT_ID:$CLIENT_SECRET | base64` \
    --set config.defaultRemoteBackend.authConfig.oauthConfig.clientId=$CLIENT_ID \
    --set config.defaultRemoteBackend.authConfig.oauthConfig.clientSecret=$CLIENT_SECRET

Values

Key Type Default Description
allowedNamespaces list ["default"] allowed namespaces
beamlitApiToken string "REPLACE_ME" beamlit api token
beamlitBaseUrl string "https://api.beamlit.dev/v0" beamlit base url
config object {"defaultRemoteBackend":{"authConfig":{"oauthConfig":{"clientId":"REPLACE_ME","clientSecret":"REPLACE_ME","tokenUrl":"https://api.beamlit.dev/v0/oauth/token"},"type":"oauth"},"host":"run.beamlit.dev","pathPrefix":"/$workspace/models/$model","scheme":"https"},"enableHTTP2":false,"namespaces":"default","proxyService":{"adminPort":8081,"name":"beamlit-gateway","namespace":"default","port":8080},"secureMetrics":false} config.yaml options
config.defaultRemoteBackend object {"authConfig":{"oauthConfig":{"clientId":"REPLACE_ME","clientSecret":"REPLACE_ME","tokenUrl":"https://api.beamlit.dev/v0/oauth/token"},"type":"oauth"},"host":"run.beamlit.dev","pathPrefix":"/$workspace/models/$model","scheme":"https"} default-remote-backend
config.defaultRemoteBackend.authConfig object {"oauthConfig":{"clientId":"REPLACE_ME","clientSecret":"REPLACE_ME","tokenUrl":"https://api.beamlit.dev/v0/oauth/token"},"type":"oauth"} auth-config
config.defaultRemoteBackend.authConfig.oauthConfig object {"clientId":"REPLACE_ME","clientSecret":"REPLACE_ME","tokenUrl":"https://api.beamlit.dev/v0/oauth/token"} oauth2
config.defaultRemoteBackend.authConfig.oauthConfig.clientId string "REPLACE_ME" client-id
config.defaultRemoteBackend.authConfig.oauthConfig.clientSecret string "REPLACE_ME" client-secret
config.defaultRemoteBackend.authConfig.oauthConfig.tokenUrl string "https://api.beamlit.dev/v0/oauth/token" token-url
config.defaultRemoteBackend.authConfig.type string "oauth" type
config.defaultRemoteBackend.host string "run.beamlit.dev" host
config.defaultRemoteBackend.pathPrefix string "/$workspace/models/$model" path-prefix
config.defaultRemoteBackend.scheme string "https" scheme
config.enableHTTP2 bool false enable-http2
config.namespaces string "default" namespaces
config.proxyService object {"adminPort":8081,"name":"beamlit-gateway","namespace":"default","port":8080} proxy-service
config.proxyService.adminPort int 8081 proxy-service.admin-port
config.proxyService.name string "beamlit-gateway" proxy-service.name
config.proxyService.namespace string "default" proxy-service.namespace
config.proxyService.port int 8080 proxy-service.port
config.secureMetrics bool false secure-metrics
controllerManager.kubeRbacProxy object {"args":["--secure-listen-address=0.0.0.0:8443","--upstream=http://127.0.0.1:8080/","--logtostderr=true","--v=0"],"containerSecurityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}},"image":{"repository":"gcr.io/kubebuilder/kube-rbac-proxy","tag":"v0.16.0"},"resources":{"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"5m","memory":"64Mi"}}} kube-rbac-proxy options
controllerManager.kubeRbacProxy.args list ["--secure-listen-address=0.0.0.0:8443","--upstream=http://127.0.0.1:8080/","--logtostderr=true","--v=0"] args to pass to the kube-rbac-proxy
controllerManager.kubeRbacProxy.containerSecurityContext object {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}} container security context
controllerManager.kubeRbacProxy.containerSecurityContext.allowPrivilegeEscalation bool false allowPrivilegeEscalation
controllerManager.kubeRbacProxy.containerSecurityContext.capabilities object {"drop":["ALL"]} capabilities to drop
controllerManager.kubeRbacProxy.image object {"repository":"gcr.io/kubebuilder/kube-rbac-proxy","tag":"v0.16.0"} image to use for the kube-rbac-proxy
controllerManager.kubeRbacProxy.resources object {"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"5m","memory":"64Mi"}} resources to request for the kube-rbac-proxy
controllerManager.kubeRbacProxy.resources.limits object {"cpu":"500m","memory":"128Mi"} limits for the kube-rbac-proxy
controllerManager.kubeRbacProxy.resources.requests object {"cpu":"5m","memory":"64Mi"} requests for the kube-rbac-proxy
controllerManager.manager object {"containerSecurityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}},"image":{"pullPolicy":"IfNotPresent","repository":"ghcr.io/beamlit/beamlit-controller","tag":"latest"},"resources":{"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"10m","memory":"64Mi"}}} manager options
controllerManager.manager.containerSecurityContext object {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}} container security context
controllerManager.manager.containerSecurityContext.allowPrivilegeEscalation bool false allowPrivilegeEscalation
controllerManager.manager.image object {"pullPolicy":"IfNotPresent","repository":"ghcr.io/beamlit/beamlit-controller","tag":"latest"} image to use for the manager
controllerManager.manager.resources object {"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"10m","memory":"64Mi"}} resources to request for the manager
controllerManager.manager.resources.limits object {"cpu":"500m","memory":"128Mi"} limits for the manager
controllerManager.manager.resources.requests object {"cpu":"10m","memory":"64Mi"} requests for the manager
controllerManager.podSecurityContext object {"runAsNonRoot":true} pod security context
controllerManager.replicas int 1 number of replicas
controllerManager.serviceAccount object {"annotations":{}} service account
installBeamlitGateway bool true installBeamlitGateway is a flag to install the beamlit gateway along with the controller
installMetricServer bool false installMetricsServer is a flag to install the metrics-server along with the controller
kubernetesClusterDomain string "cluster.local" kubernetes cluster domain
metrics-server object {"args":["--kubelet-insecure-tls"]} metrics-server options
metrics-server.args list ["--kubelet-insecure-tls"] args to pass to the metrics-server
metricsService object {"ports":[{"name":"https","port":8443,"protocol":"TCP","targetPort":"https"}],"type":"ClusterIP"} metrics service
metricsService.ports list [{"name":"https","port":8443,"protocol":"TCP","targetPort":"https"}] ports for the metrics service