From d55272d66f3e9bd19ccb39b9958b3f8fb19fed16 Mon Sep 17 00:00:00 2001 From: Siegfried Weber Date: Tue, 11 Jan 2022 09:00:35 +0100 Subject: [PATCH 01/31] Remove everything --- .dockerignore | 9 - .github/dependabot.yml | 29 - .github/pull_request_template.md | 14 - .github/workflows/daily_security.yml | 19 - .github/workflows/pr_generate_manifests.yml | 39 - .github/workflows/publish_main_artifacts.yml | 60 - .github/workflows/publish_pr_artifacts.yml | 62 - .../workflows/publish_release_artifacts.yml | 56 - .github/workflows/rust.yml | 123 - .gitignore | 11 - CHANGELOG.md | 21 - Cargo.lock | 2265 ----------------- Cargo.toml | 4 - LICENSE | 43 - Makefile | 62 - README.adoc | 5 - bors.toml | 11 - deny.toml | 63 - deploy/config-spec/properties.yaml | 151 -- deploy/crd/hbasecluster.crd.yaml | 429 ---- deploy/crd/restart.crd.yaml | 61 - deploy/crd/start.crd.yaml | 61 - deploy/crd/stop.crd.yaml | 61 - deploy/helm/chart_testing.yaml | 5 - deploy/helm/hbase-operator/.helmignore | 28 - deploy/helm/hbase-operator/Chart.yaml | 28 - deploy/helm/hbase-operator/README.md | 42 - .../hbase-operator/configs/properties.yaml | 151 -- deploy/helm/hbase-operator/crds/crds.yaml | 620 ----- .../hbase-operator/templates/_helpers.tpl | 76 - .../hbase-operator/templates/configmap.yaml | 12 - .../hbase-operator/templates/deployment.yaml | 61 - .../helm/hbase-operator/templates/roles.yaml | 106 - .../templates/serviceaccount.yaml | 32 - deploy/helm/hbase-operator/values.yaml | 55 - deploy/manifests/Kustomization | 11 - deploy/manifests/configmap.yaml | 166 -- deploy/manifests/crds.yaml | 621 ----- deploy/manifests/deployment.yaml | 42 - deploy/manifests/roles.yaml | 107 - deploy/manifests/serviceaccount.yaml | 31 - docker/Dockerfile | 24 - docs/antora.yml | 5 - docs/modules/ROOT/nav.adoc | 5 - docs/modules/ROOT/pages/building.adoc | 6 - docs/modules/ROOT/pages/commandline_args.adoc | 11 - docs/modules/ROOT/pages/configuration.adoc | 8 - docs/modules/ROOT/pages/index.adoc | 10 - docs/modules/ROOT/pages/installation.adoc | 95 - docs/modules/ROOT/pages/usage.adoc | 54 - examples/restart.command.example.yaml | 7 - examples/simple-hbase-cluster.yaml | 33 - examples/start.command.example.yaml | 7 - examples/stop.command.example.yaml | 7 - packaging/buildrpm.sh | 99 - packaging/copy_assets.py | 83 - .../debian/stackable-hbase-operator.service | 13 - .../system/stackable-hbase-operator.service | 13 - .../rpm/SPECS/stackable-hbase-operator.spec | 62 - python/cargo-version.py | 177 -- python/requirements.txt | 2 - rust/crd/Cargo.toml | 32 - rust/crd/src/commands.rs | 145 -- rust/crd/src/error.rs | 33 - rust/crd/src/lib.rs | 387 --- rust/operator-binary/Cargo.toml | 40 - rust/operator-binary/build.rs | 14 - .../src/stackable-hbase-operator.rs | 96 - rust/operator/Cargo.toml | 26 - rust/operator/src/error.rs | 81 - rust/operator/src/lib.rs | 793 ------ scripts/generate-manifests.sh | 22 - 72 files changed, 8243 deletions(-) delete mode 100644 .dockerignore delete mode 100644 .github/dependabot.yml delete mode 100644 .github/pull_request_template.md delete mode 100644 .github/workflows/daily_security.yml delete mode 100644 .github/workflows/pr_generate_manifests.yml delete mode 100644 .github/workflows/publish_main_artifacts.yml delete mode 100644 .github/workflows/publish_pr_artifacts.yml delete mode 100644 .github/workflows/publish_release_artifacts.yml delete mode 100644 .github/workflows/rust.yml delete mode 100644 .gitignore delete mode 100644 CHANGELOG.md delete mode 100644 Cargo.lock delete mode 100644 Cargo.toml delete mode 100644 LICENSE delete mode 100644 Makefile delete mode 100644 README.adoc delete mode 100644 bors.toml delete mode 100644 deny.toml delete mode 100644 deploy/config-spec/properties.yaml delete mode 100644 deploy/crd/hbasecluster.crd.yaml delete mode 100644 deploy/crd/restart.crd.yaml delete mode 100644 deploy/crd/start.crd.yaml delete mode 100644 deploy/crd/stop.crd.yaml delete mode 100644 deploy/helm/chart_testing.yaml delete mode 100644 deploy/helm/hbase-operator/.helmignore delete mode 100644 deploy/helm/hbase-operator/Chart.yaml delete mode 100644 deploy/helm/hbase-operator/README.md delete mode 100644 deploy/helm/hbase-operator/configs/properties.yaml delete mode 100644 deploy/helm/hbase-operator/crds/crds.yaml delete mode 100644 deploy/helm/hbase-operator/templates/_helpers.tpl delete mode 100644 deploy/helm/hbase-operator/templates/configmap.yaml delete mode 100644 deploy/helm/hbase-operator/templates/deployment.yaml delete mode 100644 deploy/helm/hbase-operator/templates/roles.yaml delete mode 100644 deploy/helm/hbase-operator/templates/serviceaccount.yaml delete mode 100644 deploy/helm/hbase-operator/values.yaml delete mode 100644 deploy/manifests/Kustomization delete mode 100644 deploy/manifests/configmap.yaml delete mode 100644 deploy/manifests/crds.yaml delete mode 100644 deploy/manifests/deployment.yaml delete mode 100644 deploy/manifests/roles.yaml delete mode 100644 deploy/manifests/serviceaccount.yaml delete mode 100644 docker/Dockerfile delete mode 100644 docs/antora.yml delete mode 100644 docs/modules/ROOT/nav.adoc delete mode 100644 docs/modules/ROOT/pages/building.adoc delete mode 100644 docs/modules/ROOT/pages/commandline_args.adoc delete mode 100644 docs/modules/ROOT/pages/configuration.adoc delete mode 100644 docs/modules/ROOT/pages/index.adoc delete mode 100644 docs/modules/ROOT/pages/installation.adoc delete mode 100644 docs/modules/ROOT/pages/usage.adoc delete mode 100644 examples/restart.command.example.yaml delete mode 100644 examples/simple-hbase-cluster.yaml delete mode 100644 examples/start.command.example.yaml delete mode 100644 examples/stop.command.example.yaml delete mode 100755 packaging/buildrpm.sh delete mode 100755 packaging/copy_assets.py delete mode 100644 packaging/debian/stackable-hbase-operator.service delete mode 100644 packaging/rpm/SOURCES/stackable-hbase-operator-VERSION/usr/lib/systemd/system/stackable-hbase-operator.service delete mode 100644 packaging/rpm/SPECS/stackable-hbase-operator.spec delete mode 100755 python/cargo-version.py delete mode 100644 python/requirements.txt delete mode 100644 rust/crd/Cargo.toml delete mode 100644 rust/crd/src/commands.rs delete mode 100644 rust/crd/src/error.rs delete mode 100644 rust/crd/src/lib.rs delete mode 100644 rust/operator-binary/Cargo.toml delete mode 100644 rust/operator-binary/build.rs delete mode 100644 rust/operator-binary/src/stackable-hbase-operator.rs delete mode 100644 rust/operator/Cargo.toml delete mode 100644 rust/operator/src/error.rs delete mode 100644 rust/operator/src/lib.rs delete mode 100755 scripts/generate-manifests.sh diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 38ad1963..00000000 --- a/.dockerignore +++ /dev/null @@ -1,9 +0,0 @@ -debug/ -target/ -**/*.rs.bk - -.idea/ -*.iws - -# We do NOT want to ignore .git because we use the `built` crate to gather the current git commit hash at built time -# This means we need the .git directory in our Docker image, it will be thrown away and won't be included in the final image diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 65d54aa7..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,29 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - labels: - - "type/dependencies" - reviewers: - - "stackabletech/developers" - - - package-ecosystem: "cargo" - directory: "/" - schedule: - interval: "weekly" - labels: - - "type/dependencies" - reviewers: - - "stackabletech/rust-developers" - ignore: - # We never want to be notified about a kube-rs update. - # It often contains breaking changes so it has to be updated manually anyway - # and it needs to be updated together with kube-runtime, kube-derive etc. - - dependency-name: "kube*" - - dependency-name: "k8s-openapi" diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 14b10276..00000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,14 +0,0 @@ -## Description - -*Please add a description here. This will become the commit message of the merge request later.* - - - -## Review Checklist -- [ ] Code contains useful comments -- [ ] (Integration-)Test cases added (or not applicable) -- [ ] Documentation added (or not applicable) -- [ ] Changelog updated (or not applicable) -- [ ] Cargo.toml only contains references to git tags (not specific commits or branches) - -Once the review is done, comment `bors r+` (or `bors merge`) to merge. [Further information](https://bors.tech/documentation/getting-started/#reviewing-pull-requests) diff --git a/.github/workflows/daily_security.yml b/.github/workflows/daily_security.yml deleted file mode 100644 index f4627093..00000000 --- a/.github/workflows/daily_security.yml +++ /dev/null @@ -1,19 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -name: Security audit - -on: - schedule: - - cron: '0 0 * * *' - workflow_dispatch: - -jobs: - audit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2.4.0 - - uses: actions-rs/audit-check@v1.2.0 - with: - token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/pr_generate_manifests.yml b/.github/workflows/pr_generate_manifests.yml deleted file mode 100644 index c480eedf..00000000 --- a/.github/workflows/pr_generate_manifests.yml +++ /dev/null @@ -1,39 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -name: Update Manifest files - -on: - pull_request: - -jobs: - manifests: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - token: ${{ secrets.STACKY_MC_STACKFACE_TOKEN }} - - name: Set up Helm - uses: azure/setup-helm@v1 - with: - version: v3.6.2 - - name: update manifests - env: - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - if: env.NEXUS_PASSWORD != null - run: make generate-manifests - - name: Add & Commit - env: - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - if: env.NEXUS_PASSWORD != null - uses: EndBug/add-and-commit@v7 - with: - default_author: user_info - author_name: Stacky McStackface - author_email: stackable-bot@users.noreply.github.com - pathspec_error_handling: exitImmediately - pull: NO-PULL - add: 'deploy' - message: 'Github Actions: Generated k8s manifest files' diff --git a/.github/workflows/publish_main_artifacts.yml b/.github/workflows/publish_main_artifacts.yml deleted file mode 100644 index 44362060..00000000 --- a/.github/workflows/publish_main_artifacts.yml +++ /dev/null @@ -1,60 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -name: Publish nightly artifacts from main - -on: - push: - branches: - - main - schedule: - - cron: '30 4 * * *' - workflow_dispatch: - - -env: - PRODUCT_NAME: hbase - CARGO_TERM_COLOR: always - CARGO_INCREMENTAL: '0' - CARGO_PROFILE_DEV_DEBUG: '0' - RUSTFLAGS: "-D warnings -W rust-2021-compatibility" - REPO_HELM_DEV_URL: https://repo.stackable.tech/repository/helm-dev - CHART_TESTING_CONFIG: deploy/helm/chart-testing.yaml - -jobs: - helm: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Set up Helm - uses: azure/setup-helm@v1 - with: - version: v3.6.2 - - - name: Build Docker image - env: - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - if: env.NEXUS_PASSWORD != null - run: make docker - - - name: Compile chart - run: make compile-chart - - - name: Package Chart - run: mkdir -p target/helm && helm package --destination target/helm deploy/helm/${{ env.PRODUCT_NAME }}-operator - - name: Publish Chart - env: - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - if: env.NEXUS_PASSWORD != null - run: >- - /usr/bin/curl - --fail - -u 'github:${{ secrets.NEXUS_PASSWORD }}' - --upload-file "./$(find target/helm/ -name *.tgz)" - "${{ env.REPO_HELM_DEV_URL }}/" - diff --git a/.github/workflows/publish_pr_artifacts.yml b/.github/workflows/publish_pr_artifacts.yml deleted file mode 100644 index 18e35cf9..00000000 --- a/.github/workflows/publish_pr_artifacts.yml +++ /dev/null @@ -1,62 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -name: Publish pull-requests artifacts to the dev repository - -on: - pull_request: - -env: - PRODUCT_NAME: hbase - CARGO_TERM_COLOR: always - CARGO_INCREMENTAL: '0' - CARGO_PROFILE_DEV_DEBUG: '0' - RUSTFLAGS: "-D warnings -W rust-2021-compatibility" - REPO_HELM_DEV_URL: https://repo.stackable.tech/repository/helm-dev - CHART_TESTING_CONFIG: deploy/helm/chart-testing.yaml - -jobs: - helm: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Set up Helm - uses: azure/setup-helm@v1 - with: - version: v3.6.2 - - - name: Set up Python and update cargo version. - uses: actions/setup-python@v2 - with: - python-version: '3.x' - - - run: pip install -r ./python/requirements.txt - - run: python ./python/cargo-version.py -m mr${{ github.event.number }} - - - name: Build Docker image - env: - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - if: env.NEXUS_PASSWORD != null - run: make docker - - - name: Compile chart - run: make compile-chart - - - name: Package Chart - run: mkdir -p target/helm && helm package --destination target/helm deploy/helm/${{ env.PRODUCT_NAME }}-operator - - name: Publish Chart - env: - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - if: env.NEXUS_PASSWORD != null - run: >- - /usr/bin/curl - --fail - -u 'github:${{ secrets.NEXUS_PASSWORD }}' - --upload-file "./$(find target/helm/ -name *.tgz)" - "${{ env.REPO_HELM_DEV_URL }}/" - diff --git a/.github/workflows/publish_release_artifacts.yml b/.github/workflows/publish_release_artifacts.yml deleted file mode 100644 index 4957cf65..00000000 --- a/.github/workflows/publish_release_artifacts.yml +++ /dev/null @@ -1,56 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -name: Publish-Release-Artifacts - -on: - push: - tags: - - "*" - -env: - PRODUCT_NAME: hbase - CARGO_TERM_COLOR: always - CARGO_INCREMENTAL: '0' - CARGO_PROFILE_DEV_DEBUG: '0' - RUSTFLAGS: "-D warnings -W rust-2021-compatibility" - REPO_HELM_STABLE_URL: https://repo.stackable.tech/repository/helm-stable - CT_CONFIG: deploy/helm/ct.yaml - -jobs: - helm: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Set up Helm - uses: azure/setup-helm@v1 - with: - version: v3.6.2 - - - name: Build Docker image - env: - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - if: env.NEXUS_PASSWORD != null - run: make docker-release - - - name: Compile chart - run: make compile-chart - - - name: Package Chart - run: mkdir -p target/helm && helm package --destination target/helm deploy/helm/${{ env.PRODUCT_NAME }}-operator - - - name: Publish Chart - env: - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - if: env.NEXUS_PASSWORD != null - run: >- - /usr/bin/curl - --fail - -u 'github:${{ secrets.NEXUS_PASSWORD }}' - --upload-file "./$(find target/helm/ -name *.tgz)" - "${{ env.REPO_HELM_STABLE_URL }}/" diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml deleted file mode 100644 index 08f620c9..00000000 --- a/.github/workflows/rust.yml +++ /dev/null @@ -1,123 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -name: Rust - -on: - push: - branches: - - main - - staging - - trying - pull_request: - -env: - CARGO_TERM_COLOR: always - CARGO_INCREMENTAL: '0' - CARGO_PROFILE_DEV_DEBUG: '0' - RUSTFLAGS: "-D warnings" - -jobs: - - test: - name: Run tests - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2.4.0 - - uses: actions-rs/toolchain@v1.0.7 - with: - profile: minimal - toolchain: stable - override: true - - uses: Swatinem/rust-cache@v1.3.0 - with: - key: test - - uses: actions-rs/cargo@v1.0.3 - with: - command: test - - rustfmt: - name: Run rustfmt - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2.4.0 - - uses: actions-rs/toolchain@v1.0.7 - with: - profile: minimal - toolchain: stable - components: rustfmt - override: true - - uses: actions-rs/cargo@v1.0.3 - with: - command: fmt - args: --all -- --check - - doc: - name: Run rustdoc - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2.4.0 - - uses: actions-rs/toolchain@v1.0.7 - with: - profile: minimal - toolchain: stable - components: rustfmt - override: true - - uses: Swatinem/rust-cache@v1.3.0 - with: - key: doc - - uses: actions-rs/cargo@v1.0.3 - with: - command: doc - args: --document-private-items - - clippy: - name: Run clippy - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2.4.0 - - uses: actions-rs/toolchain@v1.0.7 - with: - profile: minimal - toolchain: stable - components: clippy - override: true - - uses: Swatinem/rust-cache@v1.3.0 - with: - key: clippy - # We need this due to: https://github.com/actions-rs/clippy-check/issues/2 - - name: Check workflow permissions - id: check_permissions - uses: scherermichael-oss/action-has-permission@1.0.6 - with: - required-permission: write - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Run clippy action to produce annotations - uses: actions-rs/clippy-check@v1.0.7 - if: steps.check_permissions.outputs.has-permission - with: - args: --all-targets -- -D warnings - token: ${{ secrets.GITHUB_TOKEN }} - - name: Run clippy manually without annotations - if: ${{ !steps.check_permissions.outputs.has-permission }} - run: cargo clippy --all-targets -- -D warnings - - cargo-deny: - name: Run cargo deny - runs-on: ubuntu-latest - strategy: - matrix: - checks: - - advisories - - bans licenses sources - - # Prevent sudden announcement of a new advisory from failing ci: - continue-on-error: ${{ matrix.checks == 'advisories' }} - - steps: - - uses: actions/checkout@v2.4.0 - - uses: EmbarkStudios/cargo-deny-action@v1.2.6 - with: - command: check ${{ matrix.checks }} diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 9734373f..00000000 --- a/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -debug/ -target/ -**/*.rs.bk - -.idea/ -*.iws -*.iml - -*.tgz -deploy/helm/hbase-operator/configs -deploy/helm/hbase-operator/templates/crds.yaml \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index e6af33ac..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,21 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -## [Unreleased] - -### Changed -- `operator-rs` `0.3.0` → `0.4.0` ([#25]). -- `stackable-hdfs-crd` `0.1.0` → `0.2.0` ([#25]). -- `stackable-zookeeper-crd` `0.4.1` → `0.5.0` ([#25]). -- Adapted pod image and container command to docker image ([#25]). -- Adapted documentation to represent new workflow with docker images ([#25]). - -[#25]: https://github.com/stackabletech/hbase-operator/pull/25 - -## [0.1.0] - 2021-10-28 - -### Changed -- `operator-rs`: `0.3.0` ([#18]) - -[#18]: https://github.com/stackabletech/hdfs-operator/pull/18 diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index d6a2d3dd..00000000 --- a/Cargo.lock +++ /dev/null @@ -1,2265 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "aho-corasick" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" -dependencies = [ - "memchr", -] - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "async-trait" -version = "0.1.52" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" - -[[package]] -name = "backoff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fe17f59a06fe8b87a6fc8bf53bb70b3aba76d7685f432487a68cd5552853625" -dependencies = [ - "getrandom", - "instant", - "rand", -] - -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "built" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f346b6890a0dfa7266974910e7df2d5088120dd54721b9b0e5aae1ae5e05715" -dependencies = [ - "cargo-lock", - "chrono", - "git2", -] - -[[package]] -name = "bumpalo" -version = "3.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c" - -[[package]] -name = "bytes" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" - -[[package]] -name = "cargo-lock" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb04b88bd5b2036e30704f95c6ee16f3b5ca3b4ca307da2889d9006648e5c88" -dependencies = [ - "semver", - "serde", - "toml", - "url", -] - -[[package]] -name = "cc" -version = "1.0.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" -dependencies = [ - "jobserver", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" -dependencies = [ - "libc", - "num-integer", - "num-traits", - "serde", - "time", - "winapi", -] - -[[package]] -name = "clap" -version = "2.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" -dependencies = [ - "ansi_term", - "atty", - "bitflags", - "strsim 0.8.0", - "textwrap", - "unicode-width", - "vec_map", -] - -[[package]] -name = "const_format" -version = "0.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22bc6cd49b0ec407b680c3e380182b6ac63b73991cb7602de350352fc309b614" -dependencies = [ - "const_format_proc_macros", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef196d5d972878a48da7decb7686eded338b4858fbabeed513d63a7c98b2b82d" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "core-foundation" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "ct-logs" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" -dependencies = [ - "sct", -] - -[[package]] -name = "darling" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "757c0ded2af11d8e739c4daea1ac623dd1624b06c844cf3f5a39f1bdbd99bb12" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c34d8efb62d0c2d7f60ece80f75e5c63c1588ba68032740494b0b9a996466e3" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade7bff147130fe5e6d39f089c6bd49ec0250f35d70b2eebf72afdfc919f15cc" -dependencies = [ - "darling_core", - "quote", - "syn", -] - -[[package]] -name = "dashmap" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" -dependencies = [ - "cfg-if", - "num_cpus", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "doc-comment" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" - -[[package]] -name = "duplicate" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cdaf23abc9bcc47fda1ae3af68425a22b4dfbd745f9077be0eaad5320f75f52" -dependencies = [ - "heck", - "proc-macro-error", -] - -[[package]] -name = "dyn-clone" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" - -[[package]] -name = "either" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" - -[[package]] -name = "encoding" -version = "0.2.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" -dependencies = [ - "encoding-index-japanese", - "encoding-index-korean", - "encoding-index-simpchinese", - "encoding-index-singlebyte", - "encoding-index-tradchinese", -] - -[[package]] -name = "encoding-index-japanese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-korean" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-simpchinese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-singlebyte" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-tradchinese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding_index_tests" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" -dependencies = [ - "matches", - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28560757fe2bb34e79f907794bb6b22ae8b0e5c669b638a1132f2592b19035b4" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" - -[[package]] -name = "futures-executor" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" - -[[package]] -name = "futures-macro" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbd947adfffb0efc70599b3ddcf7b5597bb5fa9e245eb99f62b3a5f7bb8bd3c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508" - -[[package]] -name = "futures-task" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" - -[[package]] -name = "futures-util" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "getrandom" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "git2" -version = "0.13.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a8057932925d3a9d9e4434ea016570d37420ddb1ceed45a174d577f24ed6700" -dependencies = [ - "bitflags", - "libc", - "libgit2-sys", - "log", - "url", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" - -[[package]] -name = "heck" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "http" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" -dependencies = [ - "bytes", - "fnv", - "itoa 0.4.8", -] - -[[package]] -name = "http-body" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" - -[[package]] -name = "httpdate" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440" - -[[package]] -name = "hyper" -version = "0.14.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b91bb1f221b6ea1f1e4371216b70f40748774c2fb5971b450c07773fb92d26b" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "httparse", - "httpdate", - "itoa 0.4.8", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" -dependencies = [ - "ct-logs", - "futures-util", - "hyper", - "log", - "rustls", - "rustls-native-certs", - "tokio", - "tokio-rustls", - "webpki", -] - -[[package]] -name = "hyper-timeout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" -dependencies = [ - "hyper", - "pin-project-lite", - "tokio", - "tokio-io-timeout", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" -dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "indoc" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a75aeaaef0ce18b58056d306c27b07436fbb34b8816c53094b76dd81803136" -dependencies = [ - "unindent", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - -[[package]] -name = "itoa" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" - -[[package]] -name = "java-properties" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20e9b11dedd144ceb96484add3f9088c131795e4295ce51448ef755e0ec19c07" -dependencies = [ - "encoding", - "lazy_static", - "regex", -] - -[[package]] -name = "jobserver" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "json-patch" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" -dependencies = [ - "serde", - "serde_json", - "treediff", -] - -[[package]] -name = "jsonpath_lib" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f" -dependencies = [ - "log", - "serde", - "serde_json", -] - -[[package]] -name = "k8s-openapi" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f8de9873b904e74b3533f77493731ee26742418077503683db44e1b3c54aa5c" -dependencies = [ - "base64", - "bytes", - "chrono", - "schemars", - "serde", - "serde-value", - "serde_json", -] - -[[package]] -name = "kube" -version = "0.63.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75e877325e5540a3041b519bd7ee27a858691f9f816cf533d652cbb33cbfea45" -dependencies = [ - "k8s-openapi", - "kube-client", - "kube-core", - "kube-derive", - "kube-runtime", -] - -[[package]] -name = "kube-client" -version = "0.63.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb8e1a36f17c63e263ba0ffa2c0658de315c75decad983d83aaeafeda578cc78" -dependencies = [ - "base64", - "bytes", - "chrono", - "dirs-next", - "either", - "futures", - "http", - "http-body", - "hyper", - "hyper-rustls", - "hyper-timeout", - "hyper-tls", - "jsonpath_lib", - "k8s-openapi", - "kube-core", - "openssl", - "pem", - "pin-project 1.0.8", - "rustls", - "rustls-pemfile", - "serde", - "serde_json", - "serde_yaml", - "thiserror", - "tokio", - "tokio-native-tls", - "tokio-util", - "tower", - "tower-http", - "tracing", - "webpki", -] - -[[package]] -name = "kube-core" -version = "0.63.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91e572d244436fbc0d0b5a4829d96b9d623e08eb6b5d1e80418c1fab10b162a" -dependencies = [ - "chrono", - "form_urlencoded", - "http", - "json-patch", - "k8s-openapi", - "once_cell", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "kube-derive" -version = "0.63.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2034f57f3db36978ef366f45f1e263e623d9a6a8fcc6a6b1ef8879a213e1d2c4" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "serde_json", - "syn", -] - -[[package]] -name = "kube-runtime" -version = "0.63.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6018cf8410f9d460be3a3ac35deef63b71c860c368016d7bf6871994343728b4" -dependencies = [ - "dashmap", - "derivative", - "futures", - "json-patch", - "k8s-openapi", - "kube-client", - "pin-project 1.0.8", - "serde", - "serde_json", - "smallvec", - "snafu", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219" - -[[package]] -name = "libgit2-sys" -version = "0.12.24+1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddbd6021eef06fb289a8f54b3c2acfdd85ff2a585dfbb24b8576325373d2152c" -dependencies = [ - "cc", - "libc", - "libz-sys", - "pkg-config", -] - -[[package]] -name = "libz-sys" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" - -[[package]] -name = "log" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - -[[package]] -name = "memchr" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" - -[[package]] -name = "mio" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" -dependencies = [ - "libc", - "log", - "miow", - "ntapi", - "winapi", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi", -] - -[[package]] -name = "native-tls" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "ntapi" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" -dependencies = [ - "winapi", -] - -[[package]] -name = "num-integer" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "once_cell" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" - -[[package]] -name = "openssl" -version = "0.10.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-sys", -] - -[[package]] -name = "openssl-probe" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" - -[[package]] -name = "openssl-sys" -version = "0.9.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6517987b3f8226b5da3661dad65ff7f300cc59fb5ea8333ca191fc65fde3edf" -dependencies = [ - "autocfg", - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-float" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97c9d06878b3a851e8026ef94bf7fef9ba93062cd412601da4d9cf369b1cc62d" -dependencies = [ - "num-traits", -] - -[[package]] -name = "pem" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb" -dependencies = [ - "base64", - "once_cell", - "regex", -] - -[[package]] -name = "percent-encoding" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" - -[[package]] -name = "pin-project" -version = "0.4.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0f" -dependencies = [ - "pin-project-internal 0.4.28", -] - -[[package]] -name = "pin-project" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08" -dependencies = [ - "pin-project-internal 1.0.8", -] - -[[package]] -name = "pin-project-internal" -version = "0.4.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f" - -[[package]] -name = "ppv-lite86" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba" - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43" -dependencies = [ - "unicode-xid", -] - -[[package]] -name = "product-config" -version = "0.2.0" -source = "git+https://github.com/stackabletech/product-config.git?tag=0.2.0#e32e33d9094e09b1af29045e05a4ab17c511cedb" -dependencies = [ - "java-properties", - "regex", - "schemars", - "semver", - "serde", - "serde_json", - "serde_yaml", - "thiserror", - "xml-rs", -] - -[[package]] -name = "quote" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", - "rand_hc", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" -dependencies = [ - "rand_core", -] - -[[package]] -name = "redox_syscall" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_users" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" -dependencies = [ - "getrandom", - "redox_syscall", -] - -[[package]] -name = "regex" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.6.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin", - "untrusted", - "web-sys", - "winapi", -] - -[[package]] -name = "rstest" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d912f35156a3f99a66ee3e11ac2e0b3f34ac85a07e05263d05a7e2c8810d616f" -dependencies = [ - "cfg-if", - "proc-macro2", - "quote", - "rustc_version", - "syn", -] - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustls" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" -dependencies = [ - "base64", - "log", - "ring", - "sct", - "webpki", -] - -[[package]] -name = "rustls-native-certs" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" -dependencies = [ - "openssl-probe", - "rustls", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" -dependencies = [ - "base64", -] - -[[package]] -name = "rustversion" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" - -[[package]] -name = "ryu" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" - -[[package]] -name = "schannel" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" -dependencies = [ - "lazy_static", - "winapi", -] - -[[package]] -name = "schemars" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a48d098c2a7fdf5740b19deb1181b4fb8a9e68e03ae517c14cde04b5725409" -dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", -] - -[[package]] -name = "schemars_derive" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9ea2a613fe4cd7118b2bb101a25d8ae6192e1975179b67b2f17afd11e70ac8" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn", -] - -[[package]] -name = "sct" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "security-framework" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" -dependencies = [ - "serde", -] - -[[package]] -name = "serde" -version = "1.0.130" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-value" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" -dependencies = [ - "ordered-float", - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.130" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_derive_internals" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dbab34ca63057a1f15280bdf3c39f2b1eb1b54c17e98360e511637aef7418c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcbd0344bc6533bc7ec56df11d42fb70f1b912351c0825ccb7211b59d8af7cf5" -dependencies = [ - "indexmap", - "itoa 1.0.1", - "ryu", - "serde", -] - -[[package]] -name = "serde_yaml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a521f2940385c165a24ee286aa8599633d162077a54bdcae2a6fd5a7bfa7a0" -dependencies = [ - "indexmap", - "ryu", - "serde", - "yaml-rust", -] - -[[package]] -name = "sharded-slab" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" -dependencies = [ - "libc", -] - -[[package]] -name = "slab" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" - -[[package]] -name = "smallvec" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" - -[[package]] -name = "snafu" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab12d3c261b2308b0d80c26fffb58d17eba81a4be97890101f416b478c79ca7" -dependencies = [ - "doc-comment", - "futures-core", - "pin-project 0.4.28", - "snafu-derive", -] - -[[package]] -name = "snafu-derive" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1508efa03c362e23817f96cde18abed596a25219a8b2c66e8db33c03543d315b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "socket2" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "stackable-hbase-crd" -version = "0.2.0-nightly" -dependencies = [ - "duplicate", - "indoc", - "rstest", - "semver", - "serde", - "serde_json", - "serde_yaml", - "stackable-hdfs-crd", - "stackable-operator", - "stackable-zookeeper-crd", - "strum 0.23.0", - "strum_macros 0.23.1", - "thiserror", - "tracing", -] - -[[package]] -name = "stackable-hbase-operator" -version = "0.2.0-nightly" -dependencies = [ - "async-trait", - "futures", - "rstest", - "serde", - "serde_json", - "stackable-hbase-crd", - "stackable-hdfs-crd", - "stackable-operator", - "stackable-zookeeper-crd", - "strum 0.23.0", - "strum_macros 0.23.1", - "thiserror", - "tracing", -] - -[[package]] -name = "stackable-hbase-operator-binary" -version = "0.2.0-nightly" -dependencies = [ - "built", - "clap", - "stackable-hbase-crd", - "stackable-hbase-operator", - "stackable-operator", - "tokio", - "tracing", -] - -[[package]] -name = "stackable-hdfs-crd" -version = "0.2.0" -source = "git+https://github.com/stackabletech/hdfs-operator.git?tag=0.2.0#b0215525713a3ef2c932cbb21258f011336627bd" -dependencies = [ - "duplicate", - "semver", - "serde", - "serde_json", - "stackable-operator", - "strum 0.22.0", - "strum_macros 0.22.0", - "thiserror", - "tracing", -] - -[[package]] -name = "stackable-operator" -version = "0.4.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=0.4.0#50c3ee9564b1d3eb9d6e43c5e87c2102afbacc27" -dependencies = [ - "async-trait", - "backoff", - "chrono", - "clap", - "const_format", - "either", - "futures", - "json-patch", - "k8s-openapi", - "kube", - "lazy_static", - "product-config", - "rand", - "regex", - "schemars", - "serde", - "serde_json", - "serde_yaml", - "strum 0.22.0", - "strum_macros 0.22.0", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "tracing-subscriber", - "uuid", -] - -[[package]] -name = "stackable-zookeeper-crd" -version = "0.5.0" -source = "git+https://github.com/stackabletech/zookeeper-operator.git?tag=0.5.0#45ebcca59ee128af363d0266b83cd3c05a6659a9" -dependencies = [ - "duplicate", - "semver", - "serde", - "serde_json", - "stackable-operator", - "strum 0.22.0", - "strum_macros 0.22.0", - "thiserror", - "tracing", -] - -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" - -[[package]] -name = "strum" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" - -[[package]] -name = "strum_macros" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "strum_macros" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn", -] - -[[package]] -name = "syn" -version = "1.0.81" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "tempfile" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" -dependencies = [ - "cfg-if", - "libc", - "rand", - "redox_syscall", - "remove_dir_all", - "winapi", -] - -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - -[[package]] -name = "thiserror" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thread_local" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" -dependencies = [ - "once_cell", -] - -[[package]] -name = "time" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" -dependencies = [ - "libc", - "wasi", - "winapi", -] - -[[package]] -name = "tinyvec" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" - -[[package]] -name = "tokio" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbbf1c778ec206785635ce8ad57fe52b3009ae9e0c9f574a728f3049d3e55838" -dependencies = [ - "libc", - "mio", - "num_cpus", - "once_cell", - "pin-project-lite", - "signal-hook-registry", - "tokio-macros", - "winapi", -] - -[[package]] -name = "tokio-io-timeout" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90c49f106be240de154571dd31fbe48acb10ba6c6dd6f6517ad603abffa42de9" -dependencies = [ - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-macros" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" -dependencies = [ - "rustls", - "tokio", - "webpki", -] - -[[package]] -name = "tokio-util" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "slab", - "tokio", -] - -[[package]] -name = "toml" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" -dependencies = [ - "serde", -] - -[[package]] -name = "tower" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00e500fff5fa1131c866b246041a6bf96da9c965f8fe4128cb1421f23e93c00" -dependencies = [ - "futures-core", - "futures-util", - "pin-project 1.0.8", - "pin-project-lite", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b56efe69aa0ad2b5da6b942e57ea9f6fe683b7a314d4ff48662e2c8838de1" -dependencies = [ - "base64", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "pin-project 1.0.8", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" - -[[package]] -name = "tower-service" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" - -[[package]] -name = "tracing" -version = "0.1.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" -dependencies = [ - "cfg-if", - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project 1.0.8", - "tracing", -] - -[[package]] -name = "tracing-log" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" -dependencies = [ - "lazy_static", - "log", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80a4ddde70311d8da398062ecf6fc2c309337de6b0f77d6c27aff8d53f6fca52" -dependencies = [ - "ansi_term", - "lazy_static", - "matchers", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "treediff" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" -dependencies = [ - "serde_json", -] - -[[package]] -name = "try-lock" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" - -[[package]] -name = "unicode-bidi" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" - -[[package]] -name = "unicode-normalization" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" - -[[package]] -name = "unicode-width" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" - -[[package]] -name = "unicode-xid" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" - -[[package]] -name = "unindent" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "url" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" -dependencies = [ - "form_urlencoded", - "idna", - "matches", - "percent-encoding", -] - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - -[[package]] -name = "version_check" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "wasm-bindgen" -version = "0.2.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" -dependencies = [ - "bumpalo", - "lazy_static", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" - -[[package]] -name = "web-sys" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "xml-rs" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" - -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] diff --git a/Cargo.toml b/Cargo.toml deleted file mode 100644 index 98190375..00000000 --- a/Cargo.toml +++ /dev/null @@ -1,4 +0,0 @@ -[workspace] -members = [ - "rust/crd", "rust/operator", "rust/operator-binary" -] diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 1b9535c9..00000000 --- a/LICENSE +++ /dev/null @@ -1,43 +0,0 @@ -Licensed under the Open Software License version 3.0 - -1) Grant of Copyright License. Licensor grants You a worldwide, royalty-free, non-exclusive, sublicensable license, for the duration of the copyright, to do the following: - -a) to reproduce the Original Work in copies, either alone or as part of a collective work; - -b) to translate, adapt, alter, transform, modify, or arrange the Original Work, thereby creating derivative works ("Derivative Works") based upon the Original Work; - -c) to distribute or communicate copies of the Original Work and Derivative Works to the public, with the proviso that copies of Original Work or Derivative Works that You distribute or communicate shall be licensed under this Open Software License; - -d) to perform the Original Work publicly; and - -e) to display the Original Work publicly. - -2) Grant of Patent License. Licensor grants You a worldwide, royalty-free, non-exclusive, sublicensable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, for the duration of the patents, to make, use, sell, offer for sale, have made, and import the Original Work and Derivative Works. - -3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work. - -4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior permission of the Licensor. Except as expressly stated herein, nothing in this License grants any license to Licensor's trademarks, copyrights, patents, trade secrets or any other intellectual property. No patent license is granted to make, use, sell, offer for sale, have made, or import embodiments of any patent claims other than the licensed claims defined in Section 2. No license is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under terms different from this License any Original Work that Licensor otherwise would have a right to license. - -5) External Deployment. The term "External Deployment" means the use, distribution, or communication of the Original Work or Derivative Works in any way such that the Original Work or Derivative Works may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Work or a Derivative Work as a distribution under section 1(c). - -6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent, or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work. - -7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately preceding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of non-infringement, merchantability or fitness for a particular purpose. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to the Original Work is granted by this License except under this disclaimer. - -8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to anyone for any indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to the extent applicable law prohibits such limitation. - -9) Acceptance and Termination. If, at any time, You expressly assented to this License, that assent indicates your clear and irrevocable acceptance of this License and all of its terms and conditions. If You distribute or communicate copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. This License conditions your rights to undertake the activities listed in Section 1, including your right to create Derivative Works based upon the Original Work, and doing so without honoring these terms and conditions is prohibited by copyright law and international treaty. Nothing in this License is intended to affect copyright exceptions and limitations (including "fair use" or "fair dealing"). This License shall terminate immediately and You may no longer exercise any of the rights granted to You by this License upon your failure to honor the conditions in Section 1(c). - -10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware. - -11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of copyright or patent law in the appropriate jurisdiction. This section shall survive the termination of this License. - -12) Attorneys' Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License. - -13) Miscellaneous. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. - -14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You. - -16) Modification of This License. This License is Copyright © 2005 Lawrence Rosen. Permission is granted to copy, distribute, or communicate this License without modification. Nothing in this License permits You to modify this License as applied to the Original Work or to Derivative Works. However, You may modify the text of this License and copy, distribute or communicate your modified version (the "Modified License") and apply it to other original works of authorship subject to the following conditions: (i) You may not indicate in any way that your Modified License is the "Open Software License" or "OSL" and you may not use those names in the name of your Modified License; (ii) You must replace the notice specified in the first paragraph above with the notice "Licensed under " or with a notice of your own that is not confusingly similar to the notice in this License; and (iii) You may not claim that your original works are open source software unless your Modified License has been approved by Open Source Initiative (OSI) and You comply with its license review and certification process. diff --git a/Makefile b/Makefile deleted file mode 100644 index 134ae9c9..00000000 --- a/Makefile +++ /dev/null @@ -1,62 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= - -# This script requires https://github.com/mikefarah/yq (not to be confused with https://github.com/kislyuk/yq) -# It is available from Nixpkgs as `yq-go` (`nix shell nixpkgs#yq-go`) - -.PHONY: docker chart-lint compile-chart - -TAG := $(shell git rev-parse --short HEAD) - -VERSION := $(shell cargo metadata --format-version 1 | jq '.packages[] | select(.name=="stackable-hbase-operator") | .version') - -## Docker related targets -docker-build: - docker build --force-rm -t "docker.stackable.tech/stackable/hbase-operator:${VERSION}" -f docker/Dockerfile . - -docker-build-latest: docker-build - docker tag "docker.stackable.tech/stackable/hbase-operator:${VERSION}" \ - "docker.stackable.tech/stackable/hbase-operator:latest" - -docker-publish: - echo "${NEXUS_PASSWORD}" | docker login --username github --password-stdin docker.stackable.tech - docker push --all-tags docker.stackable.tech/stackable/hbase-operator - -docker: docker-build docker-publish - -docker-release: docker-build-latest docker-publish - -## Chart related targets -compile-chart: version crds config - -chart-clean: - rm -rf deploy/helm/hbase-operator/configs - rm -rf deploy/helm/hbase-operator/crds - rm -rf deploy/helm/hbase-operator/templates/crds.yaml - -version: - yq eval -i '.version = ${VERSION} | .appVersion = ${VERSION}' deploy/helm/hbase-operator/Chart.yaml - -config: deploy/helm/hbase-operator/configs - -deploy/helm/hbase-operator/configs: - cp -r deploy/config-spec deploy/helm/hbase-operator/configs - -crds: deploy/helm/hbase-operator/crds/crds.yaml - -deploy/helm/hbase-operator/crds/crds.yaml: - mkdir -p deploy/helm/hbase-operator/crds - cat deploy/crd/*.yaml | yq eval '.metadata.annotations["helm.sh/resource-policy"]="keep"' - > ${@} - -chart-lint: compile-chart - docker run -it -v $(shell pwd):/build/helm-charts -w /build/helm-charts quay.io/helmpack/chart-testing:v3.4.0 ct lint --config deploy/helm/chart_testing.yaml - -## Manifest related targets -clean-manifests: - mkdir -p deploy/manifests - rm -rf $$(find deploy/manifests -maxdepth 1 -mindepth 1 -not -name Kustomization) - -generate-manifests: clean-manifests compile-chart - ./scripts/generate-manifests.sh diff --git a/README.adoc b/README.adoc deleted file mode 100644 index d2573617..00000000 --- a/README.adoc +++ /dev/null @@ -1,5 +0,0 @@ -= Stackable Operator for Apache HBase - -This is a Kubernetes Operator to manage Apache HBase ensembles. - -The docs can be found in the `docs` subdirectory, and they are published together with docs for all other Stackable products at https://docs.stackable.tech. \ No newline at end of file diff --git a/bors.toml b/bors.toml deleted file mode 100644 index d9c6dd48..00000000 --- a/bors.toml +++ /dev/null @@ -1,11 +0,0 @@ -status = [ - 'Run tests', - 'Run rustfmt', - 'Run rustdoc', - 'Run clippy', - 'Run cargo deny (bans licenses sources)' -] -delete_merged_branches = true -pr_status = [ 'license/cla' ] -timeout_sec = 7200 -cut_body_after = "" \ No newline at end of file diff --git a/deny.toml b/deny.toml deleted file mode 100644 index 25b2796a..00000000 --- a/deny.toml +++ /dev/null @@ -1,63 +0,0 @@ -targets = [ - { triple = "x86_64-unknown-linux-gnu" }, - { triple = "aarch64-unknown-linux-gnu" }, - { triple = "x86_64-unknown-linux-musl" }, - { triple = "aarch64-apple-darwin" }, - { triple = "x86_64-apple-darwin" }, -] - -[advisories] -vulnerability = "warn" -unmaintained = "allow" -unsound = "warn" -yanked = "warn" -notice = "warn" - -[bans] -multiple-versions = "allow" - -[licenses] -unlicensed = "deny" -copyleft = "deny" -allow-osi-fsf-free = "neither" -default = "deny" -confidence-threshold = 1.0 -allow = [ - "Apache-2.0", - "BSD-3-Clause", - "CC0-1.0", - "ISC", - "LicenseRef-ring", - "LicenseRef-webpki", - "MIT", - "Zlib" -] - -exceptions = [ - { name = "stackable-hbase-crd", allow = ["OSL-3.0"] }, - { name = "stackable-hbase-operator", allow = ["OSL-3.0"] }, - { name = "stackable-hbase-operator-binary", allow = ["OSL-3.0"] }, - { name = "stackable-hdfs-crd", allow = ["OSL-3.0"] }, - { name = "stackable-zookeeper-crd", allow = ["OSL-3.0"] }, - ] - -[[licenses.clarify]] -name = "ring" -expression = "LicenseRef-ring" -license-files = [ - { path = "LICENSE", hash = 0xbd0eed23 }, -] - -[[licenses.clarify]] -name = "webpki" -expression = "LicenseRef-webpki" -license-files = [ - { path = "LICENSE", hash = 0x001c7e6c }, -] - -[sources] -unknown-registry = "deny" -unknown-git = "deny" - -[sources.allow-org] -github = ["stackabletech"] diff --git a/deploy/config-spec/properties.yaml b/deploy/config-spec/properties.yaml deleted file mode 100644 index f6d4cee8..00000000 --- a/deploy/config-spec/properties.yaml +++ /dev/null @@ -1,151 +0,0 @@ -version: 0.1.0 -spec: - units: - - unit: &unitDirectory - name: "directory" - regex: "^/|(/[\\w-]+)+$" - examples: - - "/tmp/xyz" - -properties: -################################################################################################### -# hbase-site.xml -################################################################################################### - - - property: &hbaseRootDir - propertyNames: - - name: "hbase.rootdir" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "string" - unit: *unitDirectory - defaultValues: - - fromVersion: "0.0.0" - value: "${hbase.tmp.dir}/hbase" - roles: - - name: "master" - required: false - - name: "regionserver" - required: false - asOfVersion: "0.0.0" - description: "The directory shared by region servers and into which HBase persists. The URL should be 'fully-qualified' to include the filesystem scheme. For example, to specify the HDFS directory '/hbase' where the HDFS instance's namenode is running at namenode.example.org on port 9000, set this value to: hdfs://namenode.example.org:9000/hbase. By default, we write to whatever ${hbase.tmp.dir} is set too -- usually /tmp -- so change this configuration or else all data will be lost on machine restart." - - - property: &hbaseClusterDistributed - propertyNames: - - name: "hbase.cluster.distributed" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "bool" - defaultValues: - - fromVersion: "0.0.0" - value: "false" - recommendedValues: - - fromVersion: "0.0.0" - value: "true" - roles: - - name: "master" - required: true - - name: "regionserver" - required: true - asOfVersion: "0.0.0" - description: "The mode the cluster will be in. Possible values are false for standalone mode and true for distributed mode. If false, startup will run all HBase and ZooKeeper daemons together in the one JVM." - - - property: &hbaseMasterPort - propertyNames: - - name: "hbase.master.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "1024" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16000" - roles: - - name: "master" - required: true - asOfVersion: "0.0.0" - description: "The port the HBase Master should bind to." - - - property: &hbaseMasterInfoPort - propertyNames: - - name: "hbase.master.info.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "-1" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16010" - roles: - - name: "master" - required: true - asOfVersion: "0.0.0" - description: "Set to -1 if you do not want a UI instance run." - - - property: &hbaseRegionserverPort - propertyNames: - - name: "hbase.regionserver.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "1024" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16020" - roles: - - name: "regionserver" - required: true - asOfVersion: "0.0.0" - description: "The port the HBase RegionServer binds to." - - - property: &hbaseRegionserverInfoPort - propertyNames: - - name: "hbase.regionserver.info.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "-1" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16030" - roles: - - name: "regionserver" - required: true - asOfVersion: "0.0.0" - description: "The port for the HBase RegionServer web UI. Set to -1 if you do not want the RegionServer UI to run." - - ################################################################################################### - # env vars - ################################################################################################### - - property: &metricsPort - propertyNames: - - name: "metricsPort" - kind: - type: "env" - datatype: - type: "integer" - min: "1024" - max: "65535" - roles: - - name: "master" - required: false - - name: "regionserver" - required: false - asOfVersion: "0.0.0" - description: "The port where hbase metrics are exposed as a Prometheus endpoint." diff --git a/deploy/crd/hbasecluster.crd.yaml b/deploy/crd/hbasecluster.crd.yaml deleted file mode 100644 index 6496396f..00000000 --- a/deploy/crd/hbasecluster.crd.yaml +++ /dev/null @@ -1,429 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: hbaseclusters.hbase.stackable.tech -spec: - group: hbase.stackable.tech - names: - categories: [] - kind: HbaseCluster - plural: hbaseclusters - shortNames: - - hbase - singular: hbasecluster - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for HbaseClusterSpec via `CustomResource`" - properties: - spec: - properties: - hdfsReference: - description: Contains all necessary information to identify a Stackable managed HDFS cluster and build a connection string for it. The main purpose for this struct is for other operators that need to reference a HDFS ensemble to use in their CRDs. This has the benefit of keeping references to HDFS ensembles consistent throughout the entire stack. - properties: - name: - type: string - namespace: - type: string - root: - nullable: true - type: string - required: - - name - - namespace - type: object - masters: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - roleGroups: - additionalProperties: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - replicas: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - selector: - description: A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. The requirements are ANDed. - items: - description: "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values." - properties: - key: - description: key is the label key that the selector applies to. - type: string - operator: - description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." - type: string - values: - description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." - type: object - type: object - type: object - type: object - required: - - roleGroups - type: object - regionServers: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - roleGroups: - additionalProperties: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - replicas: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - selector: - description: A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. The requirements are ANDed. - items: - description: "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values." - properties: - key: - description: key is the label key that the selector applies to. - type: string - operator: - description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." - type: string - values: - description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." - type: object - type: object - type: object - type: object - required: - - roleGroups - type: object - version: - enum: - - 2.4.6 - type: string - zookeeperReference: - description: Contains all necessary information identify a Stackable managed ZooKeeper ensemble and build a connection string for it. The main purpose for this struct is for other operators that need to reference a ZooKeeper ensemble to use in their CRDs. This has the benefit of keeping references to Zookeeper ensembles consistent throughout the entire stack. - properties: - chroot: - nullable: true - type: string - name: - type: string - namespace: - type: string - required: - - name - - namespace - type: object - required: - - hdfsReference - - masters - - regionServers - - version - - zookeeperReference - type: object - status: - nullable: true - properties: - clusterExecutionStatus: - description: Signals the current status of the cluster - enum: - - Stopped - - Running - nullable: true - type: string - conditions: - items: - description: Condition contains details for one aspect of the current state of this API Resource. - properties: - lastTransitionTime: - description: "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable." - format: date-time - type: string - message: - description: message is a human readable message indicating details about the transition. This may be an empty string. - type: string - observedGeneration: - description: "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance." - format: int64 - type: integer - reason: - description: "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty." - type: string - status: - description: "status of the condition, one of True, False, Unknown." - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - currentCommand: - nullable: true - properties: - kind: - type: string - name: - type: string - namespace: - type: string - uid: - type: string - required: - - kind - - name - - namespace - - uid - type: object - history: - nullable: true - properties: - mapping: - additionalProperties: - properties: - name: - type: string - required: - - name - type: object - type: object - required: - - mapping - type: object - version: - description: The version of the product provided by the operator. Split into current and target version in order track upgrading and downgrading progress. - nullable: true - properties: - current: - enum: - - 2.4.6 - nullable: true - type: string - target: - enum: - - 2.4.6 - nullable: true - type: string - type: object - type: object - required: - - spec - title: HbaseCluster - type: object - served: true - storage: true - subresources: - status: {} diff --git a/deploy/crd/restart.crd.yaml b/deploy/crd/restart.crd.yaml deleted file mode 100644 index 7d0ad17b..00000000 --- a/deploy/crd/restart.crd.yaml +++ /dev/null @@ -1,61 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: restarts.command.hbase.stackable.tech -spec: - group: command.hbase.stackable.tech - names: - categories: [] - kind: Restart - plural: restarts - shortNames: [] - singular: restart - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for RestartCommandSpec via `CustomResource`" - properties: - spec: - properties: - name: - type: string - roles: - items: - enum: - - Master - - RegionServer - type: string - nullable: true - type: array - rolling: - type: boolean - required: - - name - - rolling - type: object - status: - nullable: true - properties: - finishedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - startedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - type: object - required: - - spec - title: Restart - type: object - served: true - storage: true - subresources: - status: {} diff --git a/deploy/crd/start.crd.yaml b/deploy/crd/start.crd.yaml deleted file mode 100644 index 1c97a09e..00000000 --- a/deploy/crd/start.crd.yaml +++ /dev/null @@ -1,61 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: starts.command.hbase.stackable.tech -spec: - group: command.hbase.stackable.tech - names: - categories: [] - kind: Start - plural: starts - shortNames: [] - singular: start - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for StartCommandSpec via `CustomResource`" - properties: - spec: - properties: - name: - type: string - roles: - items: - enum: - - Master - - RegionServer - type: string - nullable: true - type: array - rolling: - type: boolean - required: - - name - - rolling - type: object - status: - nullable: true - properties: - finishedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - startedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - type: object - required: - - spec - title: Start - type: object - served: true - storage: true - subresources: - status: {} diff --git a/deploy/crd/stop.crd.yaml b/deploy/crd/stop.crd.yaml deleted file mode 100644 index af3cac17..00000000 --- a/deploy/crd/stop.crd.yaml +++ /dev/null @@ -1,61 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: stops.command.hbase.stackable.tech -spec: - group: command.hbase.stackable.tech - names: - categories: [] - kind: Stop - plural: stops - shortNames: [] - singular: stop - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for StopCommandSpec via `CustomResource`" - properties: - spec: - properties: - name: - type: string - roles: - items: - enum: - - Master - - RegionServer - type: string - nullable: true - type: array - rolling: - type: boolean - required: - - name - - rolling - type: object - status: - nullable: true - properties: - finishedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - startedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - type: object - required: - - spec - title: Stop - type: object - served: true - storage: true - subresources: - status: {} diff --git a/deploy/helm/chart_testing.yaml b/deploy/helm/chart_testing.yaml deleted file mode 100644 index 82b39c26..00000000 --- a/deploy/helm/chart_testing.yaml +++ /dev/null @@ -1,5 +0,0 @@ -remote: origin -target-branch: main -chart-dirs: - - deploy/helm -all: true diff --git a/deploy/helm/hbase-operator/.helmignore b/deploy/helm/hbase-operator/.helmignore deleted file mode 100644 index fef44b7e..00000000 --- a/deploy/helm/hbase-operator/.helmignore +++ /dev/null @@ -1,28 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= - -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/deploy/helm/hbase-operator/Chart.yaml b/deploy/helm/hbase-operator/Chart.yaml deleted file mode 100644 index fcd617a3..00000000 --- a/deploy/helm/hbase-operator/Chart.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -apiVersion: v2 -name: hbase-operator -description: The Stackable Operator for Apache HBase -# A chart can be either an 'application' or a 'library' chart. -# -# Application charts are a collection of templates that can be packaged into versioned archives -# to be deployed. -# -# Library charts provide useful utilities or functions for the chart developer. They're included as -# a dependency of application charts to inject those utilities and functions into the rendering -# pipeline. Library charts do not define any templates and therefore cannot be deployed. -type: application -maintainers: - - name: stackable - url: github.com/stackabletech -# This is the chart version. This version number should be incremented each time you make changes -# to the chart and its templates, including the app version. -# Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.0-nightly -# This is the version number of the application being deployed. This version number should be -# incremented each time you make changes to the application. Versions are not expected to -# follow Semantic Versioning. They should reflect the version the application is using. -# It is recommended to use it with quotes. -appVersion: 0.2.0-nightly diff --git a/deploy/helm/hbase-operator/README.md b/deploy/helm/hbase-operator/README.md deleted file mode 100644 index 8f82a9a1..00000000 --- a/deploy/helm/hbase-operator/README.md +++ /dev/null @@ -1,42 +0,0 @@ -[//]: # (=============) -[//]: # (This file is automatically generated from the templates in stackabletech/operator-templating) -[//]: # (DON'T MANUALLY EDIT THIS FILE) -[//]: # (=============) - -# Helm Chart for Stackable Operator for Apache HBase - -This Helm Chart can be used to install Custom Resource Definitions and the Operator for Apache HBase provided by Stackable. - - -## Requirements - -- Create a [Kubernetes Cluster](../Readme.md) -- Install [Helm](https://helm.sh/docs/intro/install/) - - -## Install the Stackble Operator for Apache HBase - -```bash -# From the root of the operator repository -make compile-chart - -helm install hbase-operator deploy/helm/hbase-operator -``` - - - - -## Create a Apache HBase Cluster - -as described [here](https://docs.stackable.tech/hbase/index.html) - - - -The operator has example requests included in the [`/examples`](https://github.com/stackabletech/hbase/operator/tree/main/examples) directory that can be used to spin up a cluster. - - -## Links - -https://github.com/stackabletech/hbase-operator - - diff --git a/deploy/helm/hbase-operator/configs/properties.yaml b/deploy/helm/hbase-operator/configs/properties.yaml deleted file mode 100644 index f6d4cee8..00000000 --- a/deploy/helm/hbase-operator/configs/properties.yaml +++ /dev/null @@ -1,151 +0,0 @@ -version: 0.1.0 -spec: - units: - - unit: &unitDirectory - name: "directory" - regex: "^/|(/[\\w-]+)+$" - examples: - - "/tmp/xyz" - -properties: -################################################################################################### -# hbase-site.xml -################################################################################################### - - - property: &hbaseRootDir - propertyNames: - - name: "hbase.rootdir" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "string" - unit: *unitDirectory - defaultValues: - - fromVersion: "0.0.0" - value: "${hbase.tmp.dir}/hbase" - roles: - - name: "master" - required: false - - name: "regionserver" - required: false - asOfVersion: "0.0.0" - description: "The directory shared by region servers and into which HBase persists. The URL should be 'fully-qualified' to include the filesystem scheme. For example, to specify the HDFS directory '/hbase' where the HDFS instance's namenode is running at namenode.example.org on port 9000, set this value to: hdfs://namenode.example.org:9000/hbase. By default, we write to whatever ${hbase.tmp.dir} is set too -- usually /tmp -- so change this configuration or else all data will be lost on machine restart." - - - property: &hbaseClusterDistributed - propertyNames: - - name: "hbase.cluster.distributed" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "bool" - defaultValues: - - fromVersion: "0.0.0" - value: "false" - recommendedValues: - - fromVersion: "0.0.0" - value: "true" - roles: - - name: "master" - required: true - - name: "regionserver" - required: true - asOfVersion: "0.0.0" - description: "The mode the cluster will be in. Possible values are false for standalone mode and true for distributed mode. If false, startup will run all HBase and ZooKeeper daemons together in the one JVM." - - - property: &hbaseMasterPort - propertyNames: - - name: "hbase.master.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "1024" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16000" - roles: - - name: "master" - required: true - asOfVersion: "0.0.0" - description: "The port the HBase Master should bind to." - - - property: &hbaseMasterInfoPort - propertyNames: - - name: "hbase.master.info.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "-1" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16010" - roles: - - name: "master" - required: true - asOfVersion: "0.0.0" - description: "Set to -1 if you do not want a UI instance run." - - - property: &hbaseRegionserverPort - propertyNames: - - name: "hbase.regionserver.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "1024" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16020" - roles: - - name: "regionserver" - required: true - asOfVersion: "0.0.0" - description: "The port the HBase RegionServer binds to." - - - property: &hbaseRegionserverInfoPort - propertyNames: - - name: "hbase.regionserver.info.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "-1" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16030" - roles: - - name: "regionserver" - required: true - asOfVersion: "0.0.0" - description: "The port for the HBase RegionServer web UI. Set to -1 if you do not want the RegionServer UI to run." - - ################################################################################################### - # env vars - ################################################################################################### - - property: &metricsPort - propertyNames: - - name: "metricsPort" - kind: - type: "env" - datatype: - type: "integer" - min: "1024" - max: "65535" - roles: - - name: "master" - required: false - - name: "regionserver" - required: false - asOfVersion: "0.0.0" - description: "The port where hbase metrics are exposed as a Prometheus endpoint." diff --git a/deploy/helm/hbase-operator/crds/crds.yaml b/deploy/helm/hbase-operator/crds/crds.yaml deleted file mode 100644 index e6a5638b..00000000 --- a/deploy/helm/hbase-operator/crds/crds.yaml +++ /dev/null @@ -1,620 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: hbaseclusters.hbase.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: hbase.stackable.tech - names: - categories: [] - kind: HbaseCluster - plural: hbaseclusters - shortNames: - - hbase - singular: hbasecluster - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for HbaseClusterSpec via `CustomResource`" - properties: - spec: - properties: - hdfsReference: - description: Contains all necessary information to identify a Stackable managed HDFS cluster and build a connection string for it. The main purpose for this struct is for other operators that need to reference a HDFS ensemble to use in their CRDs. This has the benefit of keeping references to HDFS ensembles consistent throughout the entire stack. - properties: - name: - type: string - namespace: - type: string - root: - nullable: true - type: string - required: - - name - - namespace - type: object - masters: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - roleGroups: - additionalProperties: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - replicas: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - selector: - description: A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. The requirements are ANDed. - items: - description: "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values." - properties: - key: - description: key is the label key that the selector applies to. - type: string - operator: - description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." - type: string - values: - description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." - type: object - type: object - type: object - type: object - required: - - roleGroups - type: object - regionServers: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - roleGroups: - additionalProperties: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - replicas: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - selector: - description: A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. The requirements are ANDed. - items: - description: "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values." - properties: - key: - description: key is the label key that the selector applies to. - type: string - operator: - description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." - type: string - values: - description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." - type: object - type: object - type: object - type: object - required: - - roleGroups - type: object - version: - enum: - - 2.4.6 - type: string - zookeeperReference: - description: Contains all necessary information identify a Stackable managed ZooKeeper ensemble and build a connection string for it. The main purpose for this struct is for other operators that need to reference a ZooKeeper ensemble to use in their CRDs. This has the benefit of keeping references to Zookeeper ensembles consistent throughout the entire stack. - properties: - chroot: - nullable: true - type: string - name: - type: string - namespace: - type: string - required: - - name - - namespace - type: object - required: - - hdfsReference - - masters - - regionServers - - version - - zookeeperReference - type: object - status: - nullable: true - properties: - clusterExecutionStatus: - description: Signals the current status of the cluster - enum: - - Stopped - - Running - nullable: true - type: string - conditions: - items: - description: Condition contains details for one aspect of the current state of this API Resource. - properties: - lastTransitionTime: - description: "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable." - format: date-time - type: string - message: - description: message is a human readable message indicating details about the transition. This may be an empty string. - type: string - observedGeneration: - description: "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance." - format: int64 - type: integer - reason: - description: "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty." - type: string - status: - description: "status of the condition, one of True, False, Unknown." - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - currentCommand: - nullable: true - properties: - kind: - type: string - name: - type: string - namespace: - type: string - uid: - type: string - required: - - kind - - name - - namespace - - uid - type: object - history: - nullable: true - properties: - mapping: - additionalProperties: - properties: - name: - type: string - required: - - name - type: object - type: object - required: - - mapping - type: object - version: - description: The version of the product provided by the operator. Split into current and target version in order track upgrading and downgrading progress. - nullable: true - properties: - current: - enum: - - 2.4.6 - nullable: true - type: string - target: - enum: - - 2.4.6 - nullable: true - type: string - type: object - type: object - required: - - spec - title: HbaseCluster - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: restarts.command.hbase.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: command.hbase.stackable.tech - names: - categories: [] - kind: Restart - plural: restarts - shortNames: [] - singular: restart - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for RestartCommandSpec via `CustomResource`" - properties: - spec: - properties: - name: - type: string - roles: - items: - enum: - - Master - - RegionServer - type: string - nullable: true - type: array - rolling: - type: boolean - required: - - name - - rolling - type: object - status: - nullable: true - properties: - finishedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - startedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - type: object - required: - - spec - title: Restart - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: starts.command.hbase.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: command.hbase.stackable.tech - names: - categories: [] - kind: Start - plural: starts - shortNames: [] - singular: start - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for StartCommandSpec via `CustomResource`" - properties: - spec: - properties: - name: - type: string - roles: - items: - enum: - - Master - - RegionServer - type: string - nullable: true - type: array - rolling: - type: boolean - required: - - name - - rolling - type: object - status: - nullable: true - properties: - finishedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - startedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - type: object - required: - - spec - title: Start - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: stops.command.hbase.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: command.hbase.stackable.tech - names: - categories: [] - kind: Stop - plural: stops - shortNames: [] - singular: stop - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for StopCommandSpec via `CustomResource`" - properties: - spec: - properties: - name: - type: string - roles: - items: - enum: - - Master - - RegionServer - type: string - nullable: true - type: array - rolling: - type: boolean - required: - - name - - rolling - type: object - status: - nullable: true - properties: - finishedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - startedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - type: object - required: - - spec - title: Stop - type: object - served: true - storage: true - subresources: - status: {} diff --git a/deploy/helm/hbase-operator/templates/_helpers.tpl b/deploy/helm/hbase-operator/templates/_helpers.tpl deleted file mode 100644 index 840391ac..00000000 --- a/deploy/helm/hbase-operator/templates/_helpers.tpl +++ /dev/null @@ -1,76 +0,0 @@ -{{/* -Expand the name of the chart. -*/}} -{{- define "operator.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-operator" }} -{{- end }} - -{{/* -Expand the name of the chart. -*/}} -{{- define "operator.appname" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "operator.fullname" -}} -{{- if .Values.fullnameOverride }} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- $name := default .Chart.Name .Values.nameOverride }} -{{- if contains $name .Release.Name }} -{{- .Release.Name | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} -{{- end }} -{{- end }} -{{- end }} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "operator.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "operator.labels" -}} -helm.sh/chart: {{ include "operator.chart" . }} -{{ include "operator.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{/* -Selector labels -*/}} -{{- define "operator.selectorLabels" -}} -app.kubernetes.io/name: {{ include "operator.appname" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} - -{{/* -Create the name of the service account to use -*/}} -{{- define "operator.serviceAccountName" -}} -{{- if .Values.serviceAccount.create }} -{{- default (include "operator.fullname" .) .Values.serviceAccount.name }} -{{- else }} -{{- default "default" .Values.serviceAccount.name }} -{{- end }} -{{- end }} - -{{/* -Labels for Kubernetes objects created by helm test -*/}} -{{- define "operator.testLabels" -}} -helm.sh/test: {{ include "operator.chart" . }} -{{- end }} \ No newline at end of file diff --git a/deploy/helm/hbase-operator/templates/configmap.yaml b/deploy/helm/hbase-operator/templates/configmap.yaml deleted file mode 100644 index 8b85c759..00000000 --- a/deploy/helm/hbase-operator/templates/configmap.yaml +++ /dev/null @@ -1,12 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -apiVersion: v1 -data: -{{ (.Files.Glob "configs/*").AsConfig | indent 2 }} -kind: ConfigMap -metadata: - name: {{ .Release.Name }}-configmap - labels: - {{- include "operator.labels" . | nindent 4 }} diff --git a/deploy/helm/hbase-operator/templates/deployment.yaml b/deploy/helm/hbase-operator/templates/deployment.yaml deleted file mode 100644 index ff825661..00000000 --- a/deploy/helm/hbase-operator/templates/deployment.yaml +++ /dev/null @@ -1,61 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ .Release.Name }}-deployment - labels: - {{- include "operator.labels" . | nindent 4 }} -spec: - replicas: 1 - strategy: - type: Recreate - selector: - matchLabels: - {{- include "operator.selectorLabels" . | nindent 6 }} - template: - metadata: - {{- with .Values.podAnnotations }} - annotations: - checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} - {{- toYaml . | nindent 8 }} - {{- end }} - labels: - {{- include "operator.selectorLabels" . | nindent 8 }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - serviceAccountName: {{ .Release.Name }}-serviceaccount - securityContext: - {{- toYaml .Values.podSecurityContext | nindent 8 }} - containers: - - name: {{ include "operator.appname" . }} - securityContext: - {{- toYaml .Values.securityContext | nindent 12 }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - resources: - {{- toYaml .Values.resources | nindent 12 }} - volumeMounts: - - mountPath: /etc/stackable/{{ include "operator.appname" . }}/config-spec - name: config-spec - volumes: - - name: config-spec - configMap: - name: {{ .Release.Name }}-configmap - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} diff --git a/deploy/helm/hbase-operator/templates/roles.yaml b/deploy/helm/hbase-operator/templates/roles.yaml deleted file mode 100644 index 086d898e..00000000 --- a/deploy/helm/hbase-operator/templates/roles.yaml +++ /dev/null @@ -1,106 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: {{ .Release.Name }}-clusterrole -rules: - # For Apache ZooKeeper dependents - - apiGroups: - - zookeeper.stackable.tech - resources: - - zookeeperclusters - verbs: - - get - - list - - watch - # For Apache HDFS dependents - - apiGroups: - - hdfs.stackable.tech - resources: - - hdfsclusters - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - nodes - verbs: - - list - - watch - - apiGroups: - - "" - resources: - - pods - - configmaps - - services - - endpoints - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - apps - resources: - - statefulsets - verbs: - - create - - delete - - list - - patch - - update - - watch - - apiGroups: - - batch - resources: - - jobs - verbs: - - create - - get - - list - - patch - - update - - watch - - apiGroups: - - apiextensions.k8s.io - resources: - - customresourcedefinitions - verbs: - - get - - apiGroups: - - command.{{ include "operator.name" . }}.stackable.tech - resources: - - inits - - restarts - - starts - - stops - verbs: - - get - - list - - patch - - watch - - apiGroups: - - command.{{ include "operator.name" . }}.stackable.tech - resources: - - inits/status - verbs: - - patch - - apiGroups: - - {{ include "operator.name" . }}.stackable.tech - resources: - - {{ include "operator.name" . }}clusters - verbs: - - get - - list - - patch - - watch - - apiGroups: - - {{ include "operator.name" . }}.stackable.tech - resources: - - {{ include "operator.name" . }}clusters/status - verbs: - - patch diff --git a/deploy/helm/hbase-operator/templates/serviceaccount.yaml b/deploy/helm/hbase-operator/templates/serviceaccount.yaml deleted file mode 100644 index fbd8b454..00000000 --- a/deploy/helm/hbase-operator/templates/serviceaccount.yaml +++ /dev/null @@ -1,32 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -{{ if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Release.Name }}-serviceaccount - labels: - {{- include "operator.labels" . | nindent 4 }} - {{- with .Values.serviceAccount.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -# This cluster role binding allows anyone in the "manager" group to read secrets in any namespace. -kind: ClusterRoleBinding -metadata: - name: {{ .Release.Name }}-clusterrolebinding - labels: - {{- include "operator.labels" . | nindent 4 }} -subjects: - - kind: ServiceAccount - name: {{ .Release.Name }}-serviceaccount - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: {{ .Release.Name }}-clusterrole - apiGroup: rbac.authorization.k8s.io -{{- end }} \ No newline at end of file diff --git a/deploy/helm/hbase-operator/values.yaml b/deploy/helm/hbase-operator/values.yaml deleted file mode 100644 index 3222c4ed..00000000 --- a/deploy/helm/hbase-operator/values.yaml +++ /dev/null @@ -1,55 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= - -# Default values for hbase-operator. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. -image: - repository: docker.stackable.tech/stackable/hbase-operator - pullPolicy: IfNotPresent - -imagePullSecrets: [] -nameOverride: "" -fullnameOverride: "" - -serviceAccount: - # Specifies whether a service account should be created - create: true - # Annotations to add to the service account - annotations: {} - # The name of the service account to use. - # If not set and create is true, a name is generated using the fullname template - name: "" - -podAnnotations: {} - -podSecurityContext: {} - # fsGroup: 2000 - -securityContext: {} - # capabilities: - # drop: - # - ALL - # readOnlyRootFilesystem: true - # runAsNonRoot: true - # runAsUser: 1000 - -resources: {} - # We usually recommend not to specify default resources and to leave this as a conscious - # choice for the user. This also increases chances charts run on environments with little - # resources, such as Minikube. If you do want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - -nodeSelector: {} - -tolerations: [] - -affinity: {} diff --git a/deploy/manifests/Kustomization b/deploy/manifests/Kustomization deleted file mode 100644 index 336cdb27..00000000 --- a/deploy/manifests/Kustomization +++ /dev/null @@ -1,11 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - configmap.yaml - - deployment.yaml - - roles.yaml - - serviceaccount.yaml diff --git a/deploy/manifests/configmap.yaml b/deploy/manifests/configmap.yaml deleted file mode 100644 index 8ff26af5..00000000 --- a/deploy/manifests/configmap.yaml +++ /dev/null @@ -1,166 +0,0 @@ ---- -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -apiVersion: v1 -data: - properties.yaml: | - version: 0.1.0 - spec: - units: - - unit: &unitDirectory - name: "directory" - regex: "^/|(/[\\w-]+)+$" - examples: - - "/tmp/xyz" - - properties: - ################################################################################################### - # hbase-site.xml - ################################################################################################### - - - property: &hbaseRootDir - propertyNames: - - name: "hbase.rootdir" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "string" - unit: *unitDirectory - defaultValues: - - fromVersion: "0.0.0" - value: "${hbase.tmp.dir}/hbase" - roles: - - name: "master" - required: false - - name: "regionserver" - required: false - asOfVersion: "0.0.0" - description: "The directory shared by region servers and into which HBase persists. The URL should be 'fully-qualified' to include the filesystem scheme. For example, to specify the HDFS directory '/hbase' where the HDFS instance's namenode is running at namenode.example.org on port 9000, set this value to: hdfs://namenode.example.org:9000/hbase. By default, we write to whatever ${hbase.tmp.dir} is set too -- usually /tmp -- so change this configuration or else all data will be lost on machine restart." - - - property: &hbaseClusterDistributed - propertyNames: - - name: "hbase.cluster.distributed" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "bool" - defaultValues: - - fromVersion: "0.0.0" - value: "false" - recommendedValues: - - fromVersion: "0.0.0" - value: "true" - roles: - - name: "master" - required: true - - name: "regionserver" - required: true - asOfVersion: "0.0.0" - description: "The mode the cluster will be in. Possible values are false for standalone mode and true for distributed mode. If false, startup will run all HBase and ZooKeeper daemons together in the one JVM." - - - property: &hbaseMasterPort - propertyNames: - - name: "hbase.master.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "1024" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16000" - roles: - - name: "master" - required: true - asOfVersion: "0.0.0" - description: "The port the HBase Master should bind to." - - - property: &hbaseMasterInfoPort - propertyNames: - - name: "hbase.master.info.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "-1" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16010" - roles: - - name: "master" - required: true - asOfVersion: "0.0.0" - description: "Set to -1 if you do not want a UI instance run." - - - property: &hbaseRegionserverPort - propertyNames: - - name: "hbase.regionserver.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "1024" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16020" - roles: - - name: "regionserver" - required: true - asOfVersion: "0.0.0" - description: "The port the HBase RegionServer binds to." - - - property: &hbaseRegionserverInfoPort - propertyNames: - - name: "hbase.regionserver.info.port" - kind: - type: "file" - file: "hbase-site.xml" - datatype: - type: "integer" - min: "-1" - max: "65535" - defaultValues: - - fromVersion: "0.0.0" - value: "16030" - roles: - - name: "regionserver" - required: true - asOfVersion: "0.0.0" - description: "The port for the HBase RegionServer web UI. Set to -1 if you do not want the RegionServer UI to run." - - ################################################################################################### - # env vars - ################################################################################################### - - property: &metricsPort - propertyNames: - - name: "metricsPort" - kind: - type: "env" - datatype: - type: "integer" - min: "1024" - max: "65535" - roles: - - name: "master" - required: false - - name: "regionserver" - required: false - asOfVersion: "0.0.0" - description: "The port where hbase metrics are exposed as a Prometheus endpoint." -kind: ConfigMap -metadata: - name: hbase-operator-configmap - labels: - app.kubernetes.io/name: hbase-operator - app.kubernetes.io/instance: hbase-operator - app.kubernetes.io/version: "0.2.0-nightly" diff --git a/deploy/manifests/crds.yaml b/deploy/manifests/crds.yaml deleted file mode 100644 index 3dff71f0..00000000 --- a/deploy/manifests/crds.yaml +++ /dev/null @@ -1,621 +0,0 @@ ---- ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: hbaseclusters.hbase.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: hbase.stackable.tech - names: - categories: [] - kind: HbaseCluster - plural: hbaseclusters - shortNames: - - hbase - singular: hbasecluster - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for HbaseClusterSpec via `CustomResource`" - properties: - spec: - properties: - hdfsReference: - description: Contains all necessary information to identify a Stackable managed HDFS cluster and build a connection string for it. The main purpose for this struct is for other operators that need to reference a HDFS ensemble to use in their CRDs. This has the benefit of keeping references to HDFS ensembles consistent throughout the entire stack. - properties: - name: - type: string - namespace: - type: string - root: - nullable: true - type: string - required: - - name - - namespace - type: object - masters: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - roleGroups: - additionalProperties: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - replicas: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - selector: - description: A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. The requirements are ANDed. - items: - description: "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values." - properties: - key: - description: key is the label key that the selector applies to. - type: string - operator: - description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." - type: string - values: - description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." - type: object - type: object - type: object - type: object - required: - - roleGroups - type: object - regionServers: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - roleGroups: - additionalProperties: - properties: - cliOverrides: - additionalProperties: - type: string - nullable: true - type: object - config: - nullable: true - properties: - masterPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - masterWebUiPort: - format: int16 - nullable: true - type: integer - metricsPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerPort: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - regionServerWebUiPort: - format: int16 - nullable: true - type: integer - type: object - configOverrides: - additionalProperties: - additionalProperties: - type: string - type: object - nullable: true - type: object - envOverrides: - additionalProperties: - type: string - nullable: true - type: object - replicas: - format: uint16 - minimum: 0.0 - nullable: true - type: integer - selector: - description: A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. The requirements are ANDed. - items: - description: "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values." - properties: - key: - description: key is the label key that the selector applies to. - type: string - operator: - description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist." - type: string - values: - description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch." - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed." - type: object - type: object - type: object - type: object - required: - - roleGroups - type: object - version: - enum: - - 2.4.6 - type: string - zookeeperReference: - description: Contains all necessary information identify a Stackable managed ZooKeeper ensemble and build a connection string for it. The main purpose for this struct is for other operators that need to reference a ZooKeeper ensemble to use in their CRDs. This has the benefit of keeping references to Zookeeper ensembles consistent throughout the entire stack. - properties: - chroot: - nullable: true - type: string - name: - type: string - namespace: - type: string - required: - - name - - namespace - type: object - required: - - hdfsReference - - masters - - regionServers - - version - - zookeeperReference - type: object - status: - nullable: true - properties: - clusterExecutionStatus: - description: Signals the current status of the cluster - enum: - - Stopped - - Running - nullable: true - type: string - conditions: - items: - description: Condition contains details for one aspect of the current state of this API Resource. - properties: - lastTransitionTime: - description: "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable." - format: date-time - type: string - message: - description: message is a human readable message indicating details about the transition. This may be an empty string. - type: string - observedGeneration: - description: "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance." - format: int64 - type: integer - reason: - description: "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty." - type: string - status: - description: "status of the condition, one of True, False, Unknown." - type: string - type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - type: string - required: - - lastTransitionTime - - message - - reason - - status - - type - type: object - type: array - currentCommand: - nullable: true - properties: - kind: - type: string - name: - type: string - namespace: - type: string - uid: - type: string - required: - - kind - - name - - namespace - - uid - type: object - history: - nullable: true - properties: - mapping: - additionalProperties: - properties: - name: - type: string - required: - - name - type: object - type: object - required: - - mapping - type: object - version: - description: The version of the product provided by the operator. Split into current and target version in order track upgrading and downgrading progress. - nullable: true - properties: - current: - enum: - - 2.4.6 - nullable: true - type: string - target: - enum: - - 2.4.6 - nullable: true - type: string - type: object - type: object - required: - - spec - title: HbaseCluster - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: restarts.command.hbase.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: command.hbase.stackable.tech - names: - categories: [] - kind: Restart - plural: restarts - shortNames: [] - singular: restart - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for RestartCommandSpec via `CustomResource`" - properties: - spec: - properties: - name: - type: string - roles: - items: - enum: - - Master - - RegionServer - type: string - nullable: true - type: array - rolling: - type: boolean - required: - - name - - rolling - type: object - status: - nullable: true - properties: - finishedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - startedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - type: object - required: - - spec - title: Restart - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: starts.command.hbase.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: command.hbase.stackable.tech - names: - categories: [] - kind: Start - plural: starts - shortNames: [] - singular: start - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for StartCommandSpec via `CustomResource`" - properties: - spec: - properties: - name: - type: string - roles: - items: - enum: - - Master - - RegionServer - type: string - nullable: true - type: array - rolling: - type: boolean - required: - - name - - rolling - type: object - status: - nullable: true - properties: - finishedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - startedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - type: object - required: - - spec - title: Start - type: object - served: true - storage: true - subresources: - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: stops.command.hbase.stackable.tech - annotations: - helm.sh/resource-policy: keep -spec: - group: command.hbase.stackable.tech - names: - categories: [] - kind: Stop - plural: stops - shortNames: [] - singular: stop - scope: Namespaced - versions: - - additionalPrinterColumns: [] - name: v1alpha1 - schema: - openAPIV3Schema: - description: "Auto-generated derived type for StopCommandSpec via `CustomResource`" - properties: - spec: - properties: - name: - type: string - roles: - items: - enum: - - Master - - RegionServer - type: string - nullable: true - type: array - rolling: - type: boolean - required: - - name - - rolling - type: object - status: - nullable: true - properties: - finishedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - startedAt: - description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. - format: date-time - nullable: true - type: string - type: object - required: - - spec - title: Stop - type: object - served: true - storage: true - subresources: - status: {} diff --git a/deploy/manifests/deployment.yaml b/deploy/manifests/deployment.yaml deleted file mode 100644 index fc75120d..00000000 --- a/deploy/manifests/deployment.yaml +++ /dev/null @@ -1,42 +0,0 @@ ---- -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -apiVersion: apps/v1 -kind: Deployment -metadata: - name: hbase-operator-deployment - labels: - app.kubernetes.io/name: hbase-operator - app.kubernetes.io/instance: hbase-operator - app.kubernetes.io/version: "0.2.0-nightly" -spec: - replicas: 1 - strategy: - type: Recreate - selector: - matchLabels: - app.kubernetes.io/name: hbase-operator - app.kubernetes.io/instance: hbase-operator - template: - metadata: - labels: - app.kubernetes.io/name: hbase-operator - app.kubernetes.io/instance: hbase-operator - spec: - serviceAccountName: hbase-operator-serviceaccount - securityContext: {} - containers: - - name: hbase-operator - securityContext: {} - image: "docker.stackable.tech/stackable/hbase-operator:0.2.0-nightly" - imagePullPolicy: IfNotPresent - resources: {} - volumeMounts: - - mountPath: /etc/stackable/hbase-operator/config-spec - name: config-spec - volumes: - - name: config-spec - configMap: - name: hbase-operator-configmap diff --git a/deploy/manifests/roles.yaml b/deploy/manifests/roles.yaml deleted file mode 100644 index a2291065..00000000 --- a/deploy/manifests/roles.yaml +++ /dev/null @@ -1,107 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: hbase-operator-clusterrole -rules: - # For Apache ZooKeeper dependents - - apiGroups: - - zookeeper.stackable.tech - resources: - - zookeeperclusters - verbs: - - get - - list - - watch - # For Apache HDFS dependents - - apiGroups: - - hdfs.stackable.tech - resources: - - hdfsclusters - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - nodes - verbs: - - list - - watch - - apiGroups: - - "" - resources: - - pods - - configmaps - - services - - endpoints - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - apps - resources: - - statefulsets - verbs: - - create - - delete - - list - - patch - - update - - watch - - apiGroups: - - batch - resources: - - jobs - verbs: - - create - - get - - list - - patch - - update - - watch - - apiGroups: - - apiextensions.k8s.io - resources: - - customresourcedefinitions - verbs: - - get - - apiGroups: - - command.hbase.stackable.tech - resources: - - inits - - restarts - - starts - - stops - verbs: - - get - - list - - patch - - watch - - apiGroups: - - command.hbase.stackable.tech - resources: - - inits/status - verbs: - - patch - - apiGroups: - - hbase.stackable.tech - resources: - - hbaseclusters - verbs: - - get - - list - - patch - - watch - - apiGroups: - - hbase.stackable.tech - resources: - - hbaseclusters/status - verbs: - - patch diff --git a/deploy/manifests/serviceaccount.yaml b/deploy/manifests/serviceaccount.yaml deleted file mode 100644 index 3cb302f8..00000000 --- a/deploy/manifests/serviceaccount.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -apiVersion: v1 -kind: ServiceAccount -metadata: - name: hbase-operator-serviceaccount - labels: - app.kubernetes.io/name: hbase-operator - app.kubernetes.io/instance: hbase-operator - app.kubernetes.io/version: "0.2.0-nightly" ---- -apiVersion: rbac.authorization.k8s.io/v1 -# This cluster role binding allows anyone in the "manager" group to read secrets in any namespace. -kind: ClusterRoleBinding -metadata: - name: hbase-operator-clusterrolebinding - labels: - app.kubernetes.io/name: hbase-operator - app.kubernetes.io/instance: hbase-operator - app.kubernetes.io/version: "0.2.0-nightly" -subjects: - - kind: ServiceAccount - name: hbase-operator-serviceaccount - namespace: default -roleRef: - kind: ClusterRole - name: hbase-operator-clusterrole - apiGroup: rbac.authorization.k8s.io diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index 1336fc94..00000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -FROM docker.stackable.tech/stackable/ubi8-rust-builder AS builder - -FROM registry.access.redhat.com/ubi8/ubi-minimal AS operator -LABEL maintainer="Stackable GmbH" - -# Update image -RUN microdnf update --disablerepo=* --enablerepo=ubi-8-baseos --enablerepo=ubi-8-baseos -y \ - && rm -rf /var/cache/yum \ - && microdnf install --disablerepo=* --enablerepo=ubi-8-baseos shadow-utils -y \ - && rm -rf /var/cache/yum - -COPY --from=builder /app/stackable-hbase-operator / -COPY deploy/config-spec/properties.yaml /etc/stackable/hbase-operator/config-spec/properties.yaml - -RUN groupadd -g 1000 stackable && adduser -u 1000 -g stackable -c 'Stackable Operator' stackable - -USER 1000:1000 - -ENTRYPOINT ["/stackable-hbase-operator"] -CMD ["run"] diff --git a/docs/antora.yml b/docs/antora.yml deleted file mode 100644 index a9b65580..00000000 --- a/docs/antora.yml +++ /dev/null @@ -1,5 +0,0 @@ -name: hbase -version: master -title: Stackable Operator for Apache HBase -nav: - - modules/ROOT/nav.adoc diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc deleted file mode 100644 index 707a5af8..00000000 --- a/docs/modules/ROOT/nav.adoc +++ /dev/null @@ -1,5 +0,0 @@ -* xref:building.adoc[] -* xref:installation.adoc[] -* xref:configuration.adoc[] -* xref:usage.adoc[] - diff --git a/docs/modules/ROOT/pages/building.adoc b/docs/modules/ROOT/pages/building.adoc deleted file mode 100644 index f6fd7cef..00000000 --- a/docs/modules/ROOT/pages/building.adoc +++ /dev/null @@ -1,6 +0,0 @@ -= Building the Operator - -This operator is written in Rust. -It is developed against the latest stable Rust release (1.56 at the time of writing). - - cargo build diff --git a/docs/modules/ROOT/pages/commandline_args.adoc b/docs/modules/ROOT/pages/commandline_args.adoc deleted file mode 100644 index 614185db..00000000 --- a/docs/modules/ROOT/pages/commandline_args.adoc +++ /dev/null @@ -1,11 +0,0 @@ - -=== product-config - -*Default value*: `/etc/stackable/stackable-hbase/config-spec/properties.yaml` - -*Required*: false - -*Multiple values:* false - - -This file contains property definitions for the Apache HBase configuration. diff --git a/docs/modules/ROOT/pages/configuration.adoc b/docs/modules/ROOT/pages/configuration.adoc deleted file mode 100644 index 3781792c..00000000 --- a/docs/modules/ROOT/pages/configuration.adoc +++ /dev/null @@ -1,8 +0,0 @@ -= Configuration - -== Command Line Parameters -This operator accepts the following command line parameters: - -include::commandline_args.adoc[] - - diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc deleted file mode 100644 index 725cc719..00000000 --- a/docs/modules/ROOT/pages/index.adoc +++ /dev/null @@ -1,10 +0,0 @@ -= Stackable Operator for Apache HBase - -This is an operator for Kubernetes that can manage https://https://hbase.apache.org/[Apache HBase] clusters. - -WARNING: This operator only works with images from the https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable%2Fhbase[Stackable] repository - -[source] ----- -docker pull docker.stackable.tech/stackable/hbase: ----- diff --git a/docs/modules/ROOT/pages/installation.adoc b/docs/modules/ROOT/pages/installation.adoc deleted file mode 100644 index 30060b71..00000000 --- a/docs/modules/ROOT/pages/installation.adoc +++ /dev/null @@ -1,95 +0,0 @@ -= Installation - -There are three ways to run the HBase Operator: - -1. Build from source. This is documented in xref:building.adoc[Building the Operator]. - -2. Operating System packages (dep & RPM) - -3. As a Docker container - -== Operating System Packages - -=== Debian - -We do provide `deb` packages for Debian 10: - -|=== -| Version | Repository - -| Development -| `https://repo.stackable.tech/repository/deb-dev/ buster main` - -| Stable -| `https://repo.stackable.tech/repository/deb-release/ buster main` -|=== - -To add these repositories run a command like this: - -[source,bash] ----- -echo "deb https://repo.stackable.tech/repository/deb-release/ buster main" | sudo tee -a /etc/apt/sources.list.d/stackable.list ----- - -After you added the repository run: - -[source,bash] ----- -sudo apt-get update -sudo apt-get install stackable-hbase-operator ----- - -=== RHEL/CentOS - -We do provide `RPM` packages for RHEL 7 & 8. - -|=== -| Version | Repository - -| Development RHEL 7 -| `https://repo.stackable.tech/repository/rpm-dev/el7` - -| Stable RHEL 7 -| `https://repo.stackable.tech/repository/rpm-release/el7` - -| Development RHEL 8 -| `https://repo.stackable.tech/repository/rpm-dev/el8` - -| Stable RHEL 8 -| `https://repo.stackable.tech/repository/rpm-release/el8` - -|=== - -Add this to `/etc/yum.repos.d/stackable.repo` and make sure to pick the corrrect repository: - -[source] ----- -[stackable] -name=Stackable -baseurl=https://repo.stackable.tech/repository/rpm-release/el8 -repo_gpgcheck=0 -enabled=1 -gpgcheck=0 ----- - -Install the Operator: - -[source,bash] ----- -sudo yum install stackable-hbase-operator ----- - -== Docker - -This Operator is published as a Docker image: - -[source] ----- -docker.stackable.tech/stackable/hbase-operator ----- - -To run it straight from Docker you can use this command: -[source,bash] ----- -docker run -e HBASE_OPERATOR_LOG=trace -e KUBECONFIG=/root/.kube/k3s.yaml --mount type=bind,source="$HOME/.kube/k3s.yaml",target="/root/.kube/k3s.yaml" -it docker.stackable.tech/stackable/hbase-operator:latest ----- diff --git a/docs/modules/ROOT/pages/usage.adoc b/docs/modules/ROOT/pages/usage.adoc deleted file mode 100644 index f109862c..00000000 --- a/docs/modules/ROOT/pages/usage.adoc +++ /dev/null @@ -1,54 +0,0 @@ -= Usage - -After installation, the CRD for this operator must be created: - - kubectl apply -f /etc/stackable/hbase-operator/crd/hbasecluster.crd.yaml - -The Stackable Operator for Apache HBase requires an active Apache ZooKeeper installation provided by Stackable to be present. - -The Stackable Operator for Apache HBase requires an active Apache HDFS installation provided by Stackable to be present. - -To create a single node Apache HBase (v2.4.6) cluster with Prometheus metrics exposed on port 9505 (master) and 9506 (region_server): - - cat <:9000/hbase - ./hdfs dfs -chown stackable hdfs://:9000/hbase - diff --git a/examples/restart.command.example.yaml b/examples/restart.command.example.yaml deleted file mode 100644 index 240a7d56..00000000 --- a/examples/restart.command.example.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: command.hbase.stackable.tech/v1alpha1 -kind: Restart -metadata: - name: hbase-cluster-command-restart -spec: - name: "simple" - rolling: true diff --git a/examples/simple-hbase-cluster.yaml b/examples/simple-hbase-cluster.yaml deleted file mode 100644 index 3c089c7e..00000000 --- a/examples/simple-hbase-cluster.yaml +++ /dev/null @@ -1,33 +0,0 @@ -apiVersion: hbase.stackable.tech/v1alpha1 -kind: HbaseCluster -metadata: - name: simple -spec: - version: 2.4.6 - hdfsReference: - namespace: default - name: simple - root: /hbase - zookeeperReference: - namespace: default - name: simple - masters: - roleGroups: - default: - selector: - matchLabels: - kubernetes.io/os: linux - replicas: 1 - config: - masterWebUiPort: 17000 - metricsPort: 9707 - regionServers: - roleGroups: - default: - selector: - matchLabels: - kubernetes.io/os: linux - replicas: 1 - config: - regionServerWebUiPort: 17001 - metricsPort: 9708 diff --git a/examples/start.command.example.yaml b/examples/start.command.example.yaml deleted file mode 100644 index ee6f34cd..00000000 --- a/examples/start.command.example.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: command.hbase.stackable.tech/v1alpha1 -kind: Start -metadata: - name: hbase-cluster-command-start -spec: - name: "simple" - rolling: true diff --git a/examples/stop.command.example.yaml b/examples/stop.command.example.yaml deleted file mode 100644 index 3ceb4ef1..00000000 --- a/examples/stop.command.example.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: command.hbase.stackable.tech/v1alpha1 -kind: Stop -metadata: - name: hbase-cluster-command-stop -spec: - name: "simple" - rolling: true diff --git a/packaging/buildrpm.sh b/packaging/buildrpm.sh deleted file mode 100755 index 1faeef48..00000000 --- a/packaging/buildrpm.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env bash -set -e - -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= - - -# This script creates an RPM package containing the binary created by this Cargo project. -# The script is not universally applicable, since it makes a few assumptions about the project structure: -# 1. The RPM scaffolding needs to be provided in `packaging/rpm` -# 2. The binary to be packaged needs to be created in target/release - -# The script takes two arguments: -# 1. the name of the rust crate that should be built and which produces the binary that should be packaged -# 2. the name of the binary which this crate produces - this is also used as the name of the RPM package that this script -# creates - this parameter is optional and will default to 1. if not specified - -# Check if one parameter was specified - we'll use this as the name parameter for all files -# This allows us to reuse the script across all operators -if [ -z $1 ]; then - echo "This script requires the project name to be specified as the first parameter!" - exit 1 -fi - -export WORKSPACE_NAME=$(basename $(pwd)) - -export PACKAGE_NAME=$1 - -# If a second parameter is specified this is used as the binary name, otherwise the first parameter -# is assumed to also specify the binary name -if [ -z $2 ]; then - export BINARY_FILE_NAME=$PACKAGE_NAME -else - export BINARY_FILE_NAME=$2 -fi - -BINARY_FILE_PATH=target/release/$BINARY_FILE_NAME - -# The package description is parsed from the output of `cargo metadata` by using jq. -# We need to look up the package with a select statement to match the name from an array of packages -# The name is passed into jq as a jq variable, as no substitution would take place within the single -# quotes of the jq expression. -export PACKAGE_DESCRIPTION=$(~/.cargo/bin/cargo metadata --format-version 1| jq --arg NAME "$PACKAGE_NAME" '.packages[] | select(.name == $NAME) | .description') -if [ -z "$PACKAGE_DESCRIPTION" ]; then - echo "Unable to parse package description from output of `cargo metadata`, cannot build RPM without this field!" - exit 2 -fi -echo - -# Check that we are being called from the main directory and the release build process has been run -if [ ! -f $BINARY_FILE_PATH ]; then - echo "Binary file not found at [$BINARY_FILE_PATH] - this script should be called from the root directory of the repository and 'cargo build --release' needs to have run before calling this script!" - exit 3 -fi - -echo Cleaning up prior build attempts -rm -rf target/rpm - -# Parse the version and release strings from the PKGID reported by Cargo -# This is in the form Path#Projectname:version, which we parse by repeated calls to awk with different separators -# This could most definitely be improved, but works for now -export VERSION_STRING=$(~/.cargo/bin/cargo pkgid --manifest-path rust/operator-binary/Cargo.toml | awk -F'#' '{print $2}' | awk -F':' '{print $2}') -echo version: ${VERSION_STRING} - -export PACKAGE_VERSION=$(echo ${VERSION_STRING} | awk -F '-' '{print $1}') - -# Any suffix like '-nightly' is split out into the release here, as - is not an allowed character in rpm versions -# The final release will look like 0.suffix or 0 if no suffix is specified. -export PACKAGE_RELEASE="0$(echo ${VERSION_STRING} | awk -F '-' '{ if ($2 != "") print "."$2;}')" - -echo Defined workspace name: [${WORKSPACE_NAME}] -echo Defined package name: [${PACKAGE_NAME}] -echo Defined binary name: [${BINARY_FILE_NAME}] -echo Defined package version: [${PACKAGE_VERSION}] -echo Defined package release: [${PACKAGE_RELEASE}] -echo Defined package description: [${PACKAGE_DESCRIPTION}] - -RPM_SCAFFOLDING_DIR=target/rpm/SOURCES/${BINARY_FILE_NAME}-${PACKAGE_VERSION} - -echo Creating directory scaffolding for RPM : ${RPM_SCAFFOLDING_DIR} -mkdir -p ${RPM_SCAFFOLDING_DIR} - -cp -r packaging/rpm/SOURCES/${BINARY_FILE_NAME}-VERSION/* ${RPM_SCAFFOLDING_DIR}/ -cp -r packaging/rpm/SPECS target/rpm/ - -# Copy assets to the specified locations -echo Running copy_assets.py in $(pwd) - -~/.cargo/bin/cargo metadata --format-version 1| $(dirname $0)/copy_assets.py ${PACKAGE_NAME} ${RPM_SCAFFOLDING_DIR} - -echo Creating tar archive -pushd target/rpm/SOURCES -tar czvf ${BINARY_FILE_NAME}-${PACKAGE_VERSION}.tar.gz ${BINARY_FILE_NAME}-${PACKAGE_VERSION} -popd - -echo Running rpmbuild -rpmbuild --define "_topdir `pwd`/target/rpm" -v -ba target/rpm/SPECS/${BINARY_FILE_NAME}.spec diff --git a/packaging/copy_assets.py b/packaging/copy_assets.py deleted file mode 100755 index 899b5ef8..00000000 --- a/packaging/copy_assets.py +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/env python3 - -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= - -# -# Reads the output of $(cargo metadata) from standard input and copies the assets as specified in the deb section -# to the specified . -# -# Usage: cargo metadata --format-version 1 | copy_assety.py -# -# Options: -# package-name: As present in $(cargo metadata) -# destination: The root of the folder where the assets are copied. This directory will be created if -# it doesn't exist already. -# -import sys -import json -import shutil -import os -import os.path - - -def assets(package_name, cargo_metadata): - for package in filter(lambda cargo_package: cargo_package['name'] == package_name, cargo_metadata['packages']): - return package['metadata']['deb']['assets'] - - -def copy_assets(root, assets): - """ - assets is a list of lists. Each enclosed list has three elements: (source, destination_folder, destination_file_mod) - - Example json: - "assets": [ - [ - "../target/release/stackable-zookeeper-operator", - "opt/stackable/zookeeper-operator/", - "755" - ], - [ - "../deploy/crd/zookeepercluster.crd.yaml", - "etc/stackable/zookeeper-operator/crd/", - "644" - ], - [ - "../deploy/config-spec/properties.yaml", - "etc/stackable/zookeeper-operator/config-spec/", - "644" - ] - ] - """ - for asset_def in assets: - source = asset_def[0][6:] ### remove the leading ../ - dest = asset_def[1] - dest_mod = int(asset_def[2], 8) - - ### build the destination file name - absolute_dest = os.path.join(root, dest, os.path.basename(source)) - ### create destination directory if doesn't exist already - os.makedirs(os.path.dirname(absolute_dest), mode=0o755, exist_ok=True) - print("Copying {} to {}".format(source, absolute_dest)) - shutil.copyfile(source, absolute_dest) - os.chmod(absolute_dest, dest_mod) - - -def main(args): - if len(args) != 3: - raise ValueError("Usage: copy_assets.py ") - - package_name = args[1] - destination = args[2] - - if not os.path.isdir(destination): - raise ValueError("Destination is not a directory: {}".format(destination)) - - cargo_deb_metadata = json.load(sys.stdin) - cargo_deb_assets = assets(package_name, cargo_deb_metadata) - copy_assets(destination, cargo_deb_assets) - -if __name__ == '__main__': - main(sys.argv) diff --git a/packaging/debian/stackable-hbase-operator.service b/packaging/debian/stackable-hbase-operator.service deleted file mode 100644 index 2ee3f304..00000000 --- a/packaging/debian/stackable-hbase-operator.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Stackable Operator for Apache HBase -Before= -After=network.target -[Service] -User=root -ExecStart=/opt/stackable/hbase-operator/stackable-hbase-operator -Restart=on-abort -StandardOutput=journal -StandardError=journal -Environment="HBASE_OPERATOR_LOG=info" -[Install] -WantedBy=multi-user.target diff --git a/packaging/rpm/SOURCES/stackable-hbase-operator-VERSION/usr/lib/systemd/system/stackable-hbase-operator.service b/packaging/rpm/SOURCES/stackable-hbase-operator-VERSION/usr/lib/systemd/system/stackable-hbase-operator.service deleted file mode 100644 index 2ee3f304..00000000 --- a/packaging/rpm/SOURCES/stackable-hbase-operator-VERSION/usr/lib/systemd/system/stackable-hbase-operator.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Stackable Operator for Apache HBase -Before= -After=network.target -[Service] -User=root -ExecStart=/opt/stackable/hbase-operator/stackable-hbase-operator -Restart=on-abort -StandardOutput=journal -StandardError=journal -Environment="HBASE_OPERATOR_LOG=info" -[Install] -WantedBy=multi-user.target diff --git a/packaging/rpm/SPECS/stackable-hbase-operator.spec b/packaging/rpm/SPECS/stackable-hbase-operator.spec deleted file mode 100644 index a7fc672c..00000000 --- a/packaging/rpm/SPECS/stackable-hbase-operator.spec +++ /dev/null @@ -1,62 +0,0 @@ -# ============= -# This file is automatically generated from the templates in stackabletech/operator-templating -# DON'T MANUALLY EDIT THIS FILE -# ============= -%define __spec_install_post %{nil} -%define __os_install_post %{_dbpath}/brp-compress -%define debug_package %{nil} -%define _servicedir /usr/lib/systemd/system -%define _version %{getenv:PACKAGE_VERSION} -%define _release %{getenv:PACKAGE_RELEASE} -%define _name %{getenv:BINARY_FILE_NAME} -%define _description %{getenv:PACKAGE_DESCRIPTION} -%define _bindir /opt/stackable/%{getenv:WORKSPACE_NAME} -%define _productconfigdir /etc/stackable/%{getenv:WORKSPACE_NAME}/config-spec -%define _crddir /etc/stackable/%{getenv:WORKSPACE_NAME}/crd - -Name: %{_name} -Summary: %{_description} -Version: %{_version} -Release: %{_release}%{?dist} -License: OSL 3.0 -Group: Applications/System -Source0: %{name}-%{version}.tar.gz - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root - -%description -%{summary} - -%prep -%setup -q - -%install -rm -rf %{buildroot} -mkdir -p %{buildroot} -cp -a * %{buildroot} - -%post -systemctl daemon-reload - -%preun -if [ $1 == 0 ]; then #uninstall - systemctl unmask %{name}.service - systemctl stop %{name}.service - systemctl disable %{name}.service -fi - -%postun -if [ $1 == 0 ]; then #uninstall - systemctl daemon-reload - systemctl reset-failed -fi - -%clean -rm -rf %{buildroot} - -%files -%defattr(-,root,root,-) -%{_bindir}/* -%{_servicedir}/%{name}.service -%{_productconfigdir}/* -%{_crddir}/* diff --git a/python/cargo-version.py b/python/cargo-version.py deleted file mode 100755 index 474240dd..00000000 --- a/python/cargo-version.py +++ /dev/null @@ -1,177 +0,0 @@ -#!/usr/bin/env python3 -# -# Utility for viewing and managing versions of cargo workspaces and crates. -# For workspaces, it assumes that all crate members use a single shared version. -# -# usage: cargo-version.py [-h] [-p PROJECT] [-r] [-n {major,minor,patch}] [-s SET] [-o] -# -# Change versions of cargo projects. -# -# optional arguments: -# -h, --help show this help message and exit -# -p PROJECT, --project PROJECT -# Project folder -# -r, --release Version -# -n {major,minor,patch}, --next {major,minor,patch} -# Version -# -s SET, --set SET Version -# -o, --show Version -# - -import toml -import semver -import argparse - -class Crate: - def __init__(self, path, name, version, dependencies): - self.path = path - self.name = name - self.version = version - self.dependencies = dependencies - - def with_dependencies(self, names): - deps = {k:v for k,v in self.dependencies.items() if k in names} - return Crate(self.path, self.name, self.version, deps) - - @classmethod - def finalize(cls, version): - return str(semver.VersionInfo.parse(version).finalize_version()) - - @classmethod - def bump_level(cls, version, level): - v = semver.VersionInfo.parse(version) - if level == 'major': - return str(v.bump_major()) - elif level == 'minor': - return str(v.bump_minor()) - elif level == 'patch': - return str(v.bump_patch()) - else: - return str(v.bump_prerelease('nightly'))[:-2] ### remove the .1 suffix that semver always adds to the prererelease. - - @classmethod - def prerelease(cls, version, prerelease): - v = semver.VersionInfo.parse(version) - return str(semver.VersionInfo(v.major, v.minor, v.patch, prerelease)) - - def finalize_version(self): - return Crate(self.path, self.name, Crate.finalize(self.version), self.dependencies.copy()) - - def bump_version(self, level): - return Crate(self.path, self.name, Crate.bump_level(self.version, level), self.dependencies.copy()) - - def set_version(self, version): - return Crate(self.path, self.name, version, self.dependencies.copy()) - - def set_prerelease(self, prerelease): - return Crate(self.path, self.name, Crate.prerelease(self.version, prerelease), self.dependencies.copy()) - - def next_version(self): - return Crate(self.path, self.name, str(semver.VersionInfo.parse(self.version).next_version('patch')), self.dependencies.copy()) - - def show_version(self): - return self.version - - def save(self, previous): - contents = [] - cargo_file = f"{self.path}/Cargo.toml" - with open(cargo_file, 'r') as r: - for line in r.readlines(): - if line.startswith("version"): - line = line.replace(previous.version, self.version) - else: - for dname, dversion in self.dependencies.items(): - if line.startswith(dname): - line = line.replace(previous.dependencies[dname], dversion) - contents.append(line) - - with open(cargo_file, 'w') as w: - w.write(''.join(contents)) - - def __str__(self): - return f'Crate({self.path}, {self.name}, {self.version}, {self.dependencies})' - -class Workspace: - def __init__(self, crates): - names = set([c.name for c in crates]) - self.crates = {c.name: c.with_dependencies(names) for c in crates} - - def finalize_version(self): - crates = {c.name: c.finalize_version() for c in self.crates.values()} - return Workspace(Workspace.update_dependencies(crates).values()) - - def bump_version(self, level): - crates = {c.name: c.bump_version(level) for c in self.crates.values()} - return Workspace(Workspace.update_dependencies(crates).values()) - - def set_version(self, version): - crates = {c.name: c.set_version(version) for c in self.crates.values()} - return Workspace(Workspace.update_dependencies(crates).values()) - - def set_prerelease(self, prerelease): - crates = {c.name: c.set_prerelease(prerelease) for c in self.crates.values()} - return Workspace(Workspace.update_dependencies(crates).values()) - - def next_version(self): - crates = {c.name: c.next_version() for c in self.crates.values()} - return Workspace(Workspace.update_dependencies(crates).values()) - - def show_version(self): - for c in self.crates.values(): - return c.show_version() - return "0.0.0" - - @classmethod - def update_dependencies(cls, crate_dict): - for crate in crate_dict.values(): - for dep in crate.dependencies.keys(): - crate.dependencies[dep] = crate_dict[dep].version - return crate_dict - - def __str__(self): - return f'Workspace({[str(c) for c in self.crates.values()]})' - - def save(self, previous): - for cn in self.crates.keys(): - self.crates[cn].save(previous.crates[cn]) - -def load(root): - r = toml.load(f"{root}/Cargo.toml") - if "workspace" in r: - return Workspace([load(f"{root}/{path}") for path in r["workspace"]["members"]]) - else: - return Crate(path=root, name=r["package"]["name"], version=r["package"]["version"], dependencies={dn: r["dependencies"][dn]["version"] for dn in r["dependencies"] if "version" in r["dependencies"][dn]}) - -def parse_args(): - parser = argparse.ArgumentParser(description="Change versions of cargo projects.") - parser.add_argument("-p", "--project", help="Project folder", default=".") - parser.add_argument("-r", "--release", help="Version", action="store_true") - parser.add_argument("-n", "--next", help="Version", choices=['major', 'minor', 'patch']) - parser.add_argument("-s", "--set", help="Version" ) - parser.add_argument("-o", "--show", help="Version", action="store_true") - parser.add_argument("-m", "--prerelease", help="Set pre-prelease string." ) - return parser.parse_args() - -if __name__ == "__main__": - args = parse_args() - - old = load(args.project.rstrip('/')) - - if args.release: - new = old.finalize_version() - new.save(old) - elif args.next: - new = old.bump_version(args.next).bump_version("prerelease") - new.save(old) - elif args.set: - # sanity check - semver.VersionInfo.parse(args.set) - new = old.set_version(args.set) - new.save(old) - elif args.prerelease: - new = old.set_prerelease(args.prerelease) - new.save(old) - elif args.show: - print(old.show_version()) - - diff --git a/python/requirements.txt b/python/requirements.txt deleted file mode 100644 index 143c5421..00000000 --- a/python/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -semver==2.13.0 -toml==0.10.2 diff --git a/rust/crd/Cargo.toml b/rust/crd/Cargo.toml deleted file mode 100644 index 2dbd7188..00000000 --- a/rust/crd/Cargo.toml +++ /dev/null @@ -1,32 +0,0 @@ -[package] -authors = ["Lars Francke "] -description = "Contains the Apache HBase CRD structs and utilities" -edition = "2018" -license = "OSL-3.0" -name = "stackable-hbase-crd" -repository = "https://github.com/stackabletech/hbase-operator" -version = "0.2.0-nightly" - -[dependencies] -stackable-hdfs-crd = { git = "https://github.com/stackabletech/hdfs-operator.git", tag = "0.2.0"} -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "0.4.0" } -stackable-zookeeper-crd = { git = "https://github.com/stackabletech/zookeeper-operator.git", tag = "0.5.0"} - -duplicate = "0.3.0" -semver = "1.0" -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" -strum = "0.23" -strum_macros = "0.23" -thiserror = "1.0" -tracing = "0.1" - -[dev-dependencies] -indoc = "1.0" -rstest = "0.12" -serde_yaml = "0.8" - -[features] -default = ["native-tls"] -native-tls = ["stackable-operator/native-tls"] -rustls-tls = ["stackable-operator/rustls-tls"] diff --git a/rust/crd/src/commands.rs b/rust/crd/src/commands.rs deleted file mode 100644 index 439a8f42..00000000 --- a/rust/crd/src/commands.rs +++ /dev/null @@ -1,145 +0,0 @@ -use crate::HbaseRole; -use duplicate::duplicate; -use serde::{Deserialize, Serialize}; -use serde_json::json; -use serde_json::Value; -use stackable_operator::command::{CanBeRolling, HasRoles}; -use stackable_operator::command_controller::Command; -use stackable_operator::k8s_openapi::apimachinery::pkg::apis::meta::v1::Time; -use stackable_operator::k8s_openapi::chrono::Utc; -use stackable_operator::kube::CustomResource; -use stackable_operator::schemars::{self, JsonSchema}; - -#[derive(Clone, CustomResource, Debug, Deserialize, Eq, JsonSchema, PartialEq, Serialize)] -#[kube( - group = "command.hbase.stackable.tech", - version = "v1alpha1", - kind = "Restart", - plural = "restarts", - status = "CommandStatus", - namespaced, - kube_core = "stackable_operator::kube::core", - k8s_openapi = "stackable_operator::k8s_openapi", - schemars = "stackable_operator::schemars" -)] -#[serde(rename_all = "camelCase")] -pub struct RestartCommandSpec { - pub name: String, - pub rolling: bool, - pub roles: Option>, -} - -#[derive(Clone, CustomResource, Debug, Deserialize, Eq, JsonSchema, PartialEq, Serialize)] -#[kube( - group = "command.hbase.stackable.tech", - version = "v1alpha1", - kind = "Start", - plural = "starts", - namespaced, - kube_core = "stackable_operator::kube::core", - k8s_openapi = "stackable_operator::k8s_openapi", - schemars = "stackable_operator::schemars" -)] -#[kube(status = "CommandStatus")] -#[serde(rename_all = "camelCase")] -pub struct StartCommandSpec { - pub name: String, - pub rolling: bool, - pub roles: Option>, -} - -#[derive(Clone, CustomResource, Debug, Deserialize, Eq, JsonSchema, PartialEq, Serialize)] -#[kube( - group = "command.hbase.stackable.tech", - version = "v1alpha1", - kind = "Stop", - plural = "stops", - namespaced, - kube_core = "stackable_operator::kube::core", - k8s_openapi = "stackable_operator::k8s_openapi", - schemars = "stackable_operator::schemars" -)] -#[kube(status = "CommandStatus")] -#[serde(rename_all = "camelCase")] -pub struct StopCommandSpec { - pub name: String, - pub rolling: bool, - pub roles: Option>, -} - -#[derive(Clone, Debug, Default, Deserialize, Serialize, JsonSchema)] -#[serde(rename_all = "camelCase")] -pub struct CommandStatus { - #[serde(skip_serializing_if = "Option::is_none")] - pub started_at: Option