Skip to content

Remove requirement for rootfs path to be relative - #394

Merged
mrunalp merged 1 commit into
opencontainers:masterfrom
mlaventure:abs-rootfs-path
Apr 22, 2016
Merged

Remove requirement for rootfs path to be relative#394
mrunalp merged 1 commit into
opencontainers:masterfrom
mlaventure:abs-rootfs-path

Conversation

@mlaventure

Copy link
Copy Markdown
Contributor

Closes#389

Signed-off-by: Kenfe-Mickael Laventure mickael.laventure@gmail.com

@crosbymichael

Copy link
Copy Markdown
Member

LGTM

These lines where added to the spec from the initial import but there is no real technical reason why this needs to be included in the directory when we have the information about where its located.

The initial spec also said that all "bind" mounts must be included in the bundle and be relative but we also learned that this was too much of a burden for no real technical gain.

Comment threadbundle.md

A Standard Container bundle contains all the information needed to load and run a container.
This includes the following artifacts which MUST all reside in the same directory on the local filesystem:
This MUST include the following artifacts:

@duglinduglinApr 22, 2016

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I agree with removing the bit about "same dir" from above, but then I think you need to add it below for each artifact that still need to be in that dir - like config.json.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

To be clear, what I'm worried about is someone thinking its ok to put config.json in some nested dir instead of the root of the bundle dir. And w/o some kind of -f flag I don't think we support that yet.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What would be a better sentence to add that clarifies that they should be located at the root?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I was thinking that on line 14 we say:

This REQUIRED file MUST reside in the root of the bundle directory and MUST be named `config.json`.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

That sounds good to me. Will update shortly

Closesopencontainers#389
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
@mlaventure

Copy link
Copy Markdown
ContributorAuthor

Updated wording to ensure that it is made clear that config.json must be at the root of the bundle. Thanks @duglin for the wording.

@duglin

Copy link
Copy Markdown
Contributor

thanks!

@duglin

Copy link
Copy Markdown
Contributor

ping @mrunalp or @vbatts for the merge!

@mrunalp

Copy link
Copy Markdown
Contributor

LGTM

