-
Notifications
You must be signed in to change notification settings - Fork 47
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
build: containerize deployment #90
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
epuertat
force-pushed
the
build-container
branch
2 times, most recently
from
March 28, 2023 11:44
fe3b88b
to
ae98f58
Compare
epuertat
changed the title
chore: containerize deployment
build: containerize deployment
Mar 28, 2023
epuertat
force-pushed
the
build-container
branch
from
March 29, 2023 17:20
ae98f58
to
1288bd7
Compare
epuertat
force-pushed
the
build-container
branch
4 times, most recently
from
April 4, 2023 20:06
e13268c
to
0822af3
Compare
epuertat
force-pushed
the
build-container
branch
5 times, most recently
from
April 5, 2023 17:26
30bdab6
to
911ed96
Compare
epuertat
force-pushed
the
build-container
branch
2 times, most recently
from
April 10, 2023 09:51
3ab53ee
to
01bbe62
Compare
epuertat
force-pushed
the
build-container
branch
6 times, most recently
from
April 20, 2023 16:53
5deba3f
to
31a5c5e
Compare
baum
reviewed
May 9, 2023
epuertat
force-pushed
the
build-container
branch
from
June 29, 2023 16:25
368f10b
to
bd1d37f
Compare
- Return non-zero error code on client-server errors - Add debug info to the CI job - Fix & improve docs (SELinux config, typos) Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
epuertat
force-pushed
the
build-container
branch
from
June 30, 2023 07:16
80ba587
to
8fd1536
Compare
Works-Around: https://tracker.ceph.com/issues/61882 Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
kasserater
referenced
this pull request
Jul 6, 2023
The discovery contrller implement the basic function. Use command "python3 -m control.discovery" to start discovery controller. Client can use command "nvme discover -t tcp -a ip -s port" to get log pages. The configuration is in ceph-nvmeof.conf [discovery] part. feature: #108 Signed-off-by: Yin Congmin <congmin.yin@intel.com>
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
This changes reads .env from Makefile which allows to simplify make configuration with host networking. Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
Resolves: ceph#160 Other changes: - Move mk/demo.mk constants to .env - Decrease Hugepages to 2 GB Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
This was
linked to
issues
Jul 13, 2023
When a Python package needs to be updated in pyproject.toml, the Python package manager PDM will check that against the lockfile (pdm.lock) and if any changes are found it will fail. This ensure builds are reproducible and consistent. In order to update, remove or add new packages, the lockfile needs to be updated. A new Makefile target (update-lockfile) has been added. It runs on a new container image (nvmeof-builder) and only updates the pdm.lock file: ```bash make update-lockfile git add pdm.lock ``` Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
Previously, docker-compose used fixed port mappings (host and container ports matched, e.g: 4420:4420). However, that doesn't allow to deploy multiple instances of the same container (--scale nvmeof=N). Instead, ephemeral ports (randomly assigned by docker-compose) need to be used. Fortunately, docker-compose provides with the 'port' command, which maps container to host ports. Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
oritwas
approved these changes
Jul 17, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM,
Thanks!
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Relevant Changes
docker-compose
.make
to wrap and launchdocker-compose
commands.docker-compose
commands:make build
,make up
,make logs
,make down
.LABELS
(mimickingio.k8s.*
):io.ceph.compoment
io.ceph.summary
io.ceph.description
io.ceph.url
io.ceph.version
io.ceph.maintainer
io.ceph.git.repo
io.ceph.git.branch
io.ceph.git.commit
pdm
as Python package manager to install packages, as it supports (the recently rejected) PEP-582 (installing dependencies to__pypackages__
instead of usingvirtualenv
). Despite the PEP rejection, it still makes sense, since containerization renders virtualenv unnecessary.ceph/spdk
(Dockerfile.spdk
): an intermediate container resulting from building spdk RPM packages and installing those on top of aubi9
base layer.ceph/nvmeof
(Dockerfile
): the Python code consuming the SPDK JSON RPC API.ceph/nvmeof-cli
(Dockerfile
): a containerized CLI tool to manage thenvmeof
gateway.ceph/vstart-cluster
(Dockerfile.ceph
): a vstart Ceph cluster based on theceph/daemon
image.nvmeof-cli
reads input options from command-line arguments instead ofceph-nvmeof.conf
file./usr/libexec
since according to FHS this is meant for internal usage.proto
file tocontrol/proto
as it makes it easier to generate Python codeTasks
ubi8 andubi9)although 8 would be trivial)Use non-privileged user inside (remove Huge Pages, via DPDK--no-huge
). Pending of env_dpdk: Support disabling Huge Pages spdk/spdk#2973 and spdk: add --no-huge support #103Submit fixes to spdk's/lib/env_dpdk/init.c
for params:--base-virtual
,--match-allocations
and--file-prefix
: https://review.spdk.io/gerrit/c/spdk/spdk/+/17734pdm
anddocker-compose
-based commandsauthors
metadata in pyproject to include relevant contributors.ceph-nvmeof.conf
as an external file rather than copied inside the container.nvmeof-devel
mounting the current dir inside the container$APPDIR
.17.2.6
) or even a git hash, while the ceph-daemon container only allows for major release codenames (reef
,quincy
, etc.)Instructions
See
README.md
in this PR.