module(name = "topolvm-stratis") git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") ## hermetic_cc_toolchain bazel_dep(name = "hermetic_cc_toolchain", version = "4.0.1") toolchains = use_extension("@hermetic_cc_toolchain//toolchain:ext.bzl", "toolchains") use_repo(toolchains, "zig_sdk") register_toolchains( "@zig_sdk//toolchain:linux_amd64_gnu.2.35", "@zig_sdk//toolchain:linux_arm64_gnu.2.35", ) ## rules_rust bazel_dep(name = "rules_rust", version = "0.67.0") rust = use_extension("@rules_rust//rust:extensions.bzl", "rust") rust.toolchain( extra_target_triples = [ "aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu", ], ) use_repo(rust, "rust_toolchains") register_toolchains("@rust_toolchains//:all") crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate") crate.from_cargo( name = "crates", cargo_lockfile = "//:Cargo.lock", manifests = ["//:Cargo.toml"], ) use_repo(crate, "crates") ## protobuf # 'toolchains_protoc' MUST come before protobuf proper. bazel_dep(name = "toolchains_protoc", version = "0.6.0") protoc = use_extension("@toolchains_protoc//protoc:extensions.bzl", "protoc") use_repo(protoc, "toolchains_protoc_hub") register_toolchains("@toolchains_protoc_hub//:all") bazel_dep(name = "protobuf", version = "33.1", repo_name = "com_google_protobuf") bazel_dep(name = "rules_proto", version = "7.1.0") ## rules_oci bazel_dep(name = "rules_oci", version = "2.2.6") oci = use_extension("@rules_oci//oci:extensions.bzl", "oci") oci.pull( name = "topolvm-oci", digest = "sha256:70548dbe0c6addcccf79a557f29e95db2e6dc2cba2102988c91f30086004d0fc", image = "ghcr.io/topolvm/topolvm-with-sidecar", platforms = [ "linux/amd64", "linux/arm64", ], tag = "0.41.1", ) use_repo(oci, "topolvm-oci") ## bazel_skylib bazel_dep(name = "bazel_skylib", version = "1.8.2") ## aspect_bazel_lib bazel_dep(name = "aspect_bazel_lib", version = "2.21.2") bazel_lib_toolchains = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "toolchains") use_repo(bazel_lib_toolchains, "bsd_tar_toolchains") ## rules_python bazel_dep(name = "rules_python", version = "1.7.0") python = use_extension("@rules_python//python/extensions:python.bzl", "python") python.toolchain(python_version = "3.13") ## aspect_rules_py bazel_dep(name = "aspect_rules_py", version = "1.6.6") ## rules_pycross bazel_dep(name = "rules_pycross", version = "0.8.0") pycross = use_extension("@rules_pycross//pycross/extensions:pycross.bzl", "pycross") pycross.configure_environments( # Workaround for: https://github.com/jvolkman/rules_pycross/issues/193 platforms = [ "aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu", ], ) lock_import = use_extension("@rules_pycross//pycross/extensions:lock_import.bzl", "lock_import") lock_import.import_uv( default_build_dependencies = ["setuptools"], lock_file = "//:uv.lock", project_file = "//:pyproject.toml", repo = "uv_deps", ) # cloudcoil[kubernetes] depends on this models package, which in turn depends # back on cloudcoil, so we need to break the cycle. lock_import.package( name = "cloudcoil-models-kubernetes", ignore_dependencies = ["cloudcoil"], repo = "uv_deps", ) lock_repos = use_extension("@rules_pycross//pycross/extensions:lock_repos.bzl", "lock_repos") use_repo(lock_repos, "uv_deps") ## rules_pyvenv git_repository( name = "rules_pyvenv", commit = "7b3e110e361ba13c972dd74eb17420a81da36f1f", remote = "https://github.com/cedarai/rules_pyvenv", ) ## (We need these CRDs for the tests.) git_repository( name = "external_snapshotter", build_file_content = """ filegroup( name = "snapshot_crds", srcs = glob(["client/config/crd/snapshot.*.yaml"]), visibility = ["//visibility:public"], ) """, # NOTE: this comment here is parsed by updatecli and must be left as-is. commit = "f21cb02763e7cd6a7fc84846f106b83119b5371d", # external-snapshotter v8.4.0 remote = "https://github.com/kubernetes-csi/external-snapshotter", )