https://dagster.io/ logo
Title
n

Navneet Sajwan

09/14/2021, 5:58 AM
Hi everyone, Need help regarding the location of dagster_home folder. We have used kubernetes for dagster deployment and mounted efs volume to our pod. We are trying to move dagster_home from container to efs volume but it keeps giving graphql error.
d

daniel

09/15/2021, 2:16 PM
Hi Navneet - could you give more context on what changes you made that produced the error?
n

Navneet Sajwan

09/15/2021, 2:26 PM
Hi @daniel Initially, dagster_home was inside /opt/dagster. We moved it to efs which is mounted on /home . We made this change to our Dockerfile.
ENV DAGSTER_HOME=/opt/dagster/dagster_home
to
ENV DAGSTER_HOME=/home/dagster_home/
Do we need to make some additional changes?
d

daniel

09/15/2021, 2:43 PM
Which Dockerfile are you referring to here? I believe the helm chart has a top level dagsterHome key that can be used to change this. I was under the impression that the helm chart handles creating all the dagster home management for you
n

Navneet Sajwan

09/15/2021, 2:59 PM
@Mohammad Nazeeruddin
m

Mohammad Nazeeruddin

09/15/2021, 3:07 PM
We are using our customised docker file. could you please share if there is any reference for dockerfile.
d

daniel

09/15/2021, 3:08 PM
I don't totally follow, sorry. Which part of the system is the dockerfile used for?
m

Mohammad Nazeeruddin

09/15/2021, 3:11 PM
d

daniel

