diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 39dc4c74d9..8387452507 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -145,6 +145,7 @@ jobs: working-directory: ${{ matrix.component }} run: | mkdir -p dist out + cp LICENSE dist/LICENSE.txt export GIT_COMMIT=$(git rev-parse --short HEAD) export GIT_DIRTY=$(test -n "$(git status --porcelain)" && echo "+CHANGES") @@ -160,6 +161,13 @@ jobs: name: ${{ matrix.pkg_name }}_${{ needs.get-product-version.outputs.product-version }}${{ matrix.fips }}_${{ matrix.goos }}_${{ matrix.goarch }}.zip path: ${{ matrix.component}}/out/${{ matrix.pkg_name }}_${{ needs.get-product-version.outputs.product-version }}${{ matrix.fips }}_${{ matrix.goos }}_${{ matrix.goarch }}.zip + - name: Copy license file + env: + LICENSE_DIR: ".release/linux/package/usr/share/doc/${{ env.PKG_NAME }}" + run: | + mkdir -p "$LICENSE_DIR" + cp LICENSE "$LICENSE_DIR/LICENSE.txt" + - name: Package rpm and deb files if: matrix.goos == 'linux' && matrix.component == 'cli' && matrix.skip_packaging != 'true' uses: hashicorp/actions-packaging-linux@v1 @@ -174,6 +182,7 @@ jobs: binary: "${{ matrix.component }}/dist/${{ matrix.pkg_name }}" deb_depends: "openssl" rpm_depends: "openssl" + config_dir: ".release/linux/package/" - name: Set package names if: matrix.goos == 'linux' && matrix.component == 'cli' && matrix.skip_packaging != 'true' @@ -263,6 +272,9 @@ jobs: run: | cd "${ZIP_LOCATION}" unzip -j *.zip + - name: Copy LICENSE + run: + cp LICENSE ./control-plane # This naming convention will be used ONLY for per-commit dev images - name: Set docker dev tag diff --git a/control-plane/Dockerfile b/control-plane/Dockerfile index b1752507fd..20f4555c39 100644 --- a/control-plane/Dockerfile +++ b/control-plane/Dockerfile @@ -32,6 +32,7 @@ ARG CNI_BIN_NAME=consul-cni ARG VERSION ARG TARGETARCH ARG TARGETOS +ARG PRODUCT_NAME=$BIN_NAME LABEL name=${BIN_NAME} \ maintainer="Team Consul Kubernetes " \ @@ -39,7 +40,10 @@ LABEL name=${BIN_NAME} \ version=${VERSION} \ release=${VERSION} \ summary="consul-k8s-control-plane provides first-class integrations between Consul and Kubernetes." \ - description="consul-k8s-control-plane provides first-class integrations between Consul and Kubernetes." + description="consul-k8s-control-plane provides first-class integrations between Consul and Kubernetes." \ + org.opencontainers.image.licenses="MPL-2.0" + +COPY LICENSE /usr/share/doc/$PRODUCT_NAME/LICENSE.txt # Set ARGs as ENV so that they can be used in ENTRYPOINT/CMD ENV BIN_NAME=${BIN_NAME} @@ -80,6 +84,7 @@ FROM alpine:3.18 AS release-default ARG BIN_NAME=consul-k8s-control-plane ARG CNI_BIN_NAME=consul-cni ARG PRODUCT_VERSION +ARG PRODUCT_NAME=$BIN_NAME LABEL name=${BIN_NAME} \ maintainer="Team Consul Kubernetes " \ @@ -87,7 +92,10 @@ LABEL name=${BIN_NAME} \ version=${PRODUCT_VERSION} \ release=${PRODUCT_VERSION} \ summary="consul-k8s-control-plane provides first-class integrations between Consul and Kubernetes." \ - description="consul-k8s-control-plane provides first-class integrations between Consul and Kubernetes." + description="consul-k8s-control-plane provides first-class integrations between Consul and Kubernetes." \ + org.opencontainers.image.licenses="MPL-2.0" + +COPY LICENSE /usr/share/doc/$PRODUCT_NAME/LICENSE.txt # Set ARGs as ENV so that they can be used in ENTRYPOINT/CMD ENV BIN_NAME=${BIN_NAME} @@ -150,7 +158,10 @@ LABEL name=$PRODUCT_NAME \ version=$PRODUCT_VERSION \ release=$PRODUCT_VERSION \ summary="consul-k8s-control-plane provides first-class integrations between Consul and Kubernetes." \ - description="consul-k8s-control-plane provides first-class integrations between Consul and Kubernetes." + description="consul-k8s-control-plane provides first-class integrations between Consul and Kubernetes." \ + org.opencontainers.image.licenses="MPL-2.0" + +COPY LICENSE /usr/share/doc/$PRODUCT_NAME/LICENSE.txt # Set ARGs as ENV so that they can be used in ENTRYPOINT/CMD ENV NAME=${BIN_NAME}