diff --git a/.actionlint.yaml b/.actionlint.yaml new file mode 100644 index 00000000..aa2d2b97 --- /dev/null +++ b/.actionlint.yaml @@ -0,0 +1,6 @@ +--- +self-hosted-runner: + # BuildJet machines we are using + labels: + - buildjet-2vcpu-ubuntu-2204-arm + - buildjet-4vcpu-ubuntu-2204-arm diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0d7e93fc..bcc03172 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,7 +42,7 @@ jobs: with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config version: 1.0 - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: submodules: recursive - uses: dtolnay/rust-toolchain@d8352f6b1d2e870bc5716e7a6d9b65c4cc244a1a @@ -111,7 +111,7 @@ jobs: continue-on-error: ${{ matrix.checks == 'advisories' }} steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: submodules: recursive - uses: EmbarkStudios/cargo-deny-action@3f4a782664881cf5725d0ffd23969fcce89fd868 # v1.6.3 @@ -122,7 +122,7 @@ jobs: name: Run Rustfmt runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: submodules: recursive - uses: dtolnay/rust-toolchain@d8352f6b1d2e870bc5716e7a6d9b65c4cc244a1a @@ -140,7 +140,7 @@ jobs: with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config version: 1.0 - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: submodules: recursive - uses: dtolnay/rust-toolchain@d8352f6b1d2e870bc5716e7a6d9b65c4cc244a1a @@ -175,8 +175,7 @@ jobs: with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config version: 1.0 - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: submodules: recursive - uses: dtolnay/rust-toolchain@d8352f6b1d2e870bc5716e7a6d9b65c4cc244a1a @@ -198,7 +197,7 @@ jobs: with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config version: 1.0 - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: submodules: recursive - uses: dtolnay/rust-toolchain@d8352f6b1d2e870bc5716e7a6d9b65c4cc244a1a @@ -218,11 +217,10 @@ jobs: name: Check if committed README is the one we would render from the available parts runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: submodules: recursive - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # tag=v5.1.0 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 with: python-version: '3.12' - name: Install jinja2-cli @@ -257,8 +255,7 @@ jobs: with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config version: 1.0 - - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: submodules: recursive - name: Set up Helm @@ -301,11 +298,14 @@ jobs: run: echo All tests have passed! package_and_publish: - name: Package Charts, Build Docker Image and publish them + name: Package Charts, Build Docker Image and publish them - ${{ matrix.runner }} needs: - tests_passed - select_helm_repo - runs-on: ubuntu-latest + strategy: + matrix: + runner: ["ubuntu-latest", "buildjet-2vcpu-ubuntu-2204-arm"] + runs-on: ${{ matrix.runner }} permissions: id-token: write env: @@ -324,11 +324,10 @@ jobs: with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config version: 1.0 - - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: submodules: recursive - - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # tag=v26 + - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26 - uses: dtolnay/rust-toolchain@d8352f6b1d2e870bc5716e7a6d9b65c4cc244a1a with: toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} @@ -344,15 +343,25 @@ jobs: if: ${{ github.event_name == 'pull_request' }} run: cargo set-version --offline --workspace 0.0.0-pr${{ github.event.pull_request.number }} - # Recreate charts and publish charts and docker image. The "-e" is needed as we want to override the - # default value in the makefile if called from this action, but not otherwise (i.e. when called locally). - # This is needed for the HELM_REPO variable. + # Recreate charts and publish charts and docker image. The "-e" is needed as we want to override the + # default value in the makefile if called from this action, but not otherwise (i.e. when called locally). + # This is needed for the HELM_REPO variable. - name: Install cosign - uses: sigstore/cosign-installer@59acb6260d9c0ba8f4a2f9d9b48431a222b68e20 # tag=v3.5.0 + uses: sigstore/cosign-installer@59acb6260d9c0ba8f4a2f9d9b48431a222b68e20 # v3.5.0 - name: Install syft uses: anchore/sbom-action/download-syft@7ccf588e3cf3cc2611714c2eeae48550fbc17552 # v0.15.11 - name: Build Docker image and Helm chart - run: make -e build + run: | + # Installing helm on BuildJet only + if [ "$(arch)" = "aarch64" ]; then + curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null + sudo apt-get -y install apt-transport-https --yes + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list + sudo apt-get -y update + sudo apt-get -y install helm + fi + + make -e build - name: Publish Docker image and Helm chart if: ${{ !github.event.pull_request.head.repo.fork }} run: make -e publish @@ -362,11 +371,48 @@ jobs: if: ${{ !github.event.pull_request.head.repo.fork }} run: echo "IMAGE_TAG=$(make -e print-docker-tag)" >> $GITHUB_OUTPUT + create_manifest_list: + name: Build and publish manifest list + needs: + - package_and_publish + runs-on: ubuntu-latest + permissions: + id-token: write + env: + NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + OCI_REGISTRY_SDP_PASSWORD: ${{ secrets.HARBOR_ROBOT_SDP_GITHUB_ACTION_BUILD_SECRET }} + OCI_REGISTRY_SDP_USERNAME: "robot$sdp+github-action-build" + OCI_REGISTRY_SDP_CHARTS_PASSWORD: ${{ secrets.HARBOR_ROBOT_SDP_CHARTS_GITHUB_ACTION_BUILD_SECRET }} + OCI_REGISTRY_SDP_CHARTS_USERNAME: "robot$sdp-charts+github-action-build" + steps: + - name: Install cosign + uses: sigstore/cosign-installer@59acb6260d9c0ba8f4a2f9d9b48431a222b68e20 # v3.5.0 + - name: Checkout + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + with: + submodules: recursive + # This step checks if the current run was triggered by a push to a pr (or a pr being created). + # If this is the case it changes the version of this project in all Cargo.toml files to include the suffix + # "-pr" so that the published artifacts can be linked to this PR. + - uses: stackabletech/cargo-install-action@main + with: + crate: cargo-edit + bin: cargo-set-version + - name: Update version if PR + if: ${{ github.event_name == 'pull_request' }} + run: cargo set-version --offline --workspace 0.0.0-pr${{ github.event.pull_request.number }} + - name: Build manifest list + run: | + # Creating manifest list + make -e docker-manifest-list-build + # Pushing and signing manifest list + make -e docker-manifest-list-publish + openshift_preflight: name: Run the OpenShift Preflight check on the published images if: ${{ !github.event.pull_request.head.repo.fork }} needs: - - package_and_publish + - create_manifest_list runs-on: ubuntu-latest env: IMAGE_TAG: ${{ needs.package_and_publish.outputs.IMAGE_TAG }} @@ -380,4 +426,4 @@ jobs: ARCH_FOR_PREFLIGHT="$(arch | sed -e 's#x86_64#amd64#' | sed -e 's#aarch64#arm64#')" ./preflight-linux-amd64 check container "$IMAGE_TAG" --platform "${ARCH_FOR_PREFLIGHT}" > preflight.out - name: "Passed?" - run: '[ "$(./preflight-linux-amd64 check container "$IMAGE_TAG" --platform "${ARCH_FOR_PREFLIGHT}" | jq -r .passed)" == true ]' + run: '[ "$(cat preflight.out | jq -r .passed)" == true ]' diff --git a/.github/workflows/general_daily_security.yml b/.github/workflows/general_daily_security.yml index 264364cd..fedd4b37 100644 --- a/.github/workflows/general_daily_security.yml +++ b/.github/workflows/general_daily_security.yml @@ -14,7 +14,7 @@ jobs: audit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - uses: rustsec/audit-check@dd51754d4e59da7395a4cd9b593f0ff2d61a9b95 # v1.4.1 with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/pr_reviewdog.yaml b/.github/workflows/pr_reviewdog.yaml index 808b0314..636cadfd 100644 --- a/.github/workflows/pr_reviewdog.yaml +++ b/.github/workflows/pr_reviewdog.yaml @@ -18,15 +18,15 @@ jobs: actionlint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - - uses: reviewdog/action-actionlint@51bfb044ddaed55059d16f14daedbe05a9937dc1 # v1.45.0 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 + - uses: reviewdog/action-actionlint@89a03f6ba8c0a9fd238e82c075ffb34b86e40291 # v1.46.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} flake8: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # tag=v5.1.0 with: python-version: "3.12" @@ -37,7 +37,7 @@ jobs: hadolint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - uses: reviewdog/action-hadolint@13c293e6679cd4c90fa41dd5155fb067a28c0a5f # v1.41.1 with: github_token: ${{ secrets.GITHUB_TOKEN }} @@ -45,7 +45,7 @@ jobs: markdownlint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - uses: reviewdog/action-markdownlint@5bc6ad5ba9e1250878f351bafcc7ac0a11dc050f # v0.18.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} @@ -54,7 +54,7 @@ jobs: shellcheck: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - uses: reviewdog/action-shellcheck@72365a51bf6476fe952a117c3ff703eb7775e40a # v1.20.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} @@ -62,7 +62,7 @@ jobs: yamllint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - uses: reviewdog/action-yamllint@8d79c3d034667db2792e328936811ed44953d691 # v1.14.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} @@ -70,7 +70,7 @@ jobs: misspell: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - uses: reviewdog/action-misspell@5bd7be2fc7ae56a517184f5c4bbcf2fd7afe3927 # v1.17.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} @@ -82,7 +82,7 @@ jobs: languagetool: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - uses: reviewdog/action-languagetool@73e4df96aa7b1b741a32ee2e1fff3405d3461583 # v1.14.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 8bd12182..2dbc7ab0 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ tilt_options.json .direnv/ .direnvrc .envrc + +.DS_Store diff --git a/Makefile b/Makefile index d989b6b2..590da74f 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,7 @@ TAG := $(shell git rev-parse --short HEAD) OPERATOR_NAME := trino-operator VERSION := $(shell cargo metadata --format-version 1 | jq -r '.packages[] | select(.name=="stackable-${OPERATOR_NAME}") | .version') +ARCH := $(shell arch | sed -e 's#x86_64#amd64#' | sed -e 's#aarch64#arm64#') DOCKER_REPO := docker.stackable.tech ORGANIZATION := stackable @@ -30,17 +31,17 @@ render-readme: ## Docker related targets docker-build: - docker build --force-rm --build-arg VERSION=${VERSION} -t "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}" -f docker/Dockerfile . - docker tag "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}" "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}" + docker build --force-rm --build-arg VERSION=${VERSION} -t "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}-${ARCH}" -f docker/Dockerfile . + docker tag "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}-${ARCH}" "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}-${ARCH}" docker-publish: # Push to Nexus echo "${NEXUS_PASSWORD}" | docker login --username github --password-stdin "${DOCKER_REPO}" DOCKER_OUTPUT=$$(docker push --all-tags "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}");\ # Obtain the digest of the pushed image from the output of `docker push`, because signing by tag is deprecated and will be removed from cosign in the future\ - REPO_DIGEST_OF_IMAGE=$$(echo "$$DOCKER_OUTPUT" | awk '/^${VERSION}: digest: sha256:[0-9a-f]{64} size: [0-9]+$$/ { print $$3 }');\ + REPO_DIGEST_OF_IMAGE=$$(echo "$$DOCKER_OUTPUT" | awk '/^${VERSION}-${ARCH}: digest: sha256:[0-9a-f]{64} size: [0-9]+$$/ { print $$3 }');\ if [ -z "$$REPO_DIGEST_OF_IMAGE" ]; then\ - echo 'Could not find repo digest for container image: ${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}';\ + echo 'Could not find repo digest for container image: ${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}-${ARCH}';\ exit 1;\ fi;\ # This generates a signature and publishes it to the registry, next to the image\ @@ -51,8 +52,8 @@ docker-publish: # Determine the PURL for the container image\ PURL="pkg:docker/${ORGANIZATION}/${OPERATOR_NAME}@$$REPO_DIGEST_OF_IMAGE?repository_url=${DOCKER_REPO}";\ # Get metadata from the image\ - IMAGE_DESCRIPTION=$$(docker inspect --format='{{.Config.Labels.description}}' "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}");\ - IMAGE_NAME=$$(docker inspect --format='{{.Config.Labels.name}}' "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}");\ + IMAGE_DESCRIPTION=$$(docker inspect --format='{{.Config.Labels.description}}' "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}-${ARCH}");\ + IMAGE_NAME=$$(docker inspect --format='{{.Config.Labels.name}}' "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}-${ARCH}");\ # Merge the SBOM with the metadata for the operator\ jq -s '{"metadata":{"component":{"description":"'"$$IMAGE_NAME. $$IMAGE_DESCRIPTION"'","supplier":{"name":"Stackable GmbH","url":["https://stackable.tech/"]},"author":"Stackable GmbH","purl":"'"$$PURL"'","publisher":"Stackable GmbH"}}} * .[0]' sbom.json > sbom.merged.json;\ # Attest the SBOM to the image\ @@ -63,9 +64,9 @@ docker-publish: docker login --username '${value OCI_REGISTRY_SDP_USERNAME}' --password '${OCI_REGISTRY_SDP_PASSWORD}' '${OCI_REGISTRY_HOSTNAME}' DOCKER_OUTPUT=$$(docker push --all-tags '${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}');\ # Obtain the digest of the pushed image from the output of `docker push`, because signing by tag is deprecated and will be removed from cosign in the future\ - REPO_DIGEST_OF_IMAGE=$$(echo "$$DOCKER_OUTPUT" | awk '/^${VERSION}: digest: sha256:[0-9a-f]{64} size: [0-9]+$$/ { print $$3 }');\ + REPO_DIGEST_OF_IMAGE=$$(echo "$$DOCKER_OUTPUT" | awk '/^${VERSION}-${ARCH}: digest: sha256:[0-9a-f]{64} size: [0-9]+$$/ { print $$3 }');\ if [ -z "$$REPO_DIGEST_OF_IMAGE" ]; then\ - echo 'Could not find repo digest for container image: ${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}';\ + echo 'Could not find repo digest for container image: ${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}-${ARCH}';\ exit 1;\ fi;\ # This generates a signature and publishes it to the registry, next to the image\ @@ -76,13 +77,39 @@ docker-publish: # Determine the PURL for the container image\ PURL="pkg:docker/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}@$$REPO_DIGEST_OF_IMAGE?repository_url=${OCI_REGISTRY_HOSTNAME}";\ # Get metadata from the image\ - IMAGE_DESCRIPTION=$$(docker inspect --format='{{.Config.Labels.description}}' "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}");\ - IMAGE_NAME=$$(docker inspect --format='{{.Config.Labels.name}}' "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}");\ + IMAGE_DESCRIPTION=$$(docker inspect --format='{{.Config.Labels.description}}' "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}-${ARCH}");\ + IMAGE_NAME=$$(docker inspect --format='{{.Config.Labels.name}}' "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}-${ARCH}");\ # Merge the SBOM with the metadata for the operator\ jq -s '{"metadata":{"component":{"description":"'"$$IMAGE_NAME. $$IMAGE_DESCRIPTION"'","supplier":{"name":"Stackable GmbH","url":["https://stackable.tech/"]},"author":"Stackable GmbH","purl":"'"$$PURL"'","publisher":"Stackable GmbH"}}} * .[0]' sbom.json > sbom.merged.json;\ # Attest the SBOM to the image\ cosign attest -y --predicate sbom.merged.json --type cyclonedx "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}@$$REPO_DIGEST_OF_IMAGE" +# This assumes "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}-amd64 and "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}-arm64 are build and pushed +docker-manifest-list-build: + docker manifest create "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}" --amend "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}-amd64" --amend "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}-arm64" + docker manifest create "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}" --amend "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}-amd64" --amend "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}-arm64" + +docker-manifest-list-publish: + # Push to Nexus + echo "${NEXUS_PASSWORD}" | docker login --username github --password-stdin "${DOCKER_REPO}" + # `docker manifest push` directly returns the digest of the manifest list + # As it is an experimental feature, this might change in the future + # Further reading: https://docs.docker.com/reference/cli/docker/manifest/push/ + DIGEST_NEXUS=$$(docker manifest push "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}");\ + # Refer to image via its digest (oci.stackable.tech/sdp/airflow@sha256:0a1b2c...)\ + # This generates a signature and publishes it to the registry, next to the image\ + # Uses the keyless signing flow with Github Actions as identity provider\ + cosign sign -y "${DOCKER_REPO}/${ORGANIZATION}/${OPERATOR_NAME}:${VERSION}@$$DIGEST_NEXUS" + + # Push to Harbor + # We need to use "value" here to prevent the variable from being recursively expanded by make (username contains a dollar sign, since it's a Harbor bot) + docker login --username '${value OCI_REGISTRY_SDP_USERNAME}' --password '${OCI_REGISTRY_SDP_PASSWORD}' '${OCI_REGISTRY_HOSTNAME}' + DIGEST_HARBOR=$$(docker manifest push "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}");\ + # Refer to image via its digest (oci.stackable.tech/sdp/airflow@sha256:0a1b2c...);\ + # This generates a signature and publishes it to the registry, next to the image\ + # Uses the keyless signing flow with Github Actions as identity provider\ + cosign sign -y "${OCI_REGISTRY_HOSTNAME}/${OCI_REGISTRY_PROJECT_IMAGES}/${OPERATOR_NAME}:${VERSION}@$$DIGEST_HARBOR" + # TODO remove if not used/needed docker: docker-build docker-publish @@ -148,6 +175,11 @@ regenerate-nix: build: regenerate-charts regenerate-nix helm-package docker-build +# This target is used by the CI +# It doesn't make use of any nix dependencies and thus aviods building the +# operator unnecessarily often. +build-ci: regenerate-charts helm-package docker-build + publish: docker-publish helm-publish check-nix: diff --git a/crate-hashes.json b/crate-hashes.json index 16284437..5623023b 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,294 +1,5 @@ { "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.67.1#stackable-operator-derive@0.3.0": "179kqkj6pw5cn98cngcmxn5kmy5snydhsdq4qx6hza862sx0828j", "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.67.1#stackable-operator@0.67.1": "179kqkj6pw5cn98cngcmxn5kmy5snydhsdq4qx6hza862sx0828j", - "git+https://github.com/stackabletech/product-config.git?tag=0.6.0#product-config@0.6.0": "1ixc2x7540sxdmc92hqdcwm24rj8i1ivjsvwk2d57pdsq03j2x41", - "registry+https://github.com/rust-lang/crates.io-index#addr2line@0.21.0": "1jx0k3iwyqr8klqbzk6kjvr496yd94aspis10vwsj5wy7gib4c4a", - "registry+https://github.com/rust-lang/crates.io-index#adler@1.0.2": "1zim79cvzd5yrkzl3nyfx0avijwgk9fqv3yrscdy1cc79ih02qpj", - "registry+https://github.com/rust-lang/crates.io-index#ahash@0.8.11": "04chdfkls5xmhp1d48gnjsmglbqibizs3bpbj6rsj604m10si7g8", - "registry+https://github.com/rust-lang/crates.io-index#aho-corasick@1.1.3": "05mrpkvdgp5d20y2p989f187ry9diliijgwrs254fs9s1m1x6q4f", - "registry+https://github.com/rust-lang/crates.io-index#allocator-api2@0.2.18": "0kr6lfnxvnj164j1x38g97qjlhb7akppqzvgfs0697140ixbav2w", - "registry+https://github.com/rust-lang/crates.io-index#android-tzdata@0.1.1": "1w7ynjxrfs97xg3qlcdns4kgfpwcdv824g611fq32cag4cdr96g9", - "registry+https://github.com/rust-lang/crates.io-index#android_system_properties@0.1.5": "04b3wrz12837j7mdczqd95b732gw5q7q66cv4yn4646lvccp57l1", - "registry+https://github.com/rust-lang/crates.io-index#anstream@0.6.14": "0nx1vnfs2lil1sl14l49i6jvp6zpjczn85wxx4xw1ycafvx7b321", - "registry+https://github.com/rust-lang/crates.io-index#anstyle-parse@0.2.4": "1m121pa4plpcb4g7xali2kv9njmgb3713q3fxf60b4jd0fli2fn0", - "registry+https://github.com/rust-lang/crates.io-index#anstyle-query@1.0.3": "1x9pyl231rry5g45dvkdb2sfnl2dx2f4qd9a5v3ml8kr9ryr0k56", - "registry+https://github.com/rust-lang/crates.io-index#anstyle-wincon@3.0.3": "06gv2vbj4hvwb8fxqjmvabp5kx2w01cjgh86pd98y1mpzr4q98v1", - "registry+https://github.com/rust-lang/crates.io-index#anstyle@1.0.7": "06qxmrba0xbhv07jpdvrdrhw1hjlb9icj88bqvlnissz9bqgr383", - "registry+https://github.com/rust-lang/crates.io-index#anyhow@1.0.83": "1wzm0i8jlmxpcfkmrqnmcpi00ca4g2kg6zfdm4cvbqnwpcnb7g95", - "registry+https://github.com/rust-lang/crates.io-index#async-broadcast@0.7.0": "1nybg8i495m380rr7xj7z2xigdpf1b7qcb9vg04ry6vlmahm52r5", - "registry+https://github.com/rust-lang/crates.io-index#async-stream-impl@0.3.5": "14q179j4y8p2z1d0ic6aqgy9fhwz8p9cai1ia8kpw4bw7q12mrhn", - "registry+https://github.com/rust-lang/crates.io-index#async-stream@0.3.5": "0l8sjq1rylkb1ak0pdyjn83b3k6x36j22myngl4sqqgg7whdsmnd", - "registry+https://github.com/rust-lang/crates.io-index#async-trait@0.1.80": "1jip2xkv8l67bbg6jrz3b1sdb7api77vy38wrjl7sfkmya3j1yn6", - "registry+https://github.com/rust-lang/crates.io-index#autocfg@1.3.0": "1c3njkfzpil03k92q0mij5y1pkhhfr4j3bf0h53bgl2vs85lsjqc", - "registry+https://github.com/rust-lang/crates.io-index#backoff@0.4.0": "1h80d9xn5wngxdgza2m8w4x1kyhk0x6k9ydvsj50j2pcn6fdnbdn", - "registry+https://github.com/rust-lang/crates.io-index#backtrace@0.3.71": "17bgd7pbjb9gc8q47qwsg2lmy9i62x3bsjmmnjrwh5z8s805ic16", - "registry+https://github.com/rust-lang/crates.io-index#base64@0.21.7": "0rw52yvsk75kar9wgqfwgb414kvil1gn7mqkrhn9zf1537mpsacx", - "registry+https://github.com/rust-lang/crates.io-index#base64@0.22.1": "1imqzgh7bxcikp5vx3shqvw9j09g9ly0xr0jma0q66i52r7jbcvj", - "registry+https://github.com/rust-lang/crates.io-index#bit-set@0.5.3": "1wcm9vxi00ma4rcxkl3pzzjli6ihrpn9cfdi0c5b4cvga2mxs007", - "registry+https://github.com/rust-lang/crates.io-index#bit-vec@0.6.3": "1ywqjnv60cdh1slhz67psnp422md6jdliji6alq0gmly2xm9p7rl", - "registry+https://github.com/rust-lang/crates.io-index#bitflags@2.5.0": "1h91vdx1il069vdiiissj8ymzj130rbiic0dbs77yxjgjim9sjyg", - "registry+https://github.com/rust-lang/crates.io-index#block-buffer@0.10.4": "0w9sa2ypmrsqqvc20nhwr75wbb5cjr4kkyhpjm1z1lv2kdicfy1h", - "registry+https://github.com/rust-lang/crates.io-index#built@0.7.2": "05igfjr1hxcha6j7pz8jx1w825gdiqdbiyl0bs5pmf2n2arbvgs1", - "registry+https://github.com/rust-lang/crates.io-index#bumpalo@3.16.0": "0b015qb4knwanbdlp1x48pkb4pm57b8gidbhhhxr900q2wb6fabr", - "registry+https://github.com/rust-lang/crates.io-index#byteorder@1.5.0": "0jzncxyf404mwqdbspihyzpkndfgda450l0893pz5xj685cg5l0z", - "registry+https://github.com/rust-lang/crates.io-index#bytes@1.6.0": "1jf2awc1fywpk15m6pxay3wqcg65ararg9xi4b08vnszwiyy2kai", - "registry+https://github.com/rust-lang/crates.io-index#cc@1.0.97": "1d6rv3nk5q6lrr3mf7lifqpjr44slylsz3pw6pmn2k2cv1bm76h9", - "registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.0": "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds", - "registry+https://github.com/rust-lang/crates.io-index#chrono@0.4.38": "009l8vc5p8750vn02z30mblg4pv2qhkbfizhfwmzc6vpy5nr67x2", - "registry+https://github.com/rust-lang/crates.io-index#clap@4.5.4": "1828wm9qws5gh2xnimnvmp2vria6d6hsxnqmhnm84dwjcxm0dg4h", - "registry+https://github.com/rust-lang/crates.io-index#clap_builder@4.5.2": "1d7p4hph4fyhaphkf0v5zv0kq4lz25a9jq2f901yrq3afqp9w4mf", - "registry+https://github.com/rust-lang/crates.io-index#clap_derive@4.5.4": "0r2gs2p10pb435w52xzsgz2mmx5qd3qfkmk29y4mbz9ph11k30aj", - "registry+https://github.com/rust-lang/crates.io-index#clap_lex@0.7.0": "1kh1sckgq71kay2rrr149pl9gbsrvyccsq6xm5xpnq0cxnyqzk4q", - "registry+https://github.com/rust-lang/crates.io-index#colorchoice@1.0.1": "08h4jsrd2j5k6lp1b9v5p1f1g7cmyzm4djsvb3ydywdb4hmqashb", - "registry+https://github.com/rust-lang/crates.io-index#concurrent-queue@2.5.0": "0wrr3mzq2ijdkxwndhf79k952cp4zkz35ray8hvsxl96xrx1k82c", - "registry+https://github.com/rust-lang/crates.io-index#const_format@0.2.32": "0wvns8mzqwkyciwr00p2g5g4ak7zz8m473di85srj11xmz3i98p3", - "registry+https://github.com/rust-lang/crates.io-index#const_format_proc_macros@0.2.32": "0015dzbjbd773nn6096dwqv11fm8m3gy4a4a56cz5x10zl4gzxn7", - "registry+https://github.com/rust-lang/crates.io-index#core-foundation-sys@0.8.6": "13w6sdf06r0hn7bx2b45zxsg1mm2phz34jikm6xc5qrbr6djpsh6", - "registry+https://github.com/rust-lang/crates.io-index#core-foundation@0.9.4": "13zvbbj07yk3b61b8fhwfzhy35535a583irf23vlcg59j7h9bqci", - "registry+https://github.com/rust-lang/crates.io-index#cpufeatures@0.2.12": "012m7rrak4girqlii3jnqwrr73gv1i980q4wra5yyyhvzwk5xzjk", - "registry+https://github.com/rust-lang/crates.io-index#crossbeam-channel@0.5.12": "159gp30clv2ci3r473659ii04pjznspb3g9gwkhj2lavkhmb0gdb", - "registry+https://github.com/rust-lang/crates.io-index#crossbeam-utils@0.8.19": "0iakrb1b8fjqrag7wphl94d10irhbh2fw1g444xslsywqyn3p3i4", - "registry+https://github.com/rust-lang/crates.io-index#crypto-common@0.1.6": "1cvby95a6xg7kxdz5ln3rl9xh66nz66w46mm3g56ri1z5x815yqv", - "registry+https://github.com/rust-lang/crates.io-index#darling@0.20.8": "14a38qsi9104kvk1z11rqj0bnz1866dyhnvgvbgzz17d2g6nzqsl", - "registry+https://github.com/rust-lang/crates.io-index#darling_core@0.20.8": "03x7s149p06xfwcq0lgkk4yxh6jf7jckny18nzp1yyk87b1g2b4w", - "registry+https://github.com/rust-lang/crates.io-index#darling_macro@0.20.8": "0gwkz0cjfy3fgcc1zmm7azzhj5qpja34s0cklcria4l38sjyss56", - "registry+https://github.com/rust-lang/crates.io-index#delegate@0.12.0": "16zpkc6v2ss5qivwx7p7vb1bjnb6s0p7kkifaqkgyl7bpv68y0af", - "registry+https://github.com/rust-lang/crates.io-index#derivative@2.2.0": "02vpb81wisk2zh1d5f44szzxamzinqgq2k8ydrfjj2wwkrgdvhzw", - "registry+https://github.com/rust-lang/crates.io-index#digest@0.10.7": "14p2n6ih29x81akj097lvz7wi9b6b9hvls0lwrv7b6xwyy0s5ncy", - "registry+https://github.com/rust-lang/crates.io-index#doc-comment@0.3.3": "043sprsf3wl926zmck1bm7gw0jq50mb76lkpk49vasfr6ax1p97y", - "registry+https://github.com/rust-lang/crates.io-index#dockerfile-parser@0.8.0": "026wv0d1kbdkvp4cj3ray8bxs7pqh1yzk8b5lclmch7syla96ybm", - "registry+https://github.com/rust-lang/crates.io-index#dyn-clone@1.0.17": "09cig7dgg6jnqa10p4233nd8wllbjf4ffsw7wj0m4lwa5w3z0vhd", - "registry+https://github.com/rust-lang/crates.io-index#either@1.11.0": "18l0cwyw18syl8b52syv6balql8mnwfyhihjqqllx5pms93iqz54", - "registry+https://github.com/rust-lang/crates.io-index#encoding_rs@0.8.34": "0nagpi1rjqdpvakymwmnlxzq908ncg868lml5b70n08bm82fjpdl", - "registry+https://github.com/rust-lang/crates.io-index#enquote@1.1.0": "0clrjghlfkkb7sndabs5wch0fz2nif6nj4b117s8kqxx3nqnrhq6", - "registry+https://github.com/rust-lang/crates.io-index#equivalent@1.0.1": "1malmx5f4lkfvqasz319lq6gb3ddg19yzf9s8cykfsgzdmyq0hsl", - "registry+https://github.com/rust-lang/crates.io-index#event-listener-strategy@0.5.2": "18f5ri227khkayhv3ndv7yl4rnasgwksl2jhwgafcxzr7324s88g", - "registry+https://github.com/rust-lang/crates.io-index#event-listener@5.3.0": "091a6bgxzjnycqa10l2sqwzzy0j9vpw7a1w0nbglqlqkraw496bd", - "registry+https://github.com/rust-lang/crates.io-index#fancy-regex@0.11.0": "18j0mmzfycibhxhhhfja00dxd1vf8x5c28lbry224574h037qpxr", - "registry+https://github.com/rust-lang/crates.io-index#fnv@1.0.7": "1hc2mcqha06aibcaza94vbi81j6pr9a1bbxrxjfhc91zin8yr7iz", - "registry+https://github.com/rust-lang/crates.io-index#foreign-types-shared@0.1.1": "0jxgzd04ra4imjv8jgkmdq59kj8fsz6w4zxsbmlai34h26225c00", - "registry+https://github.com/rust-lang/crates.io-index#foreign-types@0.3.2": "1cgk0vyd7r45cj769jym4a6s7vwshvd0z4bqrb92q1fwibmkkwzn", - "registry+https://github.com/rust-lang/crates.io-index#form_urlencoded@1.2.1": "0milh8x7nl4f450s3ddhg57a3flcv6yq8hlkyk6fyr3mcb128dp1", - "registry+https://github.com/rust-lang/crates.io-index#futures-channel@0.3.30": "0y6b7xxqdjm9hlcjpakcg41qfl7lihf6gavk8fyqijsxhvbzgj7a", - "registry+https://github.com/rust-lang/crates.io-index#futures-core@0.3.30": "07aslayrn3lbggj54kci0ishmd1pr367fp7iks7adia1p05miinz", - "registry+https://github.com/rust-lang/crates.io-index#futures-executor@0.3.30": "07dh08gs9vfll2h36kq32q9xd86xm6lyl9xikmmwlkqnmrrgqxm5", - "registry+https://github.com/rust-lang/crates.io-index#futures-io@0.3.30": "1hgh25isvsr4ybibywhr4dpys8mjnscw4wfxxwca70cn1gi26im4", - "registry+https://github.com/rust-lang/crates.io-index#futures-macro@0.3.30": "1b49qh9d402y8nka4q6wvvj0c88qq91wbr192mdn5h54nzs0qxc7", - "registry+https://github.com/rust-lang/crates.io-index#futures-sink@0.3.30": "1dag8xyyaya8n8mh8smx7x6w2dpmafg2din145v973a3hw7f1f4z", - "registry+https://github.com/rust-lang/crates.io-index#futures-task@0.3.30": "013h1724454hj8qczp8vvs10qfiqrxr937qsrv6rhii68ahlzn1q", - "registry+https://github.com/rust-lang/crates.io-index#futures-timer@3.0.3": "094vw8k37djpbwv74bwf2qb7n6v6ghif4myss6smd6hgyajb127j", - "registry+https://github.com/rust-lang/crates.io-index#futures-util@0.3.30": "0j0xqhcir1zf2dcbpd421kgw6wvsk0rpxflylcysn1rlp3g02r1x", - "registry+https://github.com/rust-lang/crates.io-index#futures@0.1.31": "0y46qbmhi37dqkch8dlfq5aninqpzqgrr98awkb3rn4fxww1lirs", - "registry+https://github.com/rust-lang/crates.io-index#futures@0.3.30": "1c04g14bccmprwsvx2j9m2blhwrynq7vhl151lsvcv4gi0b6jp34", - "registry+https://github.com/rust-lang/crates.io-index#generic-array@0.14.7": "16lyyrzrljfq424c3n8kfwkqihlimmsg5nhshbbp48np3yjrqr45", - "registry+https://github.com/rust-lang/crates.io-index#getrandom@0.2.15": "1mzlnrb3dgyd1fb84gvw10pyr8wdqdl4ry4sr64i1s8an66pqmn4", - "registry+https://github.com/rust-lang/crates.io-index#gimli@0.28.1": "0lv23wc8rxvmjia3mcxc6hj9vkqnv1bqq0h8nzjcgf71mrxx6wa2", - "registry+https://github.com/rust-lang/crates.io-index#git2@0.18.3": "0w7gcq6v9kdlh0vcv27xrk09c1bhkarqhnp52pvnnximzrxnlbi3", - "registry+https://github.com/rust-lang/crates.io-index#glob@0.3.1": "16zca52nglanv23q5qrwd5jinw3d3as5ylya6y1pbx47vkxvrynj", - "registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.14.5": "1wa1vy1xs3mp11bn3z9dv0jricgr6a2j0zkf1g19yz3vw4il89z5", - "registry+https://github.com/rust-lang/crates.io-index#heck@0.4.1": "1a7mqsnycv5z4z5vnv1k34548jzmc0ajic7c1j8jsaspnhw5ql4m", - "registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0": "1sjmpsdl8czyh9ywl3qcsfsq9a307dg4ni2vnlwgnzzqhc4y0113", - "registry+https://github.com/rust-lang/crates.io-index#hermit-abi@0.3.9": "092hxjbjnq5fmz66grd9plxd0sh6ssg5fhgwwwqbrzgzkjwdycfj", - "registry+https://github.com/rust-lang/crates.io-index#home@0.5.9": "19grxyg35rqfd802pcc9ys1q3lafzlcjcv2pl2s5q8xpyr5kblg3", - "registry+https://github.com/rust-lang/crates.io-index#http-body-util@0.1.1": "07agldas2qgcfc05ckiarlmf9vzragbda823nqhrqrc6mjrghx84", - "registry+https://github.com/rust-lang/crates.io-index#http-body@1.0.0": "0hyn8n3iadrbwq8y0p1rl1275s4nm49bllw5wji29g4aa3dqbb0w", - "registry+https://github.com/rust-lang/crates.io-index#http@1.1.0": "0n426lmcxas6h75c2cp25m933pswlrfjz10v91vc62vib2sdvf91", - "registry+https://github.com/rust-lang/crates.io-index#httparse@1.8.0": "010rrfahm1jss3p022fqf3j3jmm72vhn4iqhykahb9ynpaag75yq", - "registry+https://github.com/rust-lang/crates.io-index#hyper-rustls@0.27.1": "0arh47qg9ln3l8q4x9wcpwmsq4j1cc08mimw3sh3g86pjs3b72wh", - "registry+https://github.com/rust-lang/crates.io-index#hyper-timeout@0.5.1": "14rpyv9zz0ncadn9qgmnjz0hiqk3nav7hglkk1a6yfy8wmhsj0rj", - "registry+https://github.com/rust-lang/crates.io-index#hyper-util@0.1.3": "1akngan7j0n2n0wd25c6952mvqbkj9gp1lcwzyxjc0d37l8yyf6a", - "registry+https://github.com/rust-lang/crates.io-index#hyper@1.3.1": "0va9pjqshsr8zc07m9h4j2821hsmd9lw9j416yisjqh8gp8msmzy", - "registry+https://github.com/rust-lang/crates.io-index#iana-time-zone-haiku@0.1.2": "17r6jmj31chn7xs9698r122mapq85mfnv98bb4pg6spm0si2f67k", - "registry+https://github.com/rust-lang/crates.io-index#iana-time-zone@0.1.60": "0hdid5xz3jznm04lysjm3vi93h3c523w0hcc3xba47jl3ddbpzz7", - "registry+https://github.com/rust-lang/crates.io-index#ident_case@1.0.1": "0fac21q6pwns8gh1hz3nbq15j8fi441ncl6w4vlnd1cmc55kiq5r", - "registry+https://github.com/rust-lang/crates.io-index#idna@0.5.0": "1xhjrcjqq0l5bpzvdgylvpkgk94panxgsirzhjnnqfdgc4a9nkb3", - "registry+https://github.com/rust-lang/crates.io-index#indexmap@2.2.6": "09hgwi2ig0wyj5rjziia76zmhgfj95k0jb4ic3iiawm4vlavg3qn", - "registry+https://github.com/rust-lang/crates.io-index#indoc@2.0.5": "1dgjk49rkmx4kjy07k4b90qb5vl89smgb5rcw02n0q0x9ligaj5j", - "registry+https://github.com/rust-lang/crates.io-index#instant@0.1.12": "0b2bx5qdlwayriidhrag8vhy10kdfimfhmb3jnjmsz2h9j1bwnvs", - "registry+https://github.com/rust-lang/crates.io-index#integer-encoding@3.0.4": "00ng7jmv6pqwqc8w1297f768bn0spwwicdr7hb40baax00r3gc4b", - "registry+https://github.com/rust-lang/crates.io-index#is_terminal_polyfill@1.70.0": "0018q5cf3rifbnzfc1w1z1xcx9c6i7xlywp2n0fw4limq1vqaizq", - "registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.11": "0nv9cqjwzr3q58qz84dcz63ggc54yhf1yqar1m858m1kfd4g3wa9", - "registry+https://github.com/rust-lang/crates.io-index#java-properties@2.0.0": "0zqi8l4q8w307mn4pv65a12jg9rzdgkdkaqynpr53i3i8i46zgrp", - "registry+https://github.com/rust-lang/crates.io-index#jobserver@0.1.31": "0vnyfxr5gm03j3lpnd1zswnyvqa40kbssy08pz2m35salfm9kc6j", - "registry+https://github.com/rust-lang/crates.io-index#js-sys@0.3.69": "0v99rz97asnzapb0jsc3jjhvxpfxr7h7qd97yqyrf9i7viimbh99", - "registry+https://github.com/rust-lang/crates.io-index#json-patch@1.4.0": "02xk7bd4bg2j73zdpqn4573nn2bvzs6942iqiz5g6225cw6xd6pc", - "registry+https://github.com/rust-lang/crates.io-index#jsonpath-rust@0.5.1": "0032bp43w6k1bl8h55m126cdf8xljj8p736f65gp3zvhpn2zxn0r", - "registry+https://github.com/rust-lang/crates.io-index#k8s-openapi@0.22.0": "0mcpy1gdxpqayc74i3x3ayh3q5bl6dzvsgmw91jq1r9sjkxill0r", - "registry+https://github.com/rust-lang/crates.io-index#kube-client@0.91.0": "1sc51ahc47iscas7wdxi3ir2jqh28ixrql4hvx5yx63kqkb4l5j7", - "registry+https://github.com/rust-lang/crates.io-index#kube-core@0.91.0": "0kzd0lamx9aymy0j6ddmpfn6saicw4vrbk99451jb213982d75r7", - "registry+https://github.com/rust-lang/crates.io-index#kube-derive@0.91.0": "0h9g2vm56mz5m6rj59xgq5bqmmc0z8bxpkd3x62qyiqcmbnkgy7w", - "registry+https://github.com/rust-lang/crates.io-index#kube-runtime@0.91.0": "0vnwdskcrrjrnr1dva44s09vzlak6606idb9aidcc8mj3ydfhqz4", - "registry+https://github.com/rust-lang/crates.io-index#kube@0.91.0": "1ykvydgqjnlvglhdw0yhc7p9cmkw73wy9iz44g7hzyzlxfkn2i16", - "registry+https://github.com/rust-lang/crates.io-index#lazy_static@1.4.0": "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2", - "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.154": "0inkwrnwzrr1kw75x944ihdajrhhldkgg4irx1n19y9gp4w36x5f", - "registry+https://github.com/rust-lang/crates.io-index#libgit2-sys@0.16.2+1.7.2": "1s149nkximw3n42925rp0jax1sf1zmf8gpcim2g9sp7fnkc2chgf", - "registry+https://github.com/rust-lang/crates.io-index#libz-sys@1.1.16": "1yd7mnw0h469rbsxfbb0r6czc4q8fabn9jkbiz99a9kbcrg3n52y", - "registry+https://github.com/rust-lang/crates.io-index#lock_api@0.4.12": "05qvxa6g27yyva25a5ghsg85apdxkvr77yhkyhapj6r8vnf8pbq7", - "registry+https://github.com/rust-lang/crates.io-index#log@0.4.21": "074hldq1q8rlzq2s2qa8f25hj4s3gpw71w64vdwzjd01a4g8rvch", - "registry+https://github.com/rust-lang/crates.io-index#matchers@0.1.0": "0n2mbk7lg2vf962c8xwzdq96yrc9i0p8dbmm4wa1nnkcp1dhfqw2", - "registry+https://github.com/rust-lang/crates.io-index#memchr@2.7.2": "07bcqxb0vx4ji0648ny5xsicjnpma95x1n07v7mi7jrhsz2l11kc", - "registry+https://github.com/rust-lang/crates.io-index#mime@0.3.17": "16hkibgvb9klh0w0jk5crr5xv90l3wlf77ggymzjmvl1818vnxv8", - "registry+https://github.com/rust-lang/crates.io-index#miniz_oxide@0.7.2": "19qlxb21s6kabgqq61mk7kd1qk2invyygj076jz6i1gj2lz1z0cx", - "registry+https://github.com/rust-lang/crates.io-index#mio@0.8.11": "034byyl0ardml5yliy1hmvx8arkmn9rv479pid794sm07ia519m4", - "registry+https://github.com/rust-lang/crates.io-index#nu-ansi-term@0.46.0": "115sywxh53p190lyw97alm14nc004qj5jm5lvdj608z84rbida3p", - "registry+https://github.com/rust-lang/crates.io-index#num-traits@0.2.19": "0h984rhdkkqd4ny9cif7y2azl3xdfb7768hb9irhpsch4q3gq787", - "registry+https://github.com/rust-lang/crates.io-index#num_cpus@1.16.0": "0hra6ihpnh06dvfvz9ipscys0xfqa9ca9hzp384d5m02ssvgqqa1", - "registry+https://github.com/rust-lang/crates.io-index#object@0.32.2": "0hc4cjwyngiy6k51hlzrlsxgv5z25vv7c2cp0ky1lckfic0259m6", - "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.19.0": "14kvw7px5z96dk4dwdm1r9cqhhy2cyj1l5n5b29mynbb8yr15nrz", - "registry+https://github.com/rust-lang/crates.io-index#openssl-macros@0.1.1": "173xxvfc63rr5ybwqwylsir0vq6xsj4kxiv4hmg4c3vscdmncj59", - "registry+https://github.com/rust-lang/crates.io-index#openssl-probe@0.1.5": "1kq18qm48rvkwgcggfkqq6pm948190czqc94d6bm2sir5hq1l0gz", - "registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.102": "18jzni7xzdcqwf9r8kp6j46abrxqn82dvc2ylf9kij7varyn75y5", - "registry+https://github.com/rust-lang/crates.io-index#openssl@0.10.64": "07vb455yh08qh3n493ssw1qsa3zg3zfj438kk2180453hq94i84m", - "registry+https://github.com/rust-lang/crates.io-index#opentelemetry-jaeger@0.21.0": "0xwjs7vnv92hghy9hsrx4aa5knysvjvknvrc73l6ls976kqmwzzv", - "registry+https://github.com/rust-lang/crates.io-index#opentelemetry-semantic-conventions@0.14.0": "04197racbkpj75fh9jnwkdznjzv6l2ljpbr8ryfk9f9gqkb5pazr", - "registry+https://github.com/rust-lang/crates.io-index#opentelemetry@0.22.0": "1gv70rx8172g9n82v9f97ircax7v4ydzyprq1nvsxwp3gfc5f3ch", - "registry+https://github.com/rust-lang/crates.io-index#opentelemetry_sdk@0.22.1": "0zkbkl29qik7cfmwbhr2ncink8fp9vi5x2qgk8gf6jg67c8wg44y", - "registry+https://github.com/rust-lang/crates.io-index#ordered-float@2.10.1": "075i108hr95pr7hy4fgxivib5pky3b6b22rywya5qyd2wmkrvwb8", - "registry+https://github.com/rust-lang/crates.io-index#ordered-float@4.2.0": "0kjqcvvbcsibbx3hnj7ag06bd9gv2zfi5ja6rgyh2kbxbh3zfvd7", - "registry+https://github.com/rust-lang/crates.io-index#overload@0.1.1": "0fdgbaqwknillagy1xq7xfgv60qdbk010diwl7s1p0qx7hb16n5i", - "registry+https://github.com/rust-lang/crates.io-index#parking@2.2.0": "1blwbkq6im1hfxp5wlbr475mw98rsyc0bbr2d5n16m38z253p0dv", - "registry+https://github.com/rust-lang/crates.io-index#parking_lot@0.12.2": "1ys2dzz6cysjmwyivwxczl1ljpcf5cj4qmhdj07d5bkc9z5g0jky", - "registry+https://github.com/rust-lang/crates.io-index#parking_lot_core@0.9.10": "1y3cf9ld9ijf7i4igwzffcn0xl16dxyn4c5bwgjck1dkgabiyh0y", - "registry+https://github.com/rust-lang/crates.io-index#pem@3.0.4": "1blgcn17wc41yxdzrxlsir5m6ds8r13ijmpsqda6lwwhwmjr6icf", - "registry+https://github.com/rust-lang/crates.io-index#percent-encoding@2.3.1": "0gi8wgx0dcy8rnv1kywdv98lwcx67hz0a0zwpib5v2i08r88y573", - "registry+https://github.com/rust-lang/crates.io-index#pest@2.7.10": "1s4fvis7h6l872g6nk17r130kcllj4c0hjvwkzd3hi196g3320an", - "registry+https://github.com/rust-lang/crates.io-index#pest_derive@2.7.10": "0n8lsk9s21dp7958p9yarbk2gsc8wg0rvdzr7cd7pjpvjf8kqa96", - "registry+https://github.com/rust-lang/crates.io-index#pest_generator@2.7.10": "11s6q0vf25lckbzak0qndzpv87ksaxy6pa9cvn2hlizvsgvjmhiy", - "registry+https://github.com/rust-lang/crates.io-index#pest_meta@2.7.10": "1kdxl164yyjsmn01lvllsll4sz3xbgy4dmkq33n63hrp5w1418np", - "registry+https://github.com/rust-lang/crates.io-index#pin-project-internal@1.1.5": "0r9r4ivwiyqf45sv6b30l1dx282lxaax2f6gl84jwa3q590s8f1g", - "registry+https://github.com/rust-lang/crates.io-index#pin-project-lite@0.2.14": "00nx3f04agwjlsmd3mc5rx5haibj2v8q9b52b0kwn63wcv4nz9mx", - "registry+https://github.com/rust-lang/crates.io-index#pin-project@1.1.5": "1cxl146x0q7lawp0m1826wsgj8mmmfs6ja8q7m6f7ff5j6vl7gxn", - "registry+https://github.com/rust-lang/crates.io-index#pin-utils@0.1.0": "117ir7vslsl2z1a7qzhws4pd01cg2d3338c47swjyvqv2n60v1wb", - "registry+https://github.com/rust-lang/crates.io-index#pkg-config@0.3.30": "1v07557dj1sa0aly9c90wsygc0i8xv5vnmyv0g94lpkvj8qb4cfj", - "registry+https://github.com/rust-lang/crates.io-index#ppv-lite86@0.2.17": "1pp6g52aw970adv3x2310n7glqnji96z0a9wiamzw89ibf0ayh2v", - "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.82": "06qk88hbf6wg4v1i961zibhjz512873jwkz3myx1z82ip6dd9lwa", - "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.36": "19xcmh445bg6simirnnd4fvkmp6v2qiwxh5f6rw4a70h76pnm9qg", - "registry+https://github.com/rust-lang/crates.io-index#rand@0.8.5": "013l6931nn7gkc23jz5mm3qdhf93jjf0fg64nz2lp4i51qd8vbrl", - "registry+https://github.com/rust-lang/crates.io-index#rand_chacha@0.3.1": "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6", - "registry+https://github.com/rust-lang/crates.io-index#rand_core@0.6.4": "0b4j2v4cb5krak1pv6kakv4sz6xcwbrmy2zckc32hsigbrwy82zc", - "registry+https://github.com/rust-lang/crates.io-index#redox_syscall@0.5.1": "0zja6y3av9z50gg1hh0vsc053941wng21r43whhk8mfb9n4m5426", - "registry+https://github.com/rust-lang/crates.io-index#regex-automata@0.1.10": "0ci1hvbzhrfby5fdpf4ganhf7kla58acad9i1ff1p34dzdrhs8vc", - "registry+https://github.com/rust-lang/crates.io-index#regex-automata@0.4.6": "1spaq7y4im7s56d1gxa2hi4hzf6dwswb1bv8xyavzya7k25kpf46", - "registry+https://github.com/rust-lang/crates.io-index#regex-syntax@0.6.29": "1qgj49vm6y3zn1hi09x91jvgkl2b1fiaq402skj83280ggfwcqpi", - "registry+https://github.com/rust-lang/crates.io-index#regex-syntax@0.8.3": "0mhzkm1pkqg6y53xv056qciazlg47pq0czqs94cn302ckvi49bdd", - "registry+https://github.com/rust-lang/crates.io-index#regex@1.10.4": "0k5sb0h2mkwf51ab0gvv3x38jp1q7wgxf63abfbhi0wwvvgxn5y1", - "registry+https://github.com/rust-lang/crates.io-index#relative-path@1.9.3": "1limlh8fzwi21g0473fqzd6fln9iqkwvzp3816bxi31pkilz6fds", - "registry+https://github.com/rust-lang/crates.io-index#ring@0.17.8": "03fwlb1ssrmfxdckvqv033pfmk01rhx9ynwi7r186dcfcp5s8zy1", - "registry+https://github.com/rust-lang/crates.io-index#rstest@0.19.0": "0c43nsxpm1b74jxc73xwg94is6bwqvfzkrr1xbqyx7j7l791clwx", - "registry+https://github.com/rust-lang/crates.io-index#rstest_macros@0.19.0": "09ackagv8kc2v4xy0s7blyg4agij9bz9pbb31l5h4rqzrirdza84", - "registry+https://github.com/rust-lang/crates.io-index#rustc-demangle@0.1.24": "07zysaafgrkzy2rjgwqdj2a8qdpsm6zv6f5pgpk9x0lm40z9b6vi", - "registry+https://github.com/rust-lang/crates.io-index#rustc_version@0.4.0": "0rpk9rcdk405xhbmgclsh4pai0svn49x35aggl4nhbkd4a2zb85z", - "registry+https://github.com/rust-lang/crates.io-index#rustls-native-certs@0.7.0": "14ip15dcr6fmjzi12lla9cpln7mmkdid4a7wsp344v4kz9gbh7wg", - "registry+https://github.com/rust-lang/crates.io-index#rustls-pemfile@2.1.2": "0ggpmk5n7p096nim2hn57facx6rwf76l55qqsj4fny37d0jkm699", - "registry+https://github.com/rust-lang/crates.io-index#rustls-pki-types@1.7.0": "0banlc9xzwqrx8n0h4bd0igmq3z5hc72rn941lf22cp3gkkraqlp", - "registry+https://github.com/rust-lang/crates.io-index#rustls-webpki@0.102.3": "1gzahmw0lqhszsczmk63bamsf5ps6wa5lsff6gjvqhfxq20ybg7k", - "registry+https://github.com/rust-lang/crates.io-index#rustls@0.23.5": "0zm97n6n7v46s4dv7bcrp0a20wj40lnbzbg530zaml8vaphcxaxg", - "registry+https://github.com/rust-lang/crates.io-index#rustversion@1.0.16": "1c6zy65i4jmhn2raxpb3p6wfbyh5hjcmi8z6d67jga0yl38p8909", - "registry+https://github.com/rust-lang/crates.io-index#ryu@1.0.18": "17xx2s8j1lln7iackzd9p0sv546vjq71i779gphjq923vjh5pjzk", - "registry+https://github.com/rust-lang/crates.io-index#schannel@0.1.23": "0d1m156bsjrws6xzzr1wyfyih9i22mb2csb5pc5kmkrvci2ibjgv", - "registry+https://github.com/rust-lang/crates.io-index#schemars@0.8.19": "1vr1dwpx900b3d824f309lmzc6cj61a1dzq1zc3nbd4wj7b7wvpw", - "registry+https://github.com/rust-lang/crates.io-index#schemars_derive@0.8.19": "0j9znm9110a8agfbf16d5fynn9chd3hxv41p8n742bg0lxx2npqq", - "registry+https://github.com/rust-lang/crates.io-index#scopeguard@1.2.0": "0jcz9sd47zlsgcnm1hdw0664krxwb5gczlif4qngj2aif8vky54l", - "registry+https://github.com/rust-lang/crates.io-index#secrecy@0.8.0": "07p9h2bpkkg61f1fzzdqqbf74kwv1gg095r1cdmjzzbcl17cblcv", - "registry+https://github.com/rust-lang/crates.io-index#security-framework-sys@2.11.0": "1mq7ykz3fi0ba55aj4afz24v9qvwdpkbjiirb197f8h5pnxkcy9i", - "registry+https://github.com/rust-lang/crates.io-index#security-framework@2.11.0": "1h0ipvv8wi9wvhad0a9w7jpmb189jng4jhfgnp6vl1lps0zp49y6", - "registry+https://github.com/rust-lang/crates.io-index#semver@1.0.23": "12wqpxfflclbq4dv8sa6gchdh92ahhwn4ci1ls22wlby3h57wsb1", - "registry+https://github.com/rust-lang/crates.io-index#serde-value@0.7.0": "0b18ngk7n4f9zmwsfdkhgsp31192smzyl5z143qmx1qi28sa78gk", - "registry+https://github.com/rust-lang/crates.io-index#serde@1.0.201": "0g1nrz2s6l36na6gdbph8k07xf9h5p3s6f0s79sy8a8nxpmiq3vq", - "registry+https://github.com/rust-lang/crates.io-index#serde_derive@1.0.201": "0r98v8h47s7zhml7gz0sl6wv82vyzh1hv27f1g0g35lp1f9hbr65", - "registry+https://github.com/rust-lang/crates.io-index#serde_derive_internals@0.29.0": "1qsl3pkk9yg57wivsxg8lsw77d94l34z70hclrczx9d3cp7023rk", - "registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.117": "1hxziifjlc0kn1cci9d4crmjc7qwnfi20lxwyj9lzca2c7m84la5", - "registry+https://github.com/rust-lang/crates.io-index#serde_yaml@0.9.34+deprecated": "0isba1fjyg3l6rxk156k600ilzr8fp7crv82rhal0rxz5qd1m2va", - "registry+https://github.com/rust-lang/crates.io-index#sha2@0.10.8": "1j1x78zk9il95w9iv46dh9wm73r6xrgj32y6lzzw7bxws9dbfgbr", - "registry+https://github.com/rust-lang/crates.io-index#sharded-slab@0.1.7": "1xipjr4nqsgw34k7a2cgj9zaasl2ds6jwn89886kww93d32a637l", - "registry+https://github.com/rust-lang/crates.io-index#signal-hook-registry@1.4.2": "1cb5akgq8ajnd5spyn587srvs4n26ryq0p78nswffwhv46sf1sd9", - "registry+https://github.com/rust-lang/crates.io-index#slab@0.4.9": "0rxvsgir0qw5lkycrqgb1cxsvxzjv9bmx73bk5y42svnzfba94lg", - "registry+https://github.com/rust-lang/crates.io-index#smallvec@1.13.2": "0rsw5samawl3wsw6glrsb127rx6sh89a8wyikicw6dkdcjd1lpiw", - "registry+https://github.com/rust-lang/crates.io-index#snafu-derive@0.6.10": "0nri7ma06g5kimpcdcm8359a55nmps5f3kcngy0j6bin7jhfy20m", - "registry+https://github.com/rust-lang/crates.io-index#snafu-derive@0.7.5": "1gzy9rzggs090zf7hfvgp4lm1glrmg9qzh796686jnq7bxk7j04r", - "registry+https://github.com/rust-lang/crates.io-index#snafu-derive@0.8.2": "0pyr3rdipfsr74hlk14q7bssls0qssr6rg0727xw5f5zvq8rkcdl", - "registry+https://github.com/rust-lang/crates.io-index#snafu@0.6.10": "19wwqxwb85pl040qk5xylj0vlznib3xzy9hcv2q0h8qv4qy2vcga", - "registry+https://github.com/rust-lang/crates.io-index#snafu@0.7.5": "1mj2j2gfbf8mm1hr02zrbrqrh2zp01f61xgkx0lpln2w0ankgpp4", - "registry+https://github.com/rust-lang/crates.io-index#snafu@0.8.2": "0bji6fqyphs041gp4zmgms6w2bbw9r1bw0i16gjzci5b913nz5vm", - "registry+https://github.com/rust-lang/crates.io-index#socket2@0.5.7": "070r941wbq76xpy039an4pyiy3rfj7mp7pvibf1rcri9njq5wc6f", - "registry+https://github.com/rust-lang/crates.io-index#spin@0.9.8": "0rvam5r0p3a6qhc18scqpvpgb3ckzyqxpgdfyjnghh8ja7byi039", - "registry+https://github.com/rust-lang/crates.io-index#strsim@0.10.0": "08s69r4rcrahwnickvi0kq49z524ci50capybln83mg6b473qivk", - "registry+https://github.com/rust-lang/crates.io-index#strsim@0.11.1": "0kzvqlw8hxqb7y598w1s0hxlnmi84sg5vsipp3yg5na5d1rvba3x", - "registry+https://github.com/rust-lang/crates.io-index#strum@0.26.2": "0aayk2m3cw9zz12qn82kqaayq43xdgdpcy9b5d1lq6d504syr32x", - "registry+https://github.com/rust-lang/crates.io-index#strum_macros@0.26.2": "0in9jvbb3g16x8fj7lf91vwzj98319hj3z8lpaaa9h42ybd5kky6", - "registry+https://github.com/rust-lang/crates.io-index#subtle@2.5.0": "1g2yjs7gffgmdvkkq0wrrh0pxds3q0dv6dhkw9cdpbib656xdkc1", - "registry+https://github.com/rust-lang/crates.io-index#syn@1.0.109": "0ds2if4600bd59wsv7jjgfkayfzy3hnazs394kz6zdkmna8l3dkj", - "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.61": "1j8zhf5mmd2l5niwhiniw5wcp9v6fbd4a61v6rbfhsm5rf6fv4y9", - "registry+https://github.com/rust-lang/crates.io-index#thiserror-impl@1.0.60": "0945q2hk1rqdzjz2zqakxbddwm4h26k5c0wdncdarhvfq10h0iz2", - "registry+https://github.com/rust-lang/crates.io-index#thiserror@1.0.60": "067wi7pb1zn9jhhk82w0ppmvjwa00nwkp4m9j77rvpaqra1r17jp", - "registry+https://github.com/rust-lang/crates.io-index#thread_local@1.1.8": "173i5lyjh011gsimk21np9jn8al18rxsrkjli20a7b8ks2xgk7lb", - "registry+https://github.com/rust-lang/crates.io-index#threadpool@1.8.1": "1amgfyzvynbm8pacniivzq9r0fh3chhs7kijic81j76l6c5ycl6h", - "registry+https://github.com/rust-lang/crates.io-index#thrift@0.17.0": "02cydaqqlp25ri19y3ixi77a7nd85fwvbfn4fp0qpakzzj2vqm3y", - "registry+https://github.com/rust-lang/crates.io-index#tinyvec@1.6.0": "0l6bl2h62a5m44jdnpn7lmj14rd44via8180i7121fvm73mmrk47", - "registry+https://github.com/rust-lang/crates.io-index#tinyvec_macros@0.1.1": "081gag86208sc3y6sdkshgw3vysm5d34p431dzw0bshz66ncng0z", - "registry+https://github.com/rust-lang/crates.io-index#tokio-macros@2.2.0": "0fwjy4vdx1h9pi4g2nml72wi0fr27b5m954p13ji9anyy8l1x2jv", - "registry+https://github.com/rust-lang/crates.io-index#tokio-rustls@0.26.0": "1m00czrmk8x7pdjnz10a3da3i1d0sdf9j9vfp5dnk5ss1q6w8yqc", - "registry+https://github.com/rust-lang/crates.io-index#tokio-stream@0.1.15": "1brpbsqyg8yfmfc4y0j9zxvc8xsxjc31d48kb0g6jvpc1fgchyi6", - "registry+https://github.com/rust-lang/crates.io-index#tokio-util@0.7.11": "1qcz30db6m8lxkl61b3nic4bim1symi636nhbb3rmi3i6xxv9xlw", - "registry+https://github.com/rust-lang/crates.io-index#tokio@1.37.0": "11v7qhvpwsf976frqgrjl1jy308bdkxq195gb38cypx7xkzypnqs", - "registry+https://github.com/rust-lang/crates.io-index#tower-http@0.5.2": "1xakj3x0anp55gjqibiwvzma5iz0w9pcjsr7qk97sx4qm4sd970y", - "registry+https://github.com/rust-lang/crates.io-index#tower-layer@0.3.2": "1l7i17k9vlssrdg4s3b0ia5jjkmmxsvv8s9y9ih0jfi8ssz8s362", - "registry+https://github.com/rust-lang/crates.io-index#tower-service@0.3.2": "0lmfzmmvid2yp2l36mbavhmqgsvzqf7r2wiwz73ml4xmwaf1rg5n", - "registry+https://github.com/rust-lang/crates.io-index#tower@0.4.13": "073wncyqav4sak1p755hf6vl66njgfc1z1g1di9rxx3cvvh9pymq", - "registry+https://github.com/rust-lang/crates.io-index#tracing-attributes@0.1.27": "1rvb5dn9z6d0xdj14r403z0af0bbaqhg02hq4jc97g5wds6lqw1l", - "registry+https://github.com/rust-lang/crates.io-index#tracing-core@0.1.32": "0m5aglin3cdwxpvbg6kz0r9r0k31j48n0kcfwsp6l49z26k3svf0", - "registry+https://github.com/rust-lang/crates.io-index#tracing-log@0.2.0": "1hs77z026k730ij1a9dhahzrl0s073gfa2hm5p0fbl0b80gmz1gf", - "registry+https://github.com/rust-lang/crates.io-index#tracing-opentelemetry@0.23.0": "1112kmckw0qwyckhbwarb230n4ldmfgzixr9jagbfjmy3fx19gm9", - "registry+https://github.com/rust-lang/crates.io-index#tracing-subscriber@0.3.18": "12vs1bwk4kig1l2qqjbbn2nm5amwiqmkcmnznylzmnfvjy6083xd", - "registry+https://github.com/rust-lang/crates.io-index#tracing@0.1.40": "1vv48dac9zgj9650pg2b4d0j3w6f3x9gbggf43scq5hrlysklln3", - "registry+https://github.com/rust-lang/crates.io-index#try-lock@0.2.5": "0jqijrrvm1pyq34zn1jmy2vihd4jcrjlvsh4alkjahhssjnsn8g4", - "registry+https://github.com/rust-lang/crates.io-index#typenum@1.17.0": "09dqxv69m9lj9zvv6xw5vxaqx15ps0vxyy5myg33i0kbqvq0pzs2", - "registry+https://github.com/rust-lang/crates.io-index#ucd-trie@0.1.6": "1ff4yfksirqs37ybin9aw71aa5gva00hw7jdxbw8w668zy964r7d", - "registry+https://github.com/rust-lang/crates.io-index#unicode-bidi@0.3.15": "0xcdxm7h0ydyprwpcbh436rbs6s6lph7f3gr527lzgv6lw053y88", - "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.12": "0jzf1znfpb2gx8nr8mvmyqs1crnv79l57nxnbiszc7xf7ynbjm1k", - "registry+https://github.com/rust-lang/crates.io-index#unicode-normalization@0.1.23": "1x81a50h2zxigj74b9bqjsirxxbyhmis54kg600xj213vf31cvd5", - "registry+https://github.com/rust-lang/crates.io-index#unicode-xid@0.2.4": "131dfzf7d8fsr1ivch34x42c2d1ik5ig3g78brxncnn0r1sdyqpr", - "registry+https://github.com/rust-lang/crates.io-index#unsafe-libyaml@0.2.11": "0qdq69ffl3v5pzx9kzxbghzn0fzn266i1xn70y88maybz9csqfk7", - "registry+https://github.com/rust-lang/crates.io-index#untrusted@0.9.0": "1ha7ib98vkc538x0z60gfn0fc5whqdd85mb87dvisdcaifi6vjwf", - "registry+https://github.com/rust-lang/crates.io-index#url@2.5.0": "0cs65961miawncdg2z20171w0vqrmraswv2ihdpd8lxp7cp31rii", - "registry+https://github.com/rust-lang/crates.io-index#urlencoding@2.1.3": "1nj99jp37k47n0hvaz5fvz7z6jd0sb4ppvfy3nphr1zbnyixpy6s", - "registry+https://github.com/rust-lang/crates.io-index#utf8parse@0.2.1": "02ip1a0az0qmc2786vxk2nqwsgcwf17d3a38fkf0q7hrmwh9c6vi", - "registry+https://github.com/rust-lang/crates.io-index#valuable@0.1.0": "0v9gp3nkjbl30z0fd56d8mx7w1csk86wwjhfjhr400wh9mfpw2w3", - "registry+https://github.com/rust-lang/crates.io-index#vcpkg@0.2.15": "09i4nf5y8lig6xgj3f7fyrvzd3nlaw4znrihw8psidvv5yk4xkdc", - "registry+https://github.com/rust-lang/crates.io-index#version_check@0.9.4": "0gs8grwdlgh0xq660d7wr80x14vxbizmd8dbp29p2pdncx8lp1s9", - "registry+https://github.com/rust-lang/crates.io-index#want@0.3.1": "03hbfrnvqqdchb5kgxyavb9jabwza0dmh2vw5kg0dq8rxl57d9xz", - "registry+https://github.com/rust-lang/crates.io-index#wasi@0.11.0+wasi-snapshot-preview1": "08z4hxwkpdpalxjps1ai9y7ihin26y9f476i53dv98v45gkqg3cw", - "registry+https://github.com/rust-lang/crates.io-index#wasm-bindgen-backend@0.2.92": "1nj7wxbi49f0rw9d44rjzms26xlw6r76b2mrggx8jfbdjrxphkb1", - "registry+https://github.com/rust-lang/crates.io-index#wasm-bindgen-macro-support@0.2.92": "1dqv2xs8zcyw4kjgzj84bknp2h76phmsb3n7j6hn396h4ssifkz9", - "registry+https://github.com/rust-lang/crates.io-index#wasm-bindgen-macro@0.2.92": "09npa1srjjabd6nfph5yc03jb26sycjlxhy0c2a1pdrpx4yq5y51", - "registry+https://github.com/rust-lang/crates.io-index#wasm-bindgen-shared@0.2.92": "15kyavsrna2cvy30kg03va257fraf9x00ny554vxngvpyaa0q6dg", - "registry+https://github.com/rust-lang/crates.io-index#wasm-bindgen@0.2.92": "1a4mcw13nsk3fr8fxjzf9kk1wj88xkfsmnm0pjraw01ryqfm7qjb", - "registry+https://github.com/rust-lang/crates.io-index#web-time@1.1.0": "1fx05yqx83dhx628wb70fyy10yjfq1jpl20qfqhdkymi13rq0ras", - "registry+https://github.com/rust-lang/crates.io-index#winapi-i686-pc-windows-gnu@0.4.0": "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc", - "registry+https://github.com/rust-lang/crates.io-index#winapi-x86_64-pc-windows-gnu@0.4.0": "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki", - "registry+https://github.com/rust-lang/crates.io-index#winapi@0.3.9": "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw", - "registry+https://github.com/rust-lang/crates.io-index#windows-core@0.52.0": "1nc3qv7sy24x0nlnb32f7alzpd6f72l4p24vl65vydbyil669ark", - "registry+https://github.com/rust-lang/crates.io-index#windows-sys@0.48.0": "1aan23v5gs7gya1lc46hqn9mdh8yph3fhxmhxlw36pn6pqc28zb7", - "registry+https://github.com/rust-lang/crates.io-index#windows-sys@0.52.0": "0gd3v4ji88490zgb6b5mq5zgbvwv7zx1ibn8v3x83rwcdbryaar8", - "registry+https://github.com/rust-lang/crates.io-index#windows-targets@0.48.5": "034ljxqshifs1lan89xwpcy1hp0lhdh4b5n0d2z4fwjx2piacbws", - "registry+https://github.com/rust-lang/crates.io-index#windows-targets@0.52.5": "1sz7jrnkygmmlj1ia8fk85wbyil450kq5qkh5qh9sh2rcnj161vg", - "registry+https://github.com/rust-lang/crates.io-index#windows_aarch64_gnullvm@0.48.5": "1n05v7qblg1ci3i567inc7xrkmywczxrs1z3lj3rkkxw18py6f1b", - "registry+https://github.com/rust-lang/crates.io-index#windows_aarch64_gnullvm@0.52.5": "0qrjimbj67nnyn7zqy15mzzmqg0mn5gsr2yciqjxm3cb3vbyx23h", - "registry+https://github.com/rust-lang/crates.io-index#windows_aarch64_msvc@0.48.5": "1g5l4ry968p73g6bg6jgyvy9lb8fyhcs54067yzxpcpkf44k2dfw", - "registry+https://github.com/rust-lang/crates.io-index#windows_aarch64_msvc@0.52.5": "1dmga8kqlmln2ibckk6mxc9n59vdg8ziqa2zr8awcl720hazv1cr", - "registry+https://github.com/rust-lang/crates.io-index#windows_i686_gnu@0.48.5": "0gklnglwd9ilqx7ac3cn8hbhkraqisd0n83jxzf9837nvvkiand7", - "registry+https://github.com/rust-lang/crates.io-index#windows_i686_gnu@0.52.5": "0w4np3l6qwlra9s2xpflqrs60qk1pz6ahhn91rr74lvdy4y0gfl8", - "registry+https://github.com/rust-lang/crates.io-index#windows_i686_gnullvm@0.52.5": "1s9f4gff0cixd86mw3n63rpmsm4pmr4ffndl6s7qa2h35492dx47", - "registry+https://github.com/rust-lang/crates.io-index#windows_i686_msvc@0.48.5": "01m4rik437dl9rdf0ndnm2syh10hizvq0dajdkv2fjqcywrw4mcg", - "registry+https://github.com/rust-lang/crates.io-index#windows_i686_msvc@0.52.5": "1gw7fklxywgpnwbwg43alb4hm0qjmx72hqrlwy5nanrxs7rjng6v", - "registry+https://github.com/rust-lang/crates.io-index#windows_x86_64_gnu@0.48.5": "13kiqqcvz2vnyxzydjh73hwgigsdr2z1xpzx313kxll34nyhmm2k", - "registry+https://github.com/rust-lang/crates.io-index#windows_x86_64_gnu@0.52.5": "1n8p2mcf3lw6300k77a0knksssmgwb9hynl793mhkzyydgvlchjf", - "registry+https://github.com/rust-lang/crates.io-index#windows_x86_64_gnullvm@0.48.5": "1k24810wfbgz8k48c2yknqjmiigmql6kk3knmddkv8k8g1v54yqb", - "registry+https://github.com/rust-lang/crates.io-index#windows_x86_64_gnullvm@0.52.5": "15n56jrh4s5bz66zimavr1rmcaw6wa306myrvmbc6rydhbj9h8l5", - "registry+https://github.com/rust-lang/crates.io-index#windows_x86_64_msvc@0.48.5": "0f4mdp895kkjh9zv8dxvn4pc10xr7839lf5pa9l0193i2pkgr57d", - "registry+https://github.com/rust-lang/crates.io-index#windows_x86_64_msvc@0.52.5": "1w1bn24ap8dp9i85s8mlg8cim2bl2368bd6qyvm0xzqvzmdpxi5y", - "registry+https://github.com/rust-lang/crates.io-index#xml-rs@0.8.20": "14s1czpj83zhgr4pizxa4j07layw9wmlqhkq0k3wz5q5ixwph6br", - "registry+https://github.com/rust-lang/crates.io-index#zerocopy-derive@0.7.34": "0fqvglw01w3hp7xj9gdk1800x9j7v58s9w8ijiyiz2a7krb39s8m", - "registry+https://github.com/rust-lang/crates.io-index#zerocopy@0.7.34": "11xhrwixm78m6ca1jdxf584wdwvpgg7q00vg21fhwl0psvyf71xf", - "registry+https://github.com/rust-lang/crates.io-index#zeroize@1.7.0": "0bfvby7k9pdp6623p98yz2irqnamcyzpn7zh20nqmdn68b0lwnsj" + "git+https://github.com/stackabletech/product-config.git?tag=0.6.0#product-config@0.6.0": "1ixc2x7540sxdmc92hqdcwm24rj8i1ivjsvwk2d57pdsq03j2x41" } \ No newline at end of file diff --git a/nix/sources.json b/nix/sources.json index 3496c5a8..e367f0bf 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -5,10 +5,10 @@ "homepage": null, "owner": "stackabletech", "repo": "beku.py", - "rev": "215bc8b90989d6819ee65c99c6f64e9312fbb8eb", - "sha256": "14idkbfvx4y2aq4gyzib2m2kparhcf5r9c6zd2wv9f9wf6xyzhdx", + "rev": "f5ef0199b0c3c8aa277a275a9d3c624eb5804f27", + "sha256": "1yx3ypn312p27d6zfnqcfnkarj9hirmm6gij9345kgnx5p2xfb1d", "type": "tarball", - "url": "https://github.com/stackabletech/beku.py/archive/215bc8b90989d6819ee65c99c6f64e9312fbb8eb.tar.gz", + "url": "https://github.com/stackabletech/beku.py/archive/f5ef0199b0c3c8aa277a275a9d3c624eb5804f27.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "crate2nix": { @@ -29,10 +29,10 @@ "homepage": "", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ad7efee13e0d216bf29992311536fce1d3eefbef", - "sha256": "0mw8wjpllwgajwakl2rh5fhbhfsr9vdlzf393rx4y1b6072pqjrr", + "rev": "af8b9db5c00f1a8e4b83578acc578ff7d823b786", + "sha256": "0kd64p8i1gmgdjfdag2fvj4gfcsk0wa3h7w7j5l6b2yxr9plnhpm", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/ad7efee13e0d216bf29992311536fce1d3eefbef.tar.gz", + "url": "https://github.com/NixOS/nixpkgs/archive/af8b9db5c00f1a8e4b83578acc578ff7d823b786.tar.gz", "url_template": "https://github.com///archive/.tar.gz" } }