-
Notifications
You must be signed in to change notification settings - Fork 2k
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
allow setting file owner/permission after artifact is downloaded #2625
Comments
@shantanugadgil No there currently isn't. I have file an issue for go-getter to add support for that. When that comes we can add it to the job file. For now you will have to wrap your task in a script that sets the permissions and then runs the app. |
@dadgar any updates on this? Regards, |
I had an issue trying to run tomcat inside a java driver job. As the downloaded war was inside /local/apps tomcat couldn't deploy it. I have made /local the directory and it now works but it would be great to be able to set ownership and permissions. Will follow up on the go-getter issue. |
Any chance of this making into 0.9.0 ? |
For anyone else waiting on a proper fix here, my current workaround is to execute
|
Nowadays what I do is put all the "shell logic" inside a script and just execute that script as the command. |
I used the method suggested by @dradtke which worked fine until I upgraded to Nomad 0.9.2 yesterday and now I'm getting these in the stderr log.
EDIT: I guess this is related to #5728 - using an The nicest solution for this is for the |
Another workaround for permissions is to package the file in a tar or zip archive with the correct permissions, and then to use the files in |
yup, hit the same wall here. |
The milestone changed to unscheduled 😢 ??? I know permissions do not make sense for 'all extracted file of an archive', If not, how about adding an example of a template block in the docs of the |
No worries, that just means we don't have a specific release to slot this into yet, not that we're never going to tackle it. |
We just hit this also. |
Frustratingly, also just hit this issue, file permissions not retained after decompression, I am not sure how the "exec" driver would ever be useful without the right permissions (especially as it defaults to "nobody") |
Same here. tarball doesn't solve: permissions are still set to root also after decompressing. |
combined with the This allows me to then execute any chmod/chown commands as I please. 😄 job "sample" {
datacenters = ["dc1"]
type = "batch"
group "sample" {
task "sample" {
driver = "raw_exec"
template {
data = <<EOH
#!/bin/bash
set -u
id -a
hostname
env | sort
sleep 30
EOH
destination = "local/runme.bash"
}
config {
command = "/bin/bash"
args = ["-x", "local/runme.bash"]
}
}
}
} HTH. |
We're using the qemu driver and artifact to specify the VM image. If I wrap the qemu commands into a raw_exec task, then I also use port_map and so forth... Tried to look into the go-getter code to see where things are going wrong but couldn't really find. |
Hmmm, same here. As a work-around, I prevent config {
command = "/bin/bash"
args = ["run.sh", "--my", "--real=args"]
}
template {
data = <<EOH
#!/usr/bin/env bash
cd local
tar xzf ./release.tar.gz
bin/myapp "$@"
EOH
destination = "run.sh"
perms = "755"
} But that's still a lot of ceremony for something really simple. I expected the |
Ran into this today while trying to create a simple Prometheus + Grafana jobspec using the job "metrics" {
datacenters = ["dc1"]
group "prometheus_and_grafana" {
task "prometheus" {
driver = "exec"
config {
command = "./local/prometheus-2.23.0.linux-amd64/prometheus"
args = ["--config.file", "local/prometheus-2.23.0.linux-amd64/prometheus.yml"]
}
artifact {
source = "https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gz"
}
}
task "grafana" {
driver = "exec"
config {
command = "./local/grafana-7.0.0/bin/grafana-server"
args = ["-homepath", "local/grafana-7.0.0"]
}
artifact {
source = "https://dl.grafana.com/oss/release/grafana-7.0.0.linux-amd64.tar.gz"
}
}
}
} Errors for the Failed to start grafana. error: failed to create log directory "local/grafana-7.0.0/data/log": mkdir local/grafana-7.0.0/data: permission denied Going to try to use the mentioned workaround using a |
closing due to age |
AFAIK this is still an issue? It's not possible to set permissions / owner for artifacts, they need to be provided by a script or by tarball. |
It is, and we currently have an internal feature request around it (internal link https://hashicorp.atlassian.net/browse/FRB-384). So let's keep this open despite it's age. |
for context: today I have been on a GH issue closing binge! 🙂 |
That's fine and we appreciate it, but if there's anything you see the various |
Nomad version
Nomad v0.5.6
Operating system and Environment details
CentOS 7/Ubuntu 16.04
Issue
Using this as reference:
https://www.nomadproject.io/docs/job-specification/artifact.html
I also tried: https://github.com/hashicorp/go-getter
How can I set file permissions to the downloaded artifact?
For security reason, I would like to set 0600 on the downloaded artifact file, before my application can use it.
I hope I am missing some simple configuration option for the artifact 🙁
As an extension, is it possible to set ownership on the downloaded file.
I don't need owner settings immediately, though it could come in handy later (I think)
Thanks and Regards,
Shantanu
The text was updated successfully, but these errors were encountered: