Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add dagster deployment option using helm chart on local stack #144

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
*.pyc

# Local .terraform directories
**/.terraform/*

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
inputs:
- name: dagster_chart_version
user_facing: true
description: Version of the Dagster Helm chart to use-
default: "1.8.13"
outputs:
- name: dagster_endpoint
description: Dagster access endpoint.
export: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
locals {
dagster_helmchart_set = [{
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You'd also need to pass in ingress.enabled as true for the ingress to work.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For context, I have used these options to allow a custom hostname to be set for the Webserver (as allowed also in the prefect and milvus deployments).

On second thoughts using ingress config to define a custom URL endpoint is going to create an ingress automatically, which the user might not want to do. Would that be fine?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is intentionally set on all the helm charts deployed on the local deployment environment to allow users to easily access their applications by just using. <application>.localhost url in the browser. I have been able to use this for all applications that exist for the local stack and would want dagster to follow suite.

name = "ingress.dagsterWebserver.host"
value = var.dagster_endpoint
type = "auto"
}
]
}

module "dagster_helmchart" {
source = "../../../../../local/helm_chart"
name = "dagster"
namespace = "dagster"
create_namespace = true
repository = "https://dagster-io.github.io/helm"
chart = "dagster"
chart_version = var.dagster_chart_version
values = templatefile("${path.module}/values.yaml", {
resources = jsonencode(var.resources)
})
set = local.dagster_helmchart_set
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
output "dagster_endpoint" {
value = var.dagster_endpoint
description = ""
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
resources: ${resources}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
variable "dagster_chart_version" {
type = string
description = "Version of the Dagster Helm chart to use"
default = "1.8.13"
}

variable "resources" {
type = object({
requests = object({
cpu = string
memory = string
})
limits = object({
cpu = string
memory = string
})
})
description = "Resource requests and limits for Dagster pods"
default = {
requests = {
cpu = "100m"
memory = "128Mi"
}
limits = {
cpu = "500m"
memory = "512Mi"
}
}
}

variable "dagster_endpoint" {
type = string
default = "dagster.localhost"
}