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

refactor package and variant dependencies #1549

Merged
merged 10 commits into from
May 18, 2021

Conversation

bcressey
Copy link
Contributor

Issue number:
N/A

Description of changes:
This shifts some commonly used packages into the set installed by "release". find, ps, and conntrack will now be available on all variants, instead of some on aws-k8s-* and others on aws-ecs-1.

"host-ctr" and "containerd" are also promoted to the "release" package set. They end up installed regardless because of our host containers feature, and moving the dependency allows us to start building the "os" package sooner.

Most of the dependencies of Go packages have been eliminated, since those aren't needed at build time. The notable exception is the "runc" dependency on "libseccomp".

Testing done:
Built all variants locally.

Confirmed that aws-k8s-1.18 and aws-ecs-1 worked as expected:

  • host containers came up
  • orchestrated containers came up
  • find, ps, and conntrack were present
  • k8s build had the CNI binaries
  • ecs build had Docker

Terms of contribution:

By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.

@bcressey bcressey requested review from tjkirch and webern April 30, 2021 21:00
@bcressey
Copy link
Contributor Author

The force-push above adds back the Requires.

bcressey added 10 commits May 17, 2021 18:29
This is not required since containerd 1.4. Seccomp support is always
enabled, and no longer depends on libseccomp via cgo.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
We always install systemd by way of the "release" package, so we only
need to add a dependency if it's a build requirement.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
These plugins are only needed for Kubernetes and CRI.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
Conceptually, `host-ctr` is another tool we expect to be present in
the OS, like `systemctl`.

Practically, this lets us start the `os` build sooner, which is nice
because it's one of the longest.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
All of the packages that depend on containerd need it at runtime, and
not at build time. To streamline the overall build, treat containerd
as an implicit dependency, like systemd or glibc.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
All of the packages that depend on iptables need it at runtime, and
not at build time. To streamline the overall build, treat iptables
as an implicit dependency, like systemd or glibc.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
The `find` command is useful enough to be included in all variants.

Remove the explicit dependency from Kubernetes packages for greater
build parallelism.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
The `ps` command is useful enough to be included in all variants.

Remove the explicit dependency from docker-engine for greater build
parallelism.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
The `conntrack` command can be useful in debugging networking issues
with both Docker and Kubernetes.

Remove the explicit dependency from Kubernetes packages for greater
build parallelism.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
The docker-engine package is listed in the variant definition, and we
don't need it as a build-time requirement.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
@bcressey
Copy link
Contributor Author

The force-push above fixes the conflicts by rebasing, and is probably less useful than just looking at the full diff again.

@bcressey bcressey requested a review from webern May 17, 2021 18:42
@bcressey bcressey requested a review from tjkirch May 18, 2021 16:29
@bcressey bcressey merged commit 5617da2 into bottlerocket-os:develop May 18, 2021
@bcressey bcressey deleted the refactor-deps branch May 18, 2021 18:49
Sign up for free to 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.

4 participants