diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6b7abb9307..50b6ccefbc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -112,6 +112,7 @@ jobs: working-directory: ${{ matrix.component }} run: | mkdir -p dist out + cp $GITHUB_WORKSPACE/LICENSE dist/LICENSE.txt export GIT_COMMIT=$(git rev-parse --short HEAD) export GIT_DIRTY=$(test -n "$(git status --porcelain)" && echo "+CHANGES") @@ -127,6 +128,13 @@ jobs: name: ${{ matrix.pkg_name }}_${{ needs.get-product-version.outputs.product-version }}_${{ matrix.goos }}_${{ matrix.goarch }}.zip path: ${{ matrix.component}}/out/${{ matrix.pkg_name }}_${{ needs.get-product-version.outputs.product-version }}_${{ 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 $GITHUB_WORKSPACE/LICENSE "$LICENSE_DIR/LICENSE.txt" + - name: Package rpm and deb files if: ${{ matrix.goos == 'linux' && matrix.component == 'cli' && matrix.goarch == 'amd64'}} uses: hashicorp/actions-packaging-linux@v1 @@ -141,6 +149,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.goarch == 'amd64'}} @@ -220,6 +229,9 @@ jobs: run: | cd "${ZIP_LOCATION}" unzip -j *.zip + - name: Copy LICENSE + run: + cp $GITHUB_WORKSPACE/LICENSE $GITHUB_WORKSPACE/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 30b26f460f..7d9c952fc0 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 +ENV 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 +ENV 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} @@ -134,8 +142,7 @@ ARG VERSION # and the version to download. Example: PRODUCT_NAME=consul PRODUCT_VERSION=1.2.3. ENV BIN_NAME=$BIN_NAME ENV PRODUCT_VERSION=$PRODUCT_VERSION - -ARG PRODUCT_NAME=$BIN_NAME +ENV PRODUCT_NAME=$BIN_NAME LABEL name=$PRODUCT_NAME \ maintainer="Team Consul Kubernetes " \ @@ -143,7 +150,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}