diff --git a/csi-attacher/4.5.1/rockcraft.yaml b/csi-attacher/4.5.1/rockcraft.yaml new file mode 100644 index 0000000..5388a9a --- /dev/null +++ b/csi-attacher/4.5.1/rockcraft.yaml @@ -0,0 +1,59 @@ +# Copyright 2024 Canonical, Ltd. +# See LICENSE file for licensing details + +# Based on: https://github.com/kubernetes-csi/external-attacher/blob/v4.5.1/Dockerfile +name: csi-attacher +summary: csi-attacher rock +description: | + A rock containing csi-attacher. + + The external-attacher is a sidecar container that attaches volumes to nodes + by calling ControllerPublish and ControllerUnpublish functions of CSI drivers. + It is necessary because internal Attach/Detach controller running in Kubernetes + controller-manager does not have any direct interfaces to CSI drivers. +license: Apache-2.0 +version: 4.5.1 + +base: bare +build-base: ubuntu@22.04 +run-user: _daemon_ + +platforms: + amd64: + arm64: + +environment: + APP_VERSION: 4.5.1 + +# Services to be loaded by the Pebble entrypoint. +services: + csi-attacher: + summary: "csi-attacher service" + override: replace + startup: enabled + command: "/csi-attacher" + on-success: shutdown + on-failure: shutdown + +parts: + build-csi-attacher: + plugin: go + source: https://github.com/kubernetes-csi/external-attacher.git + source-type: git + source-tag: v${CRAFT_PROJECT_VERSION} + source-depth: 1 + build-snaps: + - go/1.21/stable + build-environment: + - CGO_ENABLED: 0 + - GOOS: linux + - GOARCH: $CRAFT_ARCH_BUILD_FOR + - VERSION: $CRAFT_PROJECT_VERSION + - LDFLAGS: > + -X main.version=${VERSION} -extldflags "-static" + go-buildtags: + - "mod=vendor" + go-generate: + - ./cmd/csi-attacher + organize: + bin/csi-attacher: ./ diff --git a/tests/sanity/test_csi_attacher.py b/tests/sanity/test_csi_attacher.py new file mode 100644 index 0000000..9096c66 --- /dev/null +++ b/tests/sanity/test_csi_attacher.py @@ -0,0 +1,18 @@ +# +# Copyright 2024 Canonical, Ltd. +# See LICENSE file for licensing details +# + +from k8s_test_harness.util import docker_util, env_util + + +def test_csi_attacher_rock(): + """Test csi-attacher rock.""" + rock = env_util.get_build_meta_info_for_rock_version( + "csi-attacher", "4.5.1", "amd64" + ) + image = rock.image + + # check binary. + process = docker_util.run_in_docker(image, ["/csi-attacher", "--help"]) + assert "Usage of /csi-attacher" in process.stderr