Skip to content

Commit

Permalink
Helm: provide a way to expose services through ingress-controller (#126)
Browse files Browse the repository at this point in the history
* Added ingress-nginx-controller

* Added condition for nginx-controller

* Updated terraform helm values

* Documentation updated
  • Loading branch information
Tansito authored Jan 20, 2023
1 parent 07bdbf1 commit 0f69367
Show file tree
Hide file tree
Showing 6 changed files with 143 additions and 78 deletions.
7 changes: 5 additions & 2 deletions infrastructure/helm/quantumserverless/Chart.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ dependencies:
- name: jupyter
repository: ""
version: 0.1.0
- name: nginx-ingress-controller
repository: https://charts.bitnami.com/bitnami
version: 9.3.26
- name: kuberay-operator
repository: https://ray-project.github.io/kuberay-helm
version: 0.4.0
Expand All @@ -14,5 +17,5 @@ dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 17.4.3
digest: sha256:1f1f3a40ece0093c3f1fa0fa6fe4e1cb43b8268ac2411701dc3bf0e95a0f0e02
generated: "2023-01-18T14:35:23.24738369Z"
digest: sha256:6a12f46e80b855dbbd40f5c70a3fea9626f7fce6d7485ad70e078b7983239d8f
generated: "2023-01-20T14:57:45.991889+01:00"
4 changes: 4 additions & 0 deletions infrastructure/helm/quantumserverless/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ dependencies:
- name: jupyter
condition: jupyterEnable
version: 0.1.0
- name: nginx-ingress-controller
condition: nginxIngressControllerEnable
version: 9.3.26
repository: https://charts.bitnami.com/bitnami
- name: kuberay-operator
condition: kuberayOperatorEnable
version: 0.4.0
Expand Down
7 changes: 5 additions & 2 deletions infrastructure/helm/quantumserverless/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,12 @@ The Quantum Serverless Chart has several internal and external dependencies. If

## Helm chart values

**Redis**
**Redis & Nginx Ingress controller**

For our Redis dependency we are using the configuration created by Bitnami. To simplify the configuration we offered you with a straigh-forward initial parameters setup. But if you are interested in more complex configurations you have access to all the parameters that Bitnami added in the chart specified in their [README](https://artifacthub.io/packages/helm/bitnami/redis).
For our Redis and Nginx Ingress controller dependencies we are using the configuration created by Bitnami. To simplify the configuration we offered you with a straigh-forward initial parameters setup.
But if you are interested in more complex configurations you have access to all the parameters that Bitnami added in the chart specified in their READMEs:
* [Redis README](https://artifacthub.io/packages/helm/bitnami/redis).
* [Nginx Ingress controller's README](https://artifacthub.io/packages/helm/bitnami/nginx-ingress-controller)

**Jupyter notebook**

Expand Down
19 changes: 19 additions & 0 deletions infrastructure/helm/quantumserverless/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@
# Quantum Serverless configs
# ===================

# ===================
# Ingress Nginx controller configs
# ===================

# Ingress Nginx controller is disabled by default to not affect cloud providers' controller configuration
nginxIngressControllerEnable: false

# ===================
# Redis configs
# ===================
Expand Down Expand Up @@ -44,8 +51,20 @@ jupyter:
service:
port: 80

# If you enable it remember to enable nginx ingress controller if you need a controller for ingress
ingress:
enabled: false
className: "nginx"
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
loadBalancer:
hostname: localhost
hosts:
- host: localhost
paths:
- path: /
pathType: Prefix


# ===================
Expand Down
92 changes: 55 additions & 37 deletions infrastructure/terraform/aws/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,32 @@
# Quantum Serverless configs
# ===================

# ===================
# Ingress Nginx controller configs
# ===================

# Ingress Nginx controller is disabled by default to not affect cloud providers' controller configuration
nginxIngressControllerEnable: false

# ===================
# Redis configs
# ===================

redisEnable: true
redis:
architecture: "standalone"

global:
redis:
password: ""

auth:
enabled: false

master:
service:
ports:
redis: 7000

# ===================
# Jupyter configs
Expand All @@ -25,8 +51,20 @@ jupyter:
service:
port: 80

# If you enable it remember to enable nginx ingress controller if you need a controller for ingress
ingress:
enabled: false
className: "nginx"
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
loadBalancer:
hostname: localhost
hosts:
- host: localhost
paths:
- path: /
pathType: Prefix


# ===================
Expand All @@ -44,7 +82,7 @@ manager:
imagePullSecrets: []

container:
port: 80
port: 5000

service:
port: 5000
Expand All @@ -54,63 +92,44 @@ manager:


# ===================
# Ray configs
# Ray Cluster
# ===================

# RAY CLUSTER

rayClusterEnable: true

ray-cluster:
nameOverride: "kuberay"
fullnameOverride: ""

image:
repository: "<RAY_CLUSTER_IMAGE>"
tag: "latest"
pullPolicy: IfNotPresent

imagePullSecrets: []
# - name: an-existing-secret

nameOverride: "kuberay"
fullnameOverride: ""

head:
initArgs:
rayStartParams:
dashboard-host: '0.0.0.0'
port: '6379'

worker:
# If you want to disable the default workergroup
# uncomment the line below
# disabled: true
replicas: 1
ports:
- containerPort: 80
protocol: TCP
resources:
limits:
cpu: 1
requests:
cpu: 200m

headServiceSuffix: "ray-operator.svc"
type: worker

service:
type: LoadBalancer
port: 8080

# KUBERAY OPERATOR
type: ClusterIP

rayOperatorEnable: true

operator:
image:
repository: kuberay/operator
tag: nightly
pullPolicy: IfNotPresent
# ===================
# Kuberay Operator
# ===================

kuberayOperatorEnable: true
kuberay-operator:
nameOverride: "kuberay-operator"
fullnameOverride: "kuberay-operator"

rbacEnable: true
## Install Default RBAC roles and bindings
rbac:
create: true
Expand All @@ -127,9 +146,6 @@ operator:
type: ClusterIP
port: 8080

ingress:
enabled: false

livenessProbe:
initialDelaySeconds: 10
periodSeconds: 5
Expand All @@ -141,4 +157,6 @@ operator:
failureThreshold: 5

createCustomResource: true
rbacEnable: true

batchScheduler:
enabled: false
92 changes: 55 additions & 37 deletions infrastructure/terraform/ibm/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,32 @@
# Quantum Serverless configs
# ===================

# ===================
# Ingress Nginx controller configs
# ===================

# Ingress Nginx controller is disabled by default to not affect cloud providers' controller configuration
nginxIngressControllerEnable: false

# ===================
# Redis configs
# ===================

redisEnable: true
redis:
architecture: "standalone"

global:
redis:
password: ""

auth:
enabled: false

master:
service:
ports:
redis: 7000

# ===================
# Jupyter configs
Expand All @@ -25,8 +51,20 @@ jupyter:
service:
port: 80

# If you enable it remember to enable nginx ingress controller if you need a controller for ingress
ingress:
enabled: false
className: "nginx"
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
loadBalancer:
hostname: localhost
hosts:
- host: localhost
paths:
- path: /
pathType: Prefix


# ===================
Expand All @@ -44,7 +82,7 @@ manager:
imagePullSecrets: []

container:
port: 80
port: 5000

service:
port: 5000
Expand All @@ -54,63 +92,44 @@ manager:


# ===================
# Ray configs
# Ray Cluster
# ===================

# RAY CLUSTER

rayClusterEnable: true

ray-cluster:
nameOverride: "kuberay"
fullnameOverride: ""

image:
repository: "<RAY_CLUSTER_IMAGE>"
tag: "latest"
pullPolicy: IfNotPresent

imagePullSecrets: []
# - name: an-existing-secret

nameOverride: "kuberay"
fullnameOverride: ""

head:
initArgs:
rayStartParams:
dashboard-host: '0.0.0.0'
port: '6379'

worker:
# If you want to disable the default workergroup
# uncomment the line below
# disabled: true
replicas: 1
ports:
- containerPort: 80
protocol: TCP
resources:
limits:
cpu: 1
requests:
cpu: 200m

headServiceSuffix: "ray-operator.svc"
type: worker

service:
type: LoadBalancer
port: 8080

# KUBERAY OPERATOR
type: ClusterIP

rayOperatorEnable: true

operator:
image:
repository: kuberay/operator
tag: nightly
pullPolicy: IfNotPresent
# ===================
# Kuberay Operator
# ===================

kuberayOperatorEnable: true
kuberay-operator:
nameOverride: "kuberay-operator"
fullnameOverride: "kuberay-operator"

rbacEnable: true
## Install Default RBAC roles and bindings
rbac:
create: true
Expand All @@ -127,9 +146,6 @@ operator:
type: ClusterIP
port: 8080

ingress:
enabled: false

livenessProbe:
initialDelaySeconds: 10
periodSeconds: 5
Expand All @@ -141,4 +157,6 @@ operator:
failureThreshold: 5

createCustomResource: true
rbacEnable: true

batchScheduler:
enabled: false

0 comments on commit 0f69367

Please sign in to comment.