Bump linstor-csi to v1.10.6 and add an out-of-tree patch that overrides DrbdOptions/Net/protocol to C on the resource-definition whenever a volume is attached to a second node with allow-two-primaries (the live-migration flow), and reverts it on detach. Without the patch, any KubeVirt live migration of a VM whose volume sits on a Protocol-A/B resource (for example a "replicated-async" StorageClass) ends up in a permanent evacuation loop: drbdadm adjust on the satellite rejects allow-two-primaries with "Protocol C required" (errno 139), the migration fails, and KubeVirt retries until manual intervention. The override is set at the resource-definition level so it covers every connection, including diskless TieBreaker peers, and is tagged with an Aux marker so Detach reverts only the override we installed. The 001 relocate-after-clone patch was regenerated against v1.10.6 (context shift only, no logic change). Verified end-to-end on dev5: live migration of a KubeVirt VM whose PVC sits on a Protocol-A resource-group now succeeds in a single Attach. Patch is upstreamed as draft PR piraeusdatastore/linstor-csi#435. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
41 lines
1.7 KiB
Makefile
41 lines
1.7 KiB
Makefile
export NAME=linstor
|
|
export NAMESPACE=cozy-$(NAME)
|
|
|
|
include ../../../hack/common-envs.mk
|
|
include ../../../hack/package.mk
|
|
|
|
LINSTOR_VERSION ?= 1.33.2
|
|
LINSTOR_CSI_VERSION ?= v1.10.6
|
|
|
|
image: image-piraeus-server image-linstor-csi
|
|
|
|
image-piraeus-server:
|
|
docker buildx build images/piraeus-server \
|
|
--build-arg LINSTOR_VERSION=$(LINSTOR_VERSION) \
|
|
--build-arg K8S_AWAIT_ELECTION_VERSION=v0.4.2 \
|
|
--tag $(REGISTRY)/piraeus-server:$(call settag,$(LINSTOR_VERSION)) \
|
|
--tag $(REGISTRY)/piraeus-server:$(call settag,$(LINSTOR_VERSION)-$(TAG)) \
|
|
--cache-from type=registry,ref=$(REGISTRY)/piraeus-server:latest \
|
|
--cache-to type=inline \
|
|
--metadata-file images/piraeus-server.json \
|
|
$(BUILDX_ARGS)
|
|
REPOSITORY="$(REGISTRY)/piraeus-server" \
|
|
yq -i '.piraeusServer.image.repository = strenv(REPOSITORY)' values.yaml
|
|
TAG="$(call settag,$(LINSTOR_VERSION))@$$(yq e '."containerimage.digest"' images/piraeus-server.json -o json -r)" \
|
|
yq -i '.piraeusServer.image.tag = strenv(TAG)' values.yaml
|
|
rm -f images/piraeus-server.json
|
|
|
|
image-linstor-csi:
|
|
docker buildx build images/linstor-csi \
|
|
--build-arg VERSION=$(LINSTOR_CSI_VERSION) \
|
|
--tag $(REGISTRY)/linstor-csi:$(call settag,$(LINSTOR_CSI_VERSION)) \
|
|
--tag $(REGISTRY)/linstor-csi:$(call settag,$(LINSTOR_CSI_VERSION)-$(TAG)) \
|
|
--cache-from type=registry,ref=$(REGISTRY)/linstor-csi:latest \
|
|
--cache-to type=inline \
|
|
--metadata-file images/linstor-csi.json \
|
|
$(BUILDX_ARGS)
|
|
REPOSITORY="$(REGISTRY)/linstor-csi" \
|
|
yq -i '.linstorCSI.image.repository = strenv(REPOSITORY)' values.yaml
|
|
TAG="$(call settag,$(LINSTOR_CSI_VERSION))@$$(yq e '."containerimage.digest"' images/linstor-csi.json -o json -r)" \
|
|
yq -i '.linstorCSI.image.tag = strenv(TAG)' values.yaml
|
|
rm -f images/linstor-csi.json
|