09/15/2021, 3:15 PM
I see. You shouldn't need to set DAGSTER_HOME in any of your containers if you're using the helm chart - it is set by the helm chart using configuration in your values.yaml . I would recommend using the dagsterHome: key in the helm chart to customize your dagster home location, rather than setting it in individual dockerfiles
(I guess it's
global:
  dagsterHome: <YOUR VALUE HERE>
👍 1
m

Mohammad Nazeeruddin

09/15/2021, 3:20 PM
kk got it.
Hi @daniel We configured dagster.yaml when we are executing pipeline it's creating pod but pod status showing like C*ontainer cannot run and* getting below error : Error: failed to start container "dagster-run-337da628-8890-4080-8f87-8f81d890cc00": Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "/var/lib/kubelet/pods/d2a09d7d-3de9-4307-bd5f-798856248244/volume-subpaths/dagster-instance/dagster-run-337da628-8890-4080-8f87-8f81d890cc00/0" to rootfs at "/opt/dagster/dagster_home/dagster.yaml" caused: mount through procfd: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type. Pod not mounting with opt/dagster/dagster_home path is there anything missing in dagster.yaml. we are creating dynamic pipelines and updating worksapce.yaml file and code in Efs location and then reloading our pipelines using by dagit UI. can we mount this efs ? with dagster.yaml configurations to create pods based on pipelines execution.
d

daniel

09/18/2021, 2:01 PM
That error looks like the run pod created by the run launcher doesn’t have access to your dagster_home directory. What additional config does the pod need in order to access dagster_home with your new setup? The run launcher may need to be configured to apply that config to the pod that it creates
p

Prateek Agarwal

09/18/2021, 4:24 PM
I just compared the dagster pod and the dagster run pod and got a few differences. I wanted your take on that.
1. The role that we have passed to the Dagster POD was not assigned to the Dagster Run Pod - Do you know how can we pass that to it?
2. Env variable is not send to the run POD - We will be using env_vars or env_secrets for this?
3. Like you know we are mounting an external EFS to Dagster to store our pipeline files, it is getting mounted to the Dagster pod but not to the run pod. Which configuration can we use for this? Also, looks like this one is causing the above error. Is that right? Do you know how can I fix it?(Dagster.yaml content is shared in the previous message by Nazeer)
4. Looks like here we have to add the EFS config map details --
d

daniel

09/18/2021, 6:12 PM
These are the options we let you set in the K8sRunLauncher: https://docs.dagster.io/_apidocs/libraries/dagster-k8s#dagster_k8s.K8sRunLauncher 1. I think overriding service_account_name to your own service account would let you change the role? 2. env_vars or env_secrets sounds right fro this yes 3. The mount is the one i'm not sure about actually... we may need to expose volume_mounts as a config option on K8sRunLauncher. One workaround would be setting the volume mounts as a tag on the pipeline as described here: https://docs.dagster.io/deployment/guides/kubernetes/customizing-your-deployment#solid-or-pipeline-kubernetes-configuration - but that would require putting a tag on every pipeline which you may not want to do. 4, changing config maps sounds like you need to use the env_config_maps field?
p

Prateek Agarwal

09/19/2021, 1:52 PM
Hi @daniel, We have resolved all of our issues except one. We need to mount a PVC(EFS) on this dagster run pod as the pipeline and repository files are on the EFS itself. You have mentioned to use tags. Do you have a sample on how we can use tags to provide volume mounts? Also, you mention you are not sure so is there anyone else we can refer who can help us with this?
d

daniel

09/19/2021, 7:56 PM
I'll check with a couple other members of the team tomorrow for what our recommendation is here for how to handle this. Upon digging in a bit more I don't think the tag solution I gave you will work - we don't have a good comprehensive way to handle all the different volume types that are out there currently, I'll see what other options we have.
p

Palash Kapoor

09/20/2021, 2:45 PM
Hi @daniel Gm! Hope you have had a good weekend. Please do update us when you have something for us on above issue.
d

daniel

09/20/2021, 2:47 PM
Will do - it’s possible the solution will require waiting for a release, is there any short term workaround for you that doesn’t require mounting a custom volume in the pod for the launched run?
p

Palash Kapoor

09/20/2021, 2:51 PM
Not sure but we might have to write some code to read from S3 directly instead of EFS. Mount would have been awesome. In case we wait for release what do you think could be an approx time frame?
d

daniel

09/20/2021, 4:18 PM
One possibility would be for you guys to fork or subclass the K8sRunLauncher while we come up with a fully supported volume solution, that would not depend on a release. The timing here is somewhat unfortunate since most of the dagster team is meeting together for an event this week so isn’t quite as responsive as normal It’s possible that the next release with a potential fix wouldn’t be until Thursday 9/30
p

Prateek Agarwal

09/21/2021, 12:19 AM
It think the former will be a bigger change for us. We are ok if this comes in the 09/30 release.
Will you be opening a ticket for this?
p

Palash Kapoor

09/21/2021, 12:01 PM
Thanks @daniel once again, we will wait for this release from dagster. We will delay our release by couple of weeks to incorporate this change. Let us know how we can track this issue.
d

daniel

09/21/2021, 7:54 PM
I filed a feature request issue here: https://github.com/dagster-io/dagster/issues/4889 I think we should be able to have a solution for a PVC by the release on 09/30, yes.
👍 2
:thankyou: 2
p

Palash Kapoor

09/28/2021, 6:28 PM
Hi @daniel we are really excited about this feature and looking forward this week for Dagster release. Give us a shout in case anything is needed by our side. Thanks,!!
d

daniel

09/29/2021, 7:45 PM
Hi all, the change to add volume_mounts and volumes to the run launcher just landed, you can see the expected format in the PR: https://github.com/dagster-io/dagster/pull/4872
it'll go live in the release tomorrow
p

Palash Kapoor

09/30/2021, 2:19 AM
Cool 😎. Thanks Dagster team and @daniel. Looking forward for tomorrow's release.
m

Mohammad Nazeeruddin

10/12/2021, 9:59 AM
Hi @daniel We deployed user-code-deployment but we are getting below error in dagit :
rpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.UNAVAILABLE details = "no healthy upstream" debug_error_string = "{"created":"@1634031954.613875382","description":"Error received from peer ipv4:192.168.125.148:3030","file":"src/core/lib/surface/call.cc","file_line":1067,"grpc_message":"no healthy upstream","grpc_status":14}" This our workspace.yaml and gateway yaml files in helm. in gateway we configured Istio things to access our dagit ui. could you please help us to resolve this error.
d

daniel

10/12/2021, 12:30 PM
Hi Mohammed could you make a new post for this to ensure that the rest of the team sees it?
m

Mohammad Nazeeruddin

10/12/2021, 12:30 PM
yeah sure.
@daniel Do you have any idea about this error?
d

daniel

10/12/2021, 12:34 PM
I don’t off hand - somebody else on the team may though
👍 1