@mrunalp
mrunalp merged commit 92af037 into opencontainers:masterApr 22, 2016
wking added a commit to wking/opencontainer-runtime-spec that referenced this pull request May 4, 2016
Some history behind bundle requirements:
* 77d44b1 (Update runtime.md, 2015-06-16) lands the initial reference
to a root filesystem, requiring a relative path. It also lands the
"bundle" construct, which at this point includes content
directories, signatures, and the configuration file. The content
directories "at least" include the root filesystem.
* 5d2eb18 (*: re-org the spec, 2015-06-24) shifts the bundle docs to
bundle.md and demotes signatures to "other related content".
* 91f5ad7 (bundle.md: various updates to latest spec, 2015-07-02,
opencontainers#55) finishes the signature demotion and strengthens the
root-inclusion requirement with another "must include".
* 7232e4b (specs: introduce the concept of a runtime.json,
2015-07-30, opencontainers#88) split out runtime.json, required the root directory
to exist at `rootfs`, and dropped most references to "content
directories".
* 106ec2d (Cleanup bundle.md, 2015-10-02, opencontainers#210) kept the requirement
for a rootfs directory in the bundle root, but relaxed the name
requirement to allow other single-component names
(e.g. `my-rootfs`). Dropped the last reference to "content
directories".
* cb2da54 (config: Single, unified config file, 2015-12-28, opencontainers#284)
rolled runtime.json back into config.json.
* b2e9154 (Remove requirement for rootfs path to be relative,
2016-04-22, opencontainers#394) allowed absolute paths for root.path and removed
some "same directory" language while leaving other "same directory"
language.
I think the root filesystem should be optional [1], but even folks who
disagree on that point have come to the conclusion that it doesn't
need to be in the bundle [2]. opencontainers#394 seems partially unfinished, but I
think the intention was clear. Once you relax the "bundle must
contain the root filesystem" requirement, the only thing that the
bundle must contain is config.json. It doesn't seem to be worth the
trouble to name a "bundle" construct if its only meaning is "the
directory that holds config.json", so this commit removes all
remaining references to the term "bundle".
[1]: https://groups.google.com/a/opencontainers.org/forum/#!topic/dev/6ZKMNWujDhU
Subject: Dropping the rootfs requirement and restoring arbitrary bundle content
Date: Wed, 26 Aug 2015 12:54:47 -0700
Message-ID: <20150826195447.GX21585@odin.tremily.us>
[2]: opencontainers#389 (comment)
Signed-off-by: W. Trevor King <wking@tremily.us>
wking added a commit to wking/opencontainer-runtime-spec that referenced this pull request May 24, 2016
Some history behind bundle requirements:
* 77d44b1 (Update runtime.md, 2015-06-16) lands the initial reference
to a root filesystem, requiring a relative path. It also lands the
"bundle" construct, which at this point includes content
directories, signatures, and the configuration file. The content
directories "at least" include the root filesystem.
* 5d2eb18 (*: re-org the spec, 2015-06-24) shifts the bundle docs to
bundle.md and demotes signatures to "other related content".
* 91f5ad7 (bundle.md: various updates to latest spec, 2015-07-02,
opencontainers#55) finishes the signature demotion and strengthens the
root-inclusion requirement with another "must include".
* 7232e4b (specs: introduce the concept of a runtime.json,
2015-07-30, opencontainers#88) split out runtime.json, required the root directory
to exist at `rootfs`, and dropped most references to "content
directories".
* 106ec2d (Cleanup bundle.md, 2015-10-02, opencontainers#210) kept the requirement
for a rootfs directory in the bundle root, but relaxed the name
requirement to allow other single-component names
(e.g. `my-rootfs`). Dropped the last reference to "content
directories".
* cb2da54 (config: Single, unified config file, 2015-12-28, opencontainers#284)
rolled runtime.json back into config.json.
* b2e9154 (Remove requirement for rootfs path to be relative,
2016-04-22, opencontainers#394) allowed absolute paths for root.path and removed
some "same directory" language while leaving other "same directory"
language.
I think the root filesystem should be optional [1], but even folks who
disagree on that point have come to the conclusion that it doesn't
need to be in the bundle [2]. opencontainers#394 seems partially unfinished, but I
think the intention was clear. Once you relax the "bundle must
contain the root filesystem" requirement, the only thing that the
bundle must contain is config.json. It doesn't seem to be worth the
trouble to name a "bundle" construct if its only meaning is "the
directory that holds config.json", so this commit removes all
remaining references to the term "bundle".
[1]: https://groups.google.com/a/opencontainers.org/forum/#!topic/dev/6ZKMNWujDhU
Subject: Dropping the rootfs requirement and restoring arbitrary bundle content
Date: Wed, 26 Aug 2015 12:54:47 -0700
Message-ID: <20150826195447.GX21585@odin.tremily.us>
[2]: opencontainers#389 (comment)
Signed-off-by: W. Trevor King <wking@tremily.us>
wking added a commit to wking/opencontainer-runtime-spec that referenced this pull request May 24, 2016
Some history behind bundle requirements:
* 77d44b1 (Update runtime.md, 2015-06-16) lands the initial reference
to a root filesystem, requiring a relative path. It also lands the
"bundle" construct, which at this point includes content
directories, signatures, and the configuration file. The content
directories "at least" include the root filesystem.
* 5d2eb18 (*: re-org the spec, 2015-06-24) shifts the bundle docs to
bundle.md and demotes signatures to "other related content".
* 91f5ad7 (bundle.md: various updates to latest spec, 2015-07-02,
opencontainers#55) finishes the signature demotion and strengthens the
root-inclusion requirement with another "must include".
* 7232e4b (specs: introduce the concept of a runtime.json,
2015-07-30, opencontainers#88) split out runtime.json, required the root directory
to exist at `rootfs`, and dropped most references to "content
directories".
* 106ec2d (Cleanup bundle.md, 2015-10-02, opencontainers#210) kept the requirement
for a rootfs directory in the bundle root, but relaxed the name
requirement to allow other single-component names
(e.g. `my-rootfs`). Dropped the last reference to "content
directories".
* cb2da54 (config: Single, unified config file, 2015-12-28, opencontainers#284)
rolled runtime.json back into config.json.
* b2e9154 (Remove requirement for rootfs path to be relative,
2016-04-22, opencontainers#394) allowed absolute paths for root.path and removed
some "same directory" language while leaving other "same directory"
language.
I think the root filesystem should be optional [1], but even folks who
disagree on that point have come to the conclusion that it doesn't
need to be in the bundle [2]. opencontainers#394 seems partially unfinished, but I
think the intention was clear. Once you relax the "bundle must
contain the root filesystem" requirement, the only thing that the
bundle must contain is config.json. It doesn't seem to be worth the
trouble to name a "bundle" construct if its only meaning is "the
directory that holds config.json", so this commit removes all
remaining references to the term "bundle".
[1]: https://groups.google.com/a/opencontainers.org/forum/#!topic/dev/6ZKMNWujDhU
Subject: Dropping the rootfs requirement and restoring arbitrary bundle content
Date: Wed, 26 Aug 2015 12:54:47 -0700
Message-ID: <20150826195447.GX21585@odin.tremily.us>
[2]: opencontainers#389 (comment)
Signed-off-by: W. Trevor King <wking@tremily.us>
wking added a commit to wking/opencontainer-runtime-spec that referenced this pull request May 24, 2016
Some history behind bundle requirements:
* 77d44b1 (Update runtime.md, 2015-06-16) lands the initial reference
to a root filesystem, requiring a relative path. It also lands the
"bundle" construct, which at this point includes content
directories, signatures, and the configuration file. The content
directories "at least" include the root filesystem.
* 5d2eb18 (*: re-org the spec, 2015-06-24) shifts the bundle docs to
bundle.md and demotes signatures to "other related content".
* 91f5ad7 (bundle.md: various updates to latest spec, 2015-07-02,
opencontainers#55) finishes the signature demotion and strengthens the
root-inclusion requirement with another "must include".
* 7232e4b (specs: introduce the concept of a runtime.json,
2015-07-30, opencontainers#88) split out runtime.json, required the root directory
to exist at `rootfs`, and dropped most references to "content
directories".
* 106ec2d (Cleanup bundle.md, 2015-10-02, opencontainers#210) kept the requirement
for a rootfs directory in the bundle root, but relaxed the name
requirement to allow other single-component names
(e.g. `my-rootfs`). Dropped the last reference to "content
directories".
* cb2da54 (config: Single, unified config file, 2015-12-28, opencontainers#284)
rolled runtime.json back into config.json.
* b2e9154 (Remove requirement for rootfs path to be relative,
2016-04-22, opencontainers#394) allowed absolute paths for root.path and removed
some "same directory" language while leaving other "same directory"
language.
I think the root filesystem should be optional [1], but even folks who
disagree on that point have come to the conclusion that it doesn't
need to be in the bundle [2]. opencontainers#394 seems partially unfinished, but I
think the intention was clear. Once you relax the "bundle must
contain the root filesystem" requirement, the only thing that the
bundle must contain is config.json. It doesn't seem to be worth the
trouble to name a "bundle" construct if its only meaning is "the
directory that holds config.json", so this commit removes all
remaining references to the term "bundle".
[1]: https://groups.google.com/a/opencontainers.org/forum/#!topic/dev/6ZKMNWujDhU
Subject: Dropping the rootfs requirement and restoring arbitrary bundle content
Date: Wed, 26 Aug 2015 12:54:47 -0700
Message-ID: <20150826195447.GX21585@odin.tremily.us>
[2]: opencontainers#389 (comment)
Signed-off-by: W. Trevor King <wking@tremily.us>
wking added a commit to wking/opencontainer-runtime-spec that referenced this pull request May 24, 2016
Some history behind bundle requirements:
* 77d44b1 (Update runtime.md, 2015-06-16) lands the initial reference
to a root filesystem, requiring a relative path. It also lands the
"bundle" construct, which at this point includes content
directories, signatures, and the configuration file. The content
directories "at least" include the root filesystem.
* 5d2eb18 (*: re-org the spec, 2015-06-24) shifts the bundle docs to
bundle.md and demotes signatures to "other related content".
* 91f5ad7 (bundle.md: various updates to latest spec, 2015-07-02,
opencontainers#55) finishes the signature demotion and strengthens the
root-inclusion requirement with another "must include".
* 7232e4b (specs: introduce the concept of a runtime.json,
2015-07-30, opencontainers#88) split out runtime.json, required the root directory
to exist at `rootfs`, and dropped most references to "content
directories".
* 106ec2d (Cleanup bundle.md, 2015-10-02, opencontainers#210) kept the requirement
for a rootfs directory in the bundle root, but relaxed the name
requirement to allow other single-component names
(e.g. `my-rootfs`). Dropped the last reference to "content
directories".
* cb2da54 (config: Single, unified config file, 2015-12-28, opencontainers#284)
rolled runtime.json back into config.json.
* b2e9154 (Remove requirement for rootfs path to be relative,
2016-04-22, opencontainers#394) allowed absolute paths for root.path and removed
some "same directory" language while leaving other "same directory"
language.
I think the root filesystem should be optional [1], but even folks who
disagree on that point have come to the conclusion that it doesn't
need to be in the bundle [2]. opencontainers#394 seems partially unfinished, but I
think the intention was clear. Once you relax the "bundle must
contain the root filesystem" requirement, the only thing that the
bundle must contain is config.json. It doesn't seem to be worth the
trouble to name a "bundle" construct if its only meaning is "the
directory that holds config.json", so this commit removes all
remaining references to the term "bundle".
[1]: https://groups.google.com/a/opencontainers.org/forum/#!topic/dev/6ZKMNWujDhU
Subject: Dropping the rootfs requirement and restoring arbitrary bundle content
Date: Wed, 26 Aug 2015 12:54:47 -0700
Message-ID: <20150826195447.GX21585@odin.tremily.us>
[2]: opencontainers#389 (comment)
Signed-off-by: W. Trevor King <wking@tremily.us>
wking added a commit to wking/opencontainer-runtime-spec that referenced this pull request May 27, 2016
Recently b2e9154 (Remove requirement for rootfs path to be relative,
2016-04-22, opencontainers#394) relaxed the relative-path requirement on root.path
to allow absolute paths (see also discussion in [1]). The motivation
being that, while most folks will want a relative-path pointing into
the bundle directory, there are valid use cases that don't do that,
and we want to support them too [2,3].
However, allowing absolute paths but requiring them to point to a
directory lying next to config.json seems to defeat the purpose. This
commit removes the "root.path must point to a directory next to
config.json" restriction, so folks who want absolute paths in
root.path can use them without an unnecessary restriction.
And again, most folks will put their rootfs alongside config.json or
elsewhere inside the bundle directory. But this list was about "This
MUST include the following artifacts", and we don't want to require
*everyone* to do that.
[1]: opencontainers#389
[2]: opencontainers#389 (comment)
[3]: opencontainers#394 (comment)
Signed-off-by: W. Trevor King <wking@tremily.us>
@GGOemea

Copy link
Copy Markdown

Ok

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@mlaventure@crosbymichael@duglin@mrunalp@GGOemea