Skip to content

Commit a19628b

Browse files
author
Stuart Espey
committed
Merge remote-tracking branch 'origin/main' into se/merge-upstream
2 parents 57148ac + ccdc87f commit a19628b

File tree

564 files changed

+17961
-14402
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

564 files changed

+17961
-14402
lines changed

.codespell-ignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
AtLeast
2+
destOp
3+
ECT
4+
inport
5+
renderD
6+
requestor

.devcontainer/Dockerfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ RUN sed -r -i 's/^Components: main$/Components: main contrib/g' /etc/apt/sources
5050
lxc-templates \
5151
make \
5252
man-db \
53+
pipx \
5354
pkg-config \
5455
protoc-gen-go \
5556
python3-matplotlib \
@@ -69,6 +70,9 @@ RUN sed -r -i 's/^Components: main$/Components: main contrib/g' /etc/apt/sources
6970
# zfsutils-linux
7071
xz-utils
7172

73+
# With pipx >= 1.5.0, we could use pipx --global instead.
74+
RUN PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install codespell
75+
7276
# Add vscode user and add it to sudoers.
7377
RUN groupadd -g 1000 $USERNAME && \
7478
useradd -s /bin/bash -u $USER_UID -g $USER_GID -m $USERNAME && \

.github/ISSUE_TEMPLATE.md

Lines changed: 0 additions & 37 deletions
This file was deleted.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Bug report
2+
description: File a bug report.
3+
type: bug
4+
body:
5+
- type: checkboxes
6+
attributes:
7+
label: Is there an existing issue for this?
8+
description: Please search to see if an issue already exists for the bug you encountered.
9+
options:
10+
- label: There is no existing issue for this bug
11+
required: true
12+
13+
- type: checkboxes
14+
attributes:
15+
label: Is this happening on an up to date version of Incus?
16+
description: Please make sure that your system has all updates applied and is running a current version of Incus or Incus LTS.
17+
options:
18+
- label: This is happening on a supported version of Incus
19+
required: true
20+
21+
- type: textarea
22+
attributes:
23+
label: Incus system details
24+
description: Output of `incus info`.
25+
render: yaml
26+
validations:
27+
required: true
28+
29+
- type: textarea
30+
attributes:
31+
label: Instance details
32+
description: If the issue affects an instance, please include the output of `incus config show NAME`.
33+
validations:
34+
required: false
35+
36+
- type: textarea
37+
attributes:
38+
label: Instance log
39+
description: If the issue is related to an instance startup failure, please include `incus info --show-log NAME`.
40+
validations:
41+
required: false
42+
43+
- type: textarea
44+
attributes:
45+
label: Current behavior
46+
description: A concise description of what you're experiencing.
47+
validations:
48+
required: false
49+
50+
- type: textarea
51+
attributes:
52+
label: Expected behavior
53+
description: A concise description of what you expected to happen.
54+
validations:
55+
required: false
56+
57+
- type: textarea
58+
attributes:
59+
label: Steps to reproduce
60+
description: Step by step instructions to reproduce the behavior.
61+
placeholder: |
62+
1. Step one
63+
2. Step two
64+
3. Step three
65+
validations:
66+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Support question
4+
url: https://discuss.linuxcontainers.org
5+
about: Please ask and answer questions here.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Feature request
2+
description: File a feature request.
3+
type: feature
4+
body:
5+
- type: checkboxes
6+
attributes:
7+
label: Is there an existing issue for this?
8+
description: Please search to see if an issue already exists for the feature you'd like to see added.
9+
options:
10+
- label: There is no existing issue for this feature
11+
required: true
12+
13+
- type: textarea
14+
attributes:
15+
label: What are you currently unable to do
16+
description: A concise description of the problem you're trying to solve.
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
attributes:
22+
label: What do you think would need to be added
23+
description: A concise description of what you think should be added to Incus.
24+
validations:
25+
required: false

