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 support for configurable container engines (docker) #963

Open
wants to merge 62 commits into
base: develop
Choose a base branch
from

Conversation

lbeckman314
Copy link
Member

@lbeckman314 lbeckman314 commented May 10, 2024

Overview

Add support for users to be able to pass in their desired container engine to the Funnel workers.

Related Github Issues

Additional Resources

Copy link

netlify bot commented May 10, 2024

Deploy Preview for ohsu-comp-bio-funnel ready!

Name Link
🔨 Latest commit 9836712
🔍 Latest deploy log https://app.netlify.com/sites/ohsu-comp-bio-funnel/deploys/66e34a263c3af90007618228
😎 Deploy Preview https://deploy-preview-963--ohsu-comp-bio-funnel.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@lbeckman314 lbeckman314 self-assigned this May 10, 2024
@lbeckman314 lbeckman314 changed the base branch from master to develop May 10, 2024 02:27
lbeckman314 and others added 19 commits May 14, 2024 17:33
- Test command:
```sh
funnel task create examples/md5sum.json
```

[no ci]
- Can be used in HPC environment with unique docker setups (e.g. exadocker) as well as future command templating efforts.

[no ci]
- github.com/docker/docker versions above v24.0.9 resulted in `panic: Can't connect docker client`:

```
➜ go test tests/auth/auth_test.go
--- FAIL: TestBasicAuthFail (0.01s)
panic: Can't connect docker client [recovered]
        panic: Can't connect docker client

FAIL    command-line-arguments  0.673s
FAIL
```

- This error appears to be originating from [util/dockerutil/docker.go](https://github.com/ohsu-comp-bio/funnel/blob/f5acbabe85d28f45f2f86db959c4d7bc929334a4/util/dockerutil/docker.go#L28).

- github.com/getkin/kin-openapi versions above v0.112.0 resulted in type errors:

v0.113.0:
```
➜ go test util/openapi2proto/main.go

util/openapi2proto/main.go:54:38: invalid operation: p.Value.AdditionalProperties != nil (mismatched types openapi3.AdditionalProperties and untyped nil)
util/openapi2proto/main.go:55:24: cannot use p.Value.AdditionalProperties (variable of type openapi3.AdditionalProperties) as *openapi3.SchemaRef value in argument to getType
FAIL    command-line-arguments [build failed]
FAIL
```

v0.123.0 (latest):
```
➜ go test util/openapi2proto/main.go

util/openapi2proto/main.go:43:7: cannot convert "integer" (untyped string constant) to type *openapi3.Types
util/openapi2proto/main.go:45:7: cannot convert "boolean" (untyped string constant) to type *openapi3.Types
util/openapi2proto/main.go:47:7: cannot convert "number" (untyped string constant) to type *openapi3.Types
util/openapi2proto/main.go:49:7: cannot convert "object" (untyped string constant) to type *openapi3.Types
util/openapi2proto/main.go:54:38: invalid operation: p.Value.AdditionalProperties != nil (mismatched types openapi3.AdditionalProperties and untyped nil)
util/openapi2proto/main.go:55:24: cannot use p.Value.AdditionalProperties (variable of type openapi3.AdditionalProperties) as *openapi3.SchemaRef value in argument to getType
util/openapi2proto/main.go:60:7: cannot convert "array" (untyped string constant) to type *openapi3.Types
util/openapi2proto/main.go:72:17: cannot use p.Value.Type (variable of type *openapi3.Types) as string value in return statement
util/openapi2proto/main.go:84:32: invalid operation: param.Schema.Value.Type != "" (mismatched types *openapi3.Types and untyped string)
util/openapi2proto/main.go:175:17: resp.Get undefined (type *openapi3.Responses has no field or method Get)
util/openapi2proto/main.go:175:17: too many errors
FAIL    command-line-arguments [build failed]
FAIL
```
- TODO: investigate why this is necessary...
- Wildcards in outputs will be uploaded to a directory, with no special handling for the filename.

```yaml
tesOutput:
  properties:
    url:
     description: |-
        URL at which the TES server makes the output accessible after the task is complete. When tesOutput.path contains wildcards, it must be a directory; see `tesOutput.path_prefix` for details on how output URLs are constructed in this case.
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Expose backend parameter to run container with additional permissions
1 participant