.github/workflows/tests.yml

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,13 @@ jobs:
9090
libtool \
9191
libudev-dev \
9292
make \
93+
pipx \
9394
pkg-config \
9495
shellcheck
9596
96-
python3 -m pip install flake8
97+
# With pipx >= 1.5.0, we could use pipx --global instead.
98+
PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin \
99+
pipx install codespell flake8
97100
98101
- name: Fix repository permissions
99102
run: |
@@ -137,6 +140,7 @@ jobs:
137140
- lvm
138141
- zfs
139142
- ceph
143+
- linstor
140144
- random
141145
os:
142146
- ubuntu-22.04
@@ -388,6 +392,48 @@ jobs:
388392
sudo microceph.ceph status
389393
sudo rm -f /snap/bin/rbd
390394
395+
- name: Setup LINSTOR
396+
if: ${{ matrix.backend == 'linstor' }}
397+
run: |
398+
set -x
399+
400+
# As with Ceph, we hope for a spare disk.
401+
if [ "$(stat -c '%d' /)" = "$(stat -c '%d' /mnt)" ]; then
402+
echo "FAIL: rootfs and ephemeral part on the same disk, aborting"
403+
exit 1
404+
fi
405+
406+
sudo add-apt-repository ppa:linbit/linbit-drbd9-stack -y
407+
408+
# Install everything required to compile DRBD and run LINSTOR tools.
409+
sudo apt-get install --no-install-recommends -y \
410+
drbd-dkms \
411+
linstor-client \
412+
linstor-controller \
413+
linstor-satellite \
414+
linux-headers-generic \
415+
python3-setuptools
416+
417+
# Enable DRBD.
418+
sudo modprobe -r drbd
419+
sudo modprobe drbd
420+
421+
# Get the runner IP.
422+
runner_ip="$(hostname -I | cut -d' ' -f1)"
423+
424+
# Create a single local node.
425+
sudo linstor node create local "${runner_ip}" --node-type combined
426+
427+
# Repurpose the ephemeral disk for LINSTOR physical storage.
428+
sudo swapoff /mnt/swapfile
429+
ephemeral_disk="$(findmnt --noheadings --output SOURCE --target /mnt | sed 's/[0-9]\+$//')"
430+
sudo umount /mnt
431+
sudo wipefs -a "${ephemeral_disk}"
432+
sudo linstor physical-storage create-device-pool --storage-pool incus --pool-name linstor-incus lvmthin local "${ephemeral_disk}"
433+
434+
# Update the runner env.
435+
echo "INCUS_LINSTOR_CLUSTER=${runner_ip}" >> "$GITHUB_ENV"
436+
391437
- name: "Ensure offline mode (block image server)"
392438
run: |
393439
sudo nft add table inet filter
@@ -401,6 +447,7 @@ jobs:
401447
INCUS_CEPH_CLUSTER: "ceph"
402448
INCUS_CEPH_CEPHFS: "cephfs"
403449
INCUS_CEPH_CEPHOBJECT_RADOSGW: "http://127.0.0.1"
450+
INCUS_LINSTOR_LOCAL_SATELLITE: "local"
404451
INCUS_CONCURRENT: "1"
405452
INCUS_VERBOSE: "1"
406453
INCUS_OFFLINE: "1"
@@ -410,7 +457,7 @@ jobs:
410457
chmod +x ~
411458
echo "root:1000000:1000000000" | sudo tee /etc/subuid /etc/subgid
412459
cd test
413-
sudo --preserve-env=PATH,GOPATH,GITHUB_ACTIONS,INCUS_VERBOSE,INCUS_BACKEND,INCUS_CEPH_CLUSTER,INCUS_CEPH_CEPHFS,INCUS_CEPH_CEPHOBJECT_RADOSGW,INCUS_OFFLINE,INCUS_SKIP_TESTS,INCUS_REQUIRED_TESTS, INCUS_BACKEND=${{ matrix.backend }} ./main.sh ${{ matrix.suite }}
460+
sudo --preserve-env=PATH,GOPATH,GITHUB_ACTIONS,INCUS_VERBOSE,INCUS_BACKEND,INCUS_CEPH_CLUSTER,INCUS_CEPH_CEPHFS,INCUS_CEPH_CEPHOBJECT_RADOSGW,INCUS_LINSTOR_LOCAL_SATELLITE,INCUS_LINSTOR_CLUSTER,INCUS_OFFLINE,INCUS_SKIP_TESTS,INCUS_REQUIRED_TESTS, INCUS_BACKEND=${{ matrix.backend }} ./main.sh ${{ matrix.suite }}
414461
415462
client:
416463
name: Client

0 commit comments

Comments
 (0)