From 2859d54685c435b2c893b6997cd94cf4efd04a75 Mon Sep 17 00:00:00 2001 From: Artur Troian Date: Mon, 30 Jan 2023 20:06:26 -0500 Subject: [PATCH] feat: gpu support Signed-off-by: Artur Troian --- .env | 2 +- .gitignore | 2 + .goreleaser-docker-arm64.yaml | 35 - ...cker-amd64.yaml => .goreleaser-docker.yaml | 18 + .goreleaser.yaml | 12 +- Makefile | 2 +- _run/common-commands.mk | 2 +- _run/common-kind.mk | 146 +-- _run/common-kube.mk | 156 +++ _run/common-kustomize.mk | 2 +- _run/common.mk | 1 - _run/kind-config-calico.yaml | 3 +- ...b-ip.yaml => kube-config-metal-lb-ip.yaml} | 0 _run/kube/Makefile | 14 +- _run/lite/.envrc | 3 - _run/lite/.gitignore | 2 - _run/lite/Makefile | 32 - _run/lite/README.md | 416 ------- _run/lite/provider.yaml | 4 - _run/single/Makefile | 16 +- _run/ssh/.envrc | 5 + _run/ssh/.gitignore | 1 + _run/ssh/Dockerfile | 5 + _run/ssh/Makefile | 54 + _run/ssh/README.md | 290 +++++ _run/ssh/deployment.yaml | 55 + _run/{lite/deployment.yaml => ssh/gpu.yaml} | 33 +- _run/ssh/kind-config-80.yaml | 14 + _run/ssh/kind-config.yaml | 13 + _run/ssh/provider.yaml | 13 + _run/ssh/test.yaml | 40 + balance_checker.go | 9 +- bidengine/config.go | 2 +- bidengine/order.go | 8 +- bidengine/order_test.go | 22 +- bidengine/pricing.go | 6 +- bidengine/pricing_test.go | 6 +- bidengine/provider_attributes.go | 6 +- bidengine/provider_attributes_test.go | 6 +- bidengine/service.go | 5 +- client/broadcaster/serial.go | 7 +- cluster/client.go | 27 +- cluster/config.go | 1 + cluster/hostname.go | 6 +- cluster/hostname_test.go | 5 +- cluster/inventory.go | 47 +- cluster/inventory_test.go | 20 +- cluster/kube/apply.go | 9 +- cluster/kube/builder/builder.go | 4 +- cluster/kube/builder/builder_test.go | 2 +- cluster/kube/builder/deployment.go | 4 +- cluster/kube/builder/manifest.go | 6 +- cluster/kube/builder/namespace.go | 4 +- cluster/kube/builder/netpol.go | 4 +- cluster/kube/builder/podsecuritypolicy.go | 4 +- cluster/kube/builder/service.go | 4 +- cluster/kube/builder/settings.go | 1 + cluster/kube/builder/statefulset.go | 4 +- cluster/kube/builder/workload.go | 15 +- cluster/kube/cleanup.go | 4 +- cluster/kube/client.go | 34 +- cluster/kube/client_exec.go | 11 +- cluster/kube/client_exec_test.go | 13 +- cluster/kube/client_hostname_connections.go | 30 +- cluster/kube/client_ingress.go | 14 +- cluster/kube/client_test.go | 30 +- .../recover_lease_id_from_labels.go | 2 +- cluster/kube/cluster_ip_connections.go | 29 +- cluster/kube/deploy_test.go | 9 +- cluster/kube/inventory.go | 38 +- cluster/kube/inventory_test.go | 14 +- cluster/kube/k8s_integration_test.go | 2 +- cluster/kube/metallb/client.go | 12 +- cluster/kube/resourcetypes.go | 4 +- cluster/kube/resourcetypes_test.go | 2 +- cluster/manager.go | 30 +- cluster/manager_cleanup.go | 9 +- cluster/mocks/client.go | 102 +- cluster/mocks/cluster.go | 23 +- cluster/mocks/deployment.go | 20 +- cluster/mocks/hostname_service_client.go | 16 +- cluster/mocks/ip_operator_client.go | 8 +- cluster/mocks/metallb_client.go | 10 +- cluster/mocks/read_client.go | 58 +- cluster/mocks/reservation.go | 23 +- cluster/mocks/service.go | 60 +- cluster/monitor.go | 7 +- cluster/monitor_test.go | 9 +- cluster/operatorclients/ip_operator_client.go | 7 +- cluster/reservation.go | 7 +- cluster/resourcetypes_test.go | 2 +- cluster/service.go | 15 +- cluster/types/v1beta1/directives.go | 16 - cluster/types/v1beta2/directives.go | 4 +- cluster/types/v1beta2/hostname.go | 2 +- cluster/types/v1beta2/interfaces.go | 2 +- cluster/types/v1beta2/ip.go | 4 +- cluster/types/v1beta2/reservation.go | 4 +- cluster/types/v1beta2/types.go | 6 +- cluster/types/v1beta3/directives.go | 28 + .../types/{v1beta1 => v1beta3}/hostname.go | 6 +- .../types/{v1beta1 => v1beta3}/interfaces.go | 4 +- cluster/types/v1beta3/ip.go | 30 + .../types/{v1beta1 => v1beta3}/reservation.go | 6 +- cluster/types/{v1beta1 => v1beta3}/types.go | 106 +- cluster/util/endpoint_quantity.go | 2 +- cluster/util/ip_sharing_key.go | 2 +- cluster/util/lease_id_to_namespace.go | 2 +- cluster/util/service_discovery_agent.go | 7 +- cluster/util/service_discovery_agent_types.go | 5 +- cmd/provider-services/cmd/auth_server.go | 9 +- cmd/provider-services/cmd/helpers.go | 4 +- cmd/provider-services/cmd/leaseEvents.go | 10 +- cmd/provider-services/cmd/leaseLogs.go | 5 +- cmd/provider-services/cmd/manifest.go | 9 +- cmd/provider-services/cmd/migrate.go | 4 +- .../cmd/migrate/v0_14tov0_16.go | 449 ------- cmd/provider-services/cmd/root.go | 2 +- cmd/provider-services/cmd/run.go | 11 +- config.go | 6 +- event/events.go | 6 +- gateway/rest/client.go | 14 +- gateway/rest/client_shell.go | 2 +- gateway/rest/integration_test.go | 24 +- gateway/rest/middleware.go | 4 +- gateway/rest/path.go | 2 +- gateway/rest/router.go | 10 +- gateway/rest/router_migrate.go | 2 +- gateway/rest/router_migrate_endpoint.go | 6 +- gateway/rest/router_migrate_test.go | 4 +- gateway/rest/router_test.go | 32 +- gateway/rest/server.go | 2 +- gateway/rest/types.go | 2 +- gateway/utils/utils.go | 5 +- go.mod | 267 ++-- go.sum | 1069 +++++++++++------ integration/e2e_test.go | 10 +- integration/escrow_monitor_test.go | 4 +- integration/persistentstorage_test.go | 10 +- make/codegen.mk | 9 +- make/init.mk | 17 +- make/mod.mk | 2 - make/releasing.mk | 18 +- make/setup-cache.mk | 2 +- make/test-integration.mk | 2 +- manifest/manager.go | 15 +- manifest/manager_test.go | 22 +- manifest/mocks/client.go | 14 +- manifest/parse.go | 28 + manifest/service.go | 10 +- manifest/types.go | 4 +- manifest/watchdog.go | 4 +- manifest/watchdog_test.go | 6 +- mocks/client.go | 10 +- .../hostnameoperator/hostname_operator.go | 12 +- .../hostname_operator_test.go | 8 +- .../hostname_operator_types.go | 4 +- operator/inventory/ceph.go | 12 +- operator/inventory/cmd.go | 14 +- operator/inventory/rancher.go | 10 +- operator/inventory/types.go | 11 +- operator/ipoperator/ip_operator.go | 6 +- operator/ipoperator/ip_operator_test.go | 9 +- operator/ipoperator/ip_operator_types.go | 8 +- .../types/delete_reservation_request.go | 2 +- .../ipoperator/types/reservation_request.go | 2 +- operator/operatorcommon/ignore_list.go | 2 +- pkg/apis/akash.network/crd.yaml | 203 +++- pkg/apis/akash.network/v1/doc.go | 24 - .../akash.network/v1/zz_generated.deepcopy.go | 346 ------ .../akash.network/v2beta1/migrate/manifest.go | 97 -- .../v2beta1/migrate/provider_host.go | 21 - pkg/apis/akash.network/v2beta1/types.go | 19 +- .../v2beta1/zz_generated.deepcopy.go | 7 +- pkg/apis/akash.network/v2beta2/doc.go | 6 + .../k8s_integration_test.go | 8 +- .../akash.network/v2beta2/migrate/manifest.go | 97 ++ .../v2beta2/migrate/provider_host.go | 21 + .../akash.network/{v1 => v2beta2}/register.go | 13 +- .../akash.network/{v1 => v2beta2}/types.go | 274 +++-- .../akash.network/v2beta2/types_inventory.go | 80 ++ .../{v2beta1 => v2beta2}/types_test.go | 4 +- .../v2beta2/zz_generated.deepcopy.go | 737 ++++++++++++ pkg/apis/boilerplate.go.txt | 16 + pkg/client/clientset/versioned/clientset.go | 27 +- pkg/client/clientset/versioned/doc.go | 2 +- .../versioned/fake/clientset_generated.go | 16 +- pkg/client/clientset/versioned/fake/doc.go | 2 +- .../clientset/versioned/fake/register.go | 20 +- pkg/client/clientset/versioned/scheme/doc.go | 2 +- .../clientset/versioned/scheme/register.go | 20 +- .../v2beta1/akash.network_client.go | 2 +- .../typed/akash.network/v2beta1/doc.go | 2 +- .../typed/akash.network/v2beta1/fake/doc.go | 2 +- .../v2beta1/fake/fake_akash.network_client.go | 2 +- .../v2beta1/fake/fake_inventory.go | 2 +- .../v2beta1/fake/fake_inventoryrequest.go | 2 +- .../v2beta1/fake/fake_manifest.go | 2 +- .../v2beta1/fake/fake_providerhost.go | 2 +- .../v2beta1/fake/fake_providerleasedip.go | 2 +- .../v2beta1/generated_expansion.go | 2 +- .../typed/akash.network/v2beta1/inventory.go | 2 +- .../akash.network/v2beta1/inventoryrequest.go | 2 +- .../typed/akash.network/v2beta1/manifest.go | 2 +- .../akash.network/v2beta1/providerhost.go | 2 +- .../akash.network/v2beta1/providerleasedip.go | 2 +- .../{v1 => v2beta2}/akash.network_client.go | 55 +- .../akash.network/{v1 => v2beta2}/doc.go | 4 +- .../akash.network/{v1 => v2beta2}/fake/doc.go | 2 +- .../fake/fake_akash.network_client.go | 24 +- .../v2beta2/fake/fake_inventory.go | 133 ++ .../v2beta2/fake/fake_inventoryrequest.go | 133 ++ .../{v1 => v2beta2}/fake/fake_manifest.go | 52 +- .../{v1 => v2beta2}/fake/fake_providerhost.go | 52 +- .../v2beta2/fake/fake_providerleasedip.go | 142 +++ .../{v1 => v2beta2}/generated_expansion.go | 10 +- .../typed/akash.network/v2beta2/inventory.go | 184 +++ .../akash.network/v2beta2/inventoryrequest.go | 184 +++ .../akash.network/{v1 => v2beta2}/manifest.go | 58 +- .../{v1 => v2beta2}/providerhost.go | 58 +- .../akash.network/v2beta2/providerleasedip.go | 195 +++ .../akash.network/interface.go | 18 +- .../akash.network/v2beta1/interface.go | 2 +- .../akash.network/v2beta1/inventory.go | 2 +- .../akash.network/v2beta1/inventoryrequest.go | 2 +- .../akash.network/v2beta1/manifest.go | 2 +- .../akash.network/v2beta1/providerhost.go | 2 +- .../akash.network/v2beta1/providerleasedip.go | 2 +- .../{v1 => v2beta2}/interface.go | 25 +- .../akash.network/v2beta2/inventory.go | 89 ++ .../akash.network/v2beta2/inventoryrequest.go | 89 ++ .../akash.network/{v1 => v2beta2}/manifest.go | 28 +- .../{v1 => v2beta2}/providerhost.go | 28 +- .../akash.network/v2beta2/providerleasedip.go | 90 ++ .../informers/externalversions/factory.go | 81 +- .../informers/externalversions/generic.go | 24 +- .../internalinterfaces/factory_interfaces.go | 2 +- .../v2beta1/expansion_generated.go | 2 +- .../akash.network/v2beta1/inventory.go | 2 +- .../akash.network/v2beta1/inventoryrequest.go | 2 +- .../listers/akash.network/v2beta1/manifest.go | 2 +- .../akash.network/v2beta1/providerhost.go | 2 +- .../akash.network/v2beta1/providerleasedip.go | 2 +- .../{v1 => v2beta2}/expansion_generated.go | 20 +- .../akash.network/v2beta2/inventory.go | 68 ++ .../akash.network/v2beta2/inventoryrequest.go | 68 ++ .../akash.network/{v1 => v2beta2}/manifest.go | 26 +- .../{v1 => v2beta2}/providerhost.go | 26 +- .../akash.network/v2beta2/providerleasedip.go | 99 ++ script/install_dev_dependencies.sh | 148 +++ script/is_local_gomod.sh | 8 +- script/load_docker2ctr.sh | 22 + script/load_docker2kind.sh | 15 + script/setup-kube.sh | 167 +++ service.go | 4 +- session/session.go | 2 +- testutil/manifest/{ => v2beta1}/manifest.go | 4 +- .../manifest/{ => v2beta1}/manifest_app.go | 8 +- .../{ => v2beta1}/manifest_overflow.go | 6 +- .../manifest/{ => v2beta1}/manifest_rand.go | 4 +- testutil/manifest/v2beta2/manifest.go | 30 + testutil/manifest/v2beta2/manifest_app.go | 74 ++ .../manifest/v2beta2/manifest_overflow.go | 78 ++ testutil/manifest/v2beta2/manifest_rand.go | 60 + testutil/provider/provider.go | 2 +- types.go | 2 +- 266 files changed, 6349 insertions(+), 3240 deletions(-) delete mode 100644 .goreleaser-docker-arm64.yaml rename .goreleaser-docker-amd64.yaml => .goreleaser-docker.yaml (60%) create mode 100644 _run/common-kube.mk rename _run/{kind-config-metal-lb-ip.yaml => kube-config-metal-lb-ip.yaml} (100%) delete mode 100644 _run/lite/.envrc delete mode 100644 _run/lite/.gitignore delete mode 100644 _run/lite/Makefile delete mode 100644 _run/lite/README.md delete mode 100644 _run/lite/provider.yaml create mode 100644 _run/ssh/.envrc create mode 100644 _run/ssh/.gitignore create mode 100644 _run/ssh/Dockerfile create mode 100644 _run/ssh/Makefile create mode 100644 _run/ssh/README.md create mode 100644 _run/ssh/deployment.yaml rename _run/{lite/deployment.yaml => ssh/gpu.yaml} (51%) create mode 100644 _run/ssh/kind-config-80.yaml create mode 100644 _run/ssh/kind-config.yaml create mode 100644 _run/ssh/provider.yaml create mode 100644 _run/ssh/test.yaml delete mode 100644 cluster/types/v1beta1/directives.go create mode 100644 cluster/types/v1beta3/directives.go rename cluster/types/{v1beta1 => v1beta3}/hostname.go (86%) rename cluster/types/{v1beta1 => v1beta3}/interfaces.go (83%) create mode 100644 cluster/types/v1beta3/ip.go rename cluster/types/{v1beta1 => v1beta3}/reservation.go (54%) rename cluster/types/{v1beta1 => v1beta3}/types.go (51%) delete mode 100644 cmd/provider-services/cmd/migrate/v0_14tov0_16.go create mode 100644 manifest/parse.go delete mode 100644 pkg/apis/akash.network/v1/doc.go delete mode 100644 pkg/apis/akash.network/v1/zz_generated.deepcopy.go delete mode 100644 pkg/apis/akash.network/v2beta1/migrate/manifest.go delete mode 100644 pkg/apis/akash.network/v2beta1/migrate/provider_host.go create mode 100644 pkg/apis/akash.network/v2beta2/doc.go rename pkg/apis/akash.network/{v2beta1 => v2beta2}/k8s_integration_test.go (94%) create mode 100644 pkg/apis/akash.network/v2beta2/migrate/manifest.go create mode 100644 pkg/apis/akash.network/v2beta2/migrate/provider_host.go rename pkg/apis/akash.network/{v1 => v2beta2}/register.go (79%) rename pkg/apis/akash.network/{v1 => v2beta2}/types.go (51%) create mode 100644 pkg/apis/akash.network/v2beta2/types_inventory.go rename pkg/apis/akash.network/{v2beta1 => v2beta2}/types_test.go (87%) create mode 100644 pkg/apis/akash.network/v2beta2/zz_generated.deepcopy.go create mode 100644 pkg/apis/boilerplate.go.txt rename pkg/client/clientset/versioned/typed/akash.network/{v1 => v2beta2}/akash.network_client.go (58%) rename pkg/client/clientset/versioned/typed/akash.network/{v1 => v2beta2}/doc.go (92%) rename pkg/client/clientset/versioned/typed/akash.network/{v1 => v2beta2}/fake/doc.go (94%) rename pkg/client/clientset/versioned/typed/akash.network/{v1 => v2beta2}/fake/fake_akash.network_client.go (54%) create mode 100644 pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_inventory.go create mode 100644 pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_inventoryrequest.go rename pkg/client/clientset/versioned/typed/akash.network/{v1 => v2beta2}/fake/fake_manifest.go (71%) rename pkg/client/clientset/versioned/typed/akash.network/{v1 => v2beta2}/fake/fake_providerhost.go (71%) create mode 100644 pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_providerleasedip.go rename pkg/client/clientset/versioned/typed/akash.network/{v1 => v2beta2}/generated_expansion.go (78%) create mode 100644 pkg/client/clientset/versioned/typed/akash.network/v2beta2/inventory.go create mode 100644 pkg/client/clientset/versioned/typed/akash.network/v2beta2/inventoryrequest.go rename pkg/client/clientset/versioned/typed/akash.network/{v1 => v2beta2}/manifest.go (68%) rename pkg/client/clientset/versioned/typed/akash.network/{v1 => v2beta2}/providerhost.go (70%) create mode 100644 pkg/client/clientset/versioned/typed/akash.network/v2beta2/providerleasedip.go rename pkg/client/informers/externalversions/akash.network/{v1 => v2beta2}/interface.go (64%) create mode 100644 pkg/client/informers/externalversions/akash.network/v2beta2/inventory.go create mode 100644 pkg/client/informers/externalversions/akash.network/v2beta2/inventoryrequest.go rename pkg/client/informers/externalversions/akash.network/{v1 => v2beta2}/manifest.go (76%) rename pkg/client/informers/externalversions/akash.network/{v1 => v2beta2}/providerhost.go (76%) create mode 100644 pkg/client/informers/externalversions/akash.network/v2beta2/providerleasedip.go rename pkg/client/listers/akash.network/{v1 => v2beta2}/expansion_generated.go (63%) create mode 100644 pkg/client/listers/akash.network/v2beta2/inventory.go create mode 100644 pkg/client/listers/akash.network/v2beta2/inventoryrequest.go rename pkg/client/listers/akash.network/{v1 => v2beta2}/manifest.go (81%) rename pkg/client/listers/akash.network/{v1 => v2beta2}/providerhost.go (80%) create mode 100644 pkg/client/listers/akash.network/v2beta2/providerleasedip.go create mode 100755 script/install_dev_dependencies.sh create mode 100755 script/load_docker2ctr.sh create mode 100755 script/load_docker2kind.sh create mode 100755 script/setup-kube.sh rename testutil/manifest/{ => v2beta1}/manifest.go (88%) rename testutil/manifest/{ => v2beta1}/manifest_app.go (86%) rename testutil/manifest/{ => v2beta1}/manifest_overflow.go (91%) rename testutil/manifest/{ => v2beta1}/manifest_rand.go (94%) create mode 100644 testutil/manifest/v2beta2/manifest.go create mode 100644 testutil/manifest/v2beta2/manifest_app.go create mode 100644 testutil/manifest/v2beta2/manifest_overflow.go create mode 100644 testutil/manifest/v2beta2/manifest_rand.go diff --git a/.env b/.env index 441882c45..06cd756ab 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ -GOLANG_VERSION=1.19.2 +GOLANG_VERSION=1.20.2 KINDEST_VERSION=v1.24.7 GORELEASER_VERSION=v1.11.4 GO111MODULE=on diff --git a/.gitignore b/.gitignore index 7a20a983e..0d5963b7f 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,5 @@ coverage.txt go.work go.work.sum + +.devenv diff --git a/.goreleaser-docker-arm64.yaml b/.goreleaser-docker-arm64.yaml deleted file mode 100644 index 7a51514b3..000000000 --- a/.goreleaser-docker-arm64.yaml +++ /dev/null @@ -1,35 +0,0 @@ -project_name: provider -env: - - GO111MODULE=on - - DOCKER_CLI_EXPERIMENTAL="enabled" -builds: - - id: provider-services-linux - binary: provider-services - main: ./cmd/provider-services - goarch: - - arm64 - goos: - - linux - flags: - - "-mod={{ .Env.MOD }}" - - "-tags={{ .Env.BUILD_TAGS }}" - - -trimpath - ldflags: - - "{{ .Env.BUILD_VARS }}" - - "{{ .Env.STRIP_FLAGS }}" -dockers: - - dockerfile: Dockerfile - use: buildx - goos: linux - goarch: arm64 - build_flag_templates: - - --platform=linux/arm64 - - --label=org.opencontainers.image.title={{ .ProjectName }} - - --label=org.opencontainers.image.description={{ .ProjectName }} - - --label=org.opencontainers.image.url={{.GitURL}} - - --label=org.opencontainers.image.source={{.GitURL}} - - --label=org.opencontainers.image.version={{ .Version }} - - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }} - - --label=org.opencontainers.image.revision={{ .FullCommit }} - image_templates: - - '{{ .Env.DOCKER_IMAGE }}:latest-arm64' diff --git a/.goreleaser-docker-amd64.yaml b/.goreleaser-docker.yaml similarity index 60% rename from .goreleaser-docker-amd64.yaml rename to .goreleaser-docker.yaml index 815b315bd..364e84030 100644 --- a/.goreleaser-docker-amd64.yaml +++ b/.goreleaser-docker.yaml @@ -8,6 +8,7 @@ builds: main: ./cmd/provider-services goarch: - amd64 + - arm64 goos: - linux flags: @@ -17,6 +18,8 @@ builds: ldflags: - "{{ .Env.BUILD_VARS }}" - "{{ .Env.STRIP_FLAGS }}" +archives: + - format: binary dockers: - dockerfile: Dockerfile use: buildx @@ -33,3 +36,18 @@ dockers: - --label=org.opencontainers.image.revision={{ .FullCommit }} image_templates: - '{{ .Env.DOCKER_IMAGE }}:latest-amd64' + - dockerfile: Dockerfile + use: buildx + goos: linux + goarch: arm64 + build_flag_templates: + - --platform=linux/arm64 + - --label=org.opencontainers.image.title={{ .ProjectName }} + - --label=org.opencontainers.image.description={{ .ProjectName }} + - --label=org.opencontainers.image.url={{.GitURL}} + - --label=org.opencontainers.image.source={{.GitURL}} + - --label=org.opencontainers.image.version={{ .Version }} + - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }} + - --label=org.opencontainers.image.revision={{ .FullCommit }} + image_templates: + - '{{ .Env.DOCKER_IMAGE }}:latest-arm64' diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 4a6c19df6..e068a42df 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -164,18 +164,18 @@ docker_manifests: nfpms: - id: w/version - vendor: "Overclock Labs Inc." - homepage: "https://ovrclk.com" - maintainer: "Overclock Labs Inc. " + vendor: "Akash Network" + homepage: "https://akash.network" + maintainer: "Akash Network " file_name_template: "provider-services_{{ .Version }}_{{ .Os }}_{{ .Arch }}" formats: - deb - rpm license: Apache 2.0 - id: wo/version - vendor: "Overclock Labs Inc." - homepage: "https://ovrclk.com" - maintainer: "Overclock Labs Inc. " + vendor: "Akash Network" + homepage: "https://akash.network" + maintainer: "Akash Network " file_name_template: "provider-services_{{ .Os }}_{{ .Arch }}" formats: - deb diff --git a/Makefile b/Makefile index 821b1a0a8..e65401eee 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ DOCKER_RUN := docker run --rm -v $(shell pwd):/workspace -w /workspa GOLANGCI_LINT_RUN := $(GOLANGCI_LINT) run LINT = $(GOLANGCI_LINT_RUN) ./... --disable-all --deadline=5m --enable -GORELEASER_CONFIG = .goreleaser.yaml +GORELEASER_CONFIG ?= .goreleaser.yaml GIT_HEAD_COMMIT_LONG := $(shell git log -1 --format='%H') GIT_HEAD_COMMIT_SHORT := $(shell git rev-parse --short HEAD) diff --git a/_run/common-commands.mk b/_run/common-commands.mk index edce2f48d..7bc166545 100644 --- a/_run/common-commands.mk +++ b/_run/common-commands.mk @@ -1,4 +1,4 @@ -KEY_NAME ?= main +KEY_NAME ?= main KEY_ADDRESS ?= $(shell $(AKASH) $(KEY_OPTS) keys show "$(KEY_NAME)" -a) PROVIDER_KEY_NAME ?= provider diff --git a/_run/common-kind.mk b/_run/common-kind.mk index 0b7d6a5dd..df792c16b 100644 --- a/_run/common-kind.mk +++ b/_run/common-kind.mk @@ -4,15 +4,15 @@ # image's name in GH Actions. export KIND_NAME ?= $(shell basename $$PWD) -KIND_CREATE := $(AP_RUN_DIR)/.kind-create - ifeq (, $(KINDEST_VERSION)) $(error "KINDEST_VERSION is not set") endif KIND_IMG ?= kindest/node:$(KINDEST_VERSION) - K8S_CONTEXT ?= $(shell kubectl config current-context) +SETUP_KIND := "$(AP_ROOT)/script/setup-kind.sh" +KIND_CONFIG ?= default +KIND_CONFIG_FILE := $(shell "$(SETUP_KIND)" config-file $$PWD $(KIND_CONFIG)) KIND_HTTP_PORT = $(shell docker inspect \ --type container "$(KIND_NAME)-control-plane" \ @@ -33,38 +33,6 @@ KIND_K8S_IP = $(shell docker inspect \ KIND_PORT_BINDINGS = $(shell docker inspect "$(KIND_NAME)-control-plane" \ --format '{{index .NetworkSettings.Ports "80/tcp" 0 "HostPort"}}' 2> /dev/null) -SETUP_KIND := "$(AP_ROOT)/script/setup-kind.sh" -KIND_CONFIG ?= default -KIND_CONFIG_FILE := $(shell "$(SETUP_KIND)" config-file $$PWD $(KIND_CONFIG)) - -include ../common-kustomize.mk - -# certain targets need to use bash -# detect where bash is installed -# use akash-node-ready target as example -BASH_PATH := $(shell which bash) - -INGRESS_CONFIG_PATH ?= ../ingress-nginx.yaml -CALICO_MANIFEST ?= https://docs.projectcalico.org/v3.8/manifests/calico.yaml - -ifeq ($(AKASH_SRC_IS_LOCAL), true) -AKASH_DOCKER_IMAGE ?= ghcr.io/akash-network/node:latest-$(UNAME_ARCH) -else -AKASH_DOCKER_IMAGE ?= ghcr.io/akash-network/node:$(AKASH_VERSION)-$(UNAME_ARCH) -endif - -DOCKER_IMAGE ?= ghcr.io/akash-network/provider:latest-$(UNAME_ARCH) - -PROVIDER_HOSTNAME ?= localhost -PROVIDER_HOST = $(PROVIDER_HOSTNAME):$(KIND_HTTP_PORT) -PROVIDER_ENDPOINT = http://$(PROVIDER_HOST) - -METALLB_CONFIG_PATH ?= ../metallb.yaml -METALLB_IP_CONFIG_PATH ?= ../kind-config-metal-lb-ip.yaml -METALLB_SERVICE_PATH ?= ../../_docs/provider/kube/metallb-service.yaml - -KIND_ROLLOUT_TIMEOUT ?= 90 - .PHONY: app-http-port app-http-port: @echo $(KIND_HTTP_PORT) @@ -73,112 +41,14 @@ app-http-port: kind-k8s-ip: @echo $(KIND_K8S_IP) -.PHONY: kind-prepare-images -kind-prepare-images: -ifneq ($(SKIP_BUILD), true) - make -C $(AP_ROOT) docker-image -ifeq ($(AKASH_SRC_IS_LOCAL), true) - make -C $(AKASH_LOCAL_PATH) docker-image -else - docker pull $(AKASH_DOCKER_IMAGE) -endif -endif - -.PHONY: kind-upload-images -kind-upload-images: $(KIND) -ifeq ($(KIND_NAME), single) - $(KIND) --name "$(KIND_NAME)" load docker-image "$(AKASH_DOCKER_IMAGE)" -endif - $(KIND) --name "$(KIND_NAME)" load docker-image "$(DOCKER_IMAGE)" - .PHONY: kind-port-bindings kind-port-bindings: $(KIND) @echo $(KIND_PORT_BINDINGS) -.PHONY: kind-cluster-setup -kind-cluster-setup: init \ - kind-prepare-images \ - kind-cluster-create \ - kind-setup-ingress \ - kind-upload-images \ - kustomize-init \ - kustomize-deploy-services \ - kind-deployments-rollout \ - kind-setup-$(KIND_NAME) - -.PHONY: kind-cluster-setup-e2e -kind-cluster-setup-e2e: kind-cluster-create kind-cluster-setup-e2e-ci - -.PHONY: kind-cluster-setup-e2e-ci -kind-cluster-setup-e2eci: -kind-cluster-setup-e2e-ci: \ - kind-setup-ingress \ - kind-upload-images \ - kustomize-init \ - kustomize-deploy-services \ - kind-deployments-rollout - -$(KIND_CREATE): $(KIND) $(AP_RUN_DIR) - $(KIND) create cluster --config "$(KIND_CONFIG_FILE)" --name "$(KIND_NAME)" --image "$(KIND_IMG)" - touch $@ - -.INTERMEDIATE: kind-cluster-create -kind-cluster-create: $(KIND_CREATE) +.INTERMEDIATE: kube-cluster-create-kind +kube-cluster-create-kind: $(KUBE_CREATE) -.PHONY: kind-setup-ingress -kind-setup-ingress: kind-setup-ingress-$(KIND_CONFIG) - -.PHONY: kind-setup-ingress-calico -kind-setup-ingress-calico: - kubectl apply -f "$(CALICO_MANIFEST)" - # Calico needs to be managing networking before finishing setup - kubectl apply -f "$(INGRESS_CONFIG_PATH)" - kubectl rollout status deployment -n ingress-nginx ingress-nginx-controller --timeout=$(KIND_ROLLOUT_TIMEOUT)s - kubectl apply -f "$(METALLB_CONFIG_PATH)" - kubectl apply -f "$(METALLB_IP_CONFIG_PATH)" - kubectl apply -f "$(METALLB_SERVICE_PATH)" - "$(SETUP_KIND)" calico-metrics - -.PHONY: kind-setup-ingress-default -kind-setup-ingress-default: - kubectl label nodes $(KIND_NAME)-control-plane akash.network/role=ingress - kubectl apply -f "$(INGRESS_CONFIG_PATH)" - kubectl rollout status deployment -n ingress-nginx ingress-nginx-controller --timeout=$(KIND_ROLLOUT_TIMEOUT)s - kubectl apply -f "$(METALLB_CONFIG_PATH)" - kubectl apply -f "$(METALLB_IP_CONFIG_PATH)" - kubectl apply -f "$(METALLB_SERVICE_PATH)" - "$(SETUP_KIND)" - -.PHONY: kind-cluster-delete -kind-cluster-delete: $(KIND) +.PHONY: kube-cluster-delete-kind +kube-cluster-delete-kind: $(KIND) $(KIND) delete cluster --name "$(KIND_NAME)" - rm -rf $(KIND_CREATE) - -.PHONY: kind-status-ingress-% -kind-status-ingress-%: - kubectl rollout status -n akash-services ingress $* --timeout=$(KIND_ROLLOUT_TIMEOUT)s - -.PHONY: kind-deployment-rollout-% -kind-deployment-rollout-%: - kubectl -n akash-services rollout status deployment $* --timeout=$(KIND_ROLLOUT_TIMEOUT)s - kubectl -n akash-services wait pods -l akash.network/component=$* --for condition=Ready --timeout=$(KIND_ROLLOUT_TIMEOUT)s - -.PHONY: akash-node-ready -akash-node-ready: SHELL=$(BASH_PATH) -akash-node-ready: - @( \ - max_retry=15; \ - counter=0; \ - while [[ counter -lt max_retry ]]; do \ - read block < <(curl -s $(AKASH_NODE)/status | jq -r '.result.sync_info.latest_block_height' 2> /dev/null); \ - if [[ $$? -ne 0 || $$block -lt 1 ]]; then \ - echo "unable to get node status. sleep for 1s"; \ - ((counter++)); \ - sleep 1; \ - else \ - echo "latest block height: $${block}"; \ - exit 0; \ - fi \ - done; \ - exit 1 \ - ) + rm -rf $(KUBE_CREATE) diff --git a/_run/common-kube.mk b/_run/common-kube.mk new file mode 100644 index 000000000..53727cbea --- /dev/null +++ b/_run/common-kube.mk @@ -0,0 +1,156 @@ +K8S_CONTEXT ?= $(shell kubectl config current-context) +KUBE_CREATE := $(AP_RUN_DIR)/.kube-create + +include ../common-kustomize.mk +include ../common-kind.mk + +KUBE_SSH_NODE_NAME ?= akash-gpu +KUBE_UPLOAD_AKASH_IMAGE ?= false +KUBE_CLUSTER_CREATE_TARGET ?= default +KUBE_ROLLOUT_TIMEOUT ?= 90 + +# certain targets need to use bash +# detect where bash is installed +# use akash-node-ready target as example +BASH_PATH := $(shell which bash) + +INGRESS_CONFIG_PATH ?= ../ingress-nginx.yaml +CALICO_MANIFEST ?= https://github.com/projectcalico/calico/blob/v3.25.0/manifests/calico.yaml + +# when image is built locally, for example on M1 (arm64) and kubernetes cluster is running on amd64 +# we need to specify what arch to deploy as docker manifests can't be transferred locally +KUBE_DOCKER_IMAGE_ARCH ?= amd64 +#$(UNAME_ARCH) + +ifeq ($(AKASH_SRC_IS_LOCAL), true) +AKASH_DOCKER_IMAGE ?= ghcr.io/akash-network/node:latest-$(KUBE_DOCKER_IMAGE_ARCH) +else +AKASH_DOCKER_IMAGE ?= ghcr.io/akash-network/node:$(AKASH_VERSION)-$(KUBE_DOCKER_IMAGE_ARCH) +endif +DOCKER_IMAGE ?= ghcr.io/akash-network/provider:latest-$(KUBE_DOCKER_IMAGE_ARCH) + +PROVIDER_HOSTNAME ?= localhost +PROVIDER_HOST = $(PROVIDER_HOSTNAME):$(KIND_HTTP_PORT) +PROVIDER_ENDPOINT = http://$(PROVIDER_HOST) + +METALLB_CONFIG_PATH ?= ../metallb.yaml +METALLB_IP_CONFIG_PATH ?= ../kube-config-metal-lb-ip.yaml +METALLB_SERVICE_PATH ?= ../../_docs/provider/kube/metallb-service.yaml + +DOCKER_LOAD_IMAGES := $(DOCKER_IMAGE) +ifeq ($(KUBE_UPLOAD_AKASH_IMAGE), true) +DOCKER_LOAD_IMAGES += $(AKASH_DOCKER_IMAGE) +endif + +.PHONY: kube-prepare-images + kube-prepare-images: +ifneq ($(SKIP_BUILD), true) + make -C $(AP_ROOT) docker-image +ifeq ($(AKASH_SRC_IS_LOCAL), true) + make -C $(AKASH_LOCAL_PATH) docker-image +else + docker pull $(AKASH_DOCKER_IMAGE) +endif +endif + +.PHONY: kube-upload-images +kube-upload-images: kube-upload-images-$(KUBE_CLUSTER_CREATE_TARGET) + +.PHONY: kube-upload-images-kind +kube-upload-images-kind: $(KIND) + $(AP_ROOT)/script/load_docker2kind.sh "$(DOCKER_LOAD_IMAGES)" $(KUBE_SSH_NODE_NAME) + +.PHONY: kube-upload-images-default +kube-upload-images-default: + $(AP_ROOT)/script/load_docker2ctr.sh "$(DOCKER_LOAD_IMAGES)" $(KUBE_SSH_NODE_NAME) + +$(KUBE_CREATE): $(AP_RUN_DIR) + @echo "assuming kubernetes cluster already created manually" + $(AP_ROOT)/script/setup-kube.sh ns + $(AP_ROOT)/script/setup-kube.sh crd + touch $@ + +.INTERMEDIATE: kube-cluster-create-default +kube-cluster-create-default: $(KUBE_CREATE) + +.PHONY: kube-cluster-check-alive +kube-cluster-check-info: + kubectl cluster-info >/dev/null 2>&1 echo $? + +.PHONY: kube-cluster-setup +kube-cluster-setup: init \ + kube-prepare-images \ + kube-cluster-create-$(KUBE_CLUSTER_CREATE_TARGET) \ + kube-cluster-check-info \ + kube-setup-ingress \ + kube-upload-images \ + kustomize-init \ + kustomize-deploy-services \ + kube-deployments-rollout \ + kube-setup-$(AP_RUN_NAME) + +# dedicated target to setup cluster on local machine +.PHONY: kube-cluster-setup-e2e +kube-cluster-setup-e2e: kube-cluster-create-kind kube-cluster-setup-e2e-ci + +# dedicated target to perform setup within Github Actions CI +.PHONY: kube-cluster-setup-e2e-ci +kube-cluster-setup-e2e-ci: \ + kube-setup-ingress \ + kube-upload-images \ + kustomize-init \ + kustomize-deploy-services \ + kube-deployments-rollout + +.PHONY: kube-setup-ingress +kube-setup-ingress: kube-setup-ingress-$(KIND_CONFIG) + +.PHONY: kube-setup-ingress-calico +kube-setup-ingress-calico: + kubectl apply -f "$(CALICO_MANIFEST)" + # Calico needs to be managing networking before finishing setup + kubectl apply -f "$(INGRESS_CONFIG_PATH)" + kubectl rollout status deployment -n ingress-nginx ingress-nginx-controller --timeout=$(KUBE_ROLLOUT_TIMEOUT)s + kubectl apply -f "$(METALLB_CONFIG_PATH)" + kubectl apply -f "$(METALLB_IP_CONFIG_PATH)" + kubectl apply -f "$(METALLB_SERVICE_PATH)" + "$(SETUP_KIND)" calico-metrics + +.PHONY: kube-setup-ingress-default +kube-setup-ingress-default: + kubectl label nodes $(KIND_NAME)-control-plane akash.network/role=ingress + kubectl apply -f "$(INGRESS_CONFIG_PATH)" + kubectl rollout status deployment -n ingress-nginx ingress-nginx-controller --timeout=$(KUBE_ROLLOUT_TIMEOUT)s + kubectl apply -f "$(METALLB_CONFIG_PATH)" + kubectl apply -f "$(METALLB_IP_CONFIG_PATH)" + kubectl apply -f "$(METALLB_SERVICE_PATH)" + "$(SETUP_KIND)" + +.PHONY: kube-status-ingress-% +kube-status-ingress-%: + kubectl rollout status -n akash-services ingress $* --timeout=$(KUBE_ROLLOUT_TIMEOUT)s + +.PHONY: kube-deployment-rollout-% +kube-deployment-rollout-%: + kubectl -n akash-services rollout status deployment $* --timeout=$(KUBE_ROLLOUT_TIMEOUT)s + kubectl -n akash-services wait pods -l akash.network/component=$* --for condition=Ready --timeout=$(KUBE_ROLLOUT_TIMEOUT)s + +.PHONY: akash-node-ready +akash-node-ready: SHELL=$(BASH_PATH) +akash-node-ready: + @( \ + max_retry=15; \ + counter=0; \ + while [[ counter -lt max_retry ]]; do \ + read block < <(curl -s $(AKASH_NODE)/status | jq -r '.result.sync_info.latest_block_height' 2> /dev/null); \ + if [[ $$? -ne 0 || $$block -lt 1 ]]; then \ + echo "unable to get node status. sleep for 1s"; \ + ((counter++)); \ + sleep 1; \ + else \ + echo "latest block height: $${block}"; \ + exit 0; \ + fi \ + done; \ + exit 1 \ + ) diff --git a/_run/common-kustomize.mk b/_run/common-kustomize.mk index 407feb2a2..326e71c95 100644 --- a/_run/common-kustomize.mk +++ b/_run/common-kustomize.mk @@ -1,5 +1,5 @@ KUSTOMIZE_ROOT ?= $(AP_ROOT)/_docs/kustomize -KUSTOMIZE_DIR := $(DEVCACHE_RUN)/$(KIND_NAME)/kustomize +KUSTOMIZE_DIR := $(DEVCACHE_RUN)/$(AP_RUN_NAME)/kustomize KUSTOMIZE_PROVIDER := $(KUSTOMIZE_DIR)/akash-provider KUSTOMIZE_AKASH := $(KUSTOMIZE_DIR)/akash-node KUSTOMIZE_OPERATOR_HOSTNAME := $(KUSTOMIZE_DIR)/akash-operator-hostname diff --git a/_run/common.mk b/_run/common.mk index 7e1ec59cb..dd64c49e9 100644 --- a/_run/common.mk +++ b/_run/common.mk @@ -50,7 +50,6 @@ SERVER_CERTS := provider .PHONY: init init: bins akash-init - $(AP_RUN_DIR): mkdir -p $@ diff --git a/_run/kind-config-calico.yaml b/_run/kind-config-calico.yaml index b11ef650b..5c3acf4e1 100644 --- a/_run/kind-config-calico.yaml +++ b/_run/kind-config-calico.yaml @@ -6,8 +6,7 @@ networking: nodes: - role: control-plane kubeadmConfigPatches: - - | - kind: InitConfiguration + - kind: InitConfiguration nodeRegistration: kubeletExtraArgs: node-labels: "ingress-ready=true" diff --git a/_run/kind-config-metal-lb-ip.yaml b/_run/kube-config-metal-lb-ip.yaml similarity index 100% rename from _run/kind-config-metal-lb-ip.yaml rename to _run/kube-config-metal-lb-ip.yaml diff --git a/_run/kube/Makefile b/_run/kube/Makefile index 48005d90b..415196d98 100644 --- a/_run/kube/Makefile +++ b/_run/kube/Makefile @@ -1,4 +1,6 @@ -KIND_SETUP_PREREQUISITES ?= \ +KUBE_SETUP_PREREQUISITES ?= \ + +KUBE_CLUSTER_CREATE_TARGET := kind KUSTOMIZE_INSTALLS ?= \ akash-operator-hostname \ @@ -10,7 +12,7 @@ export AP_NODE=http://localhost:26657 include ../common.mk include ../common-commands.mk -include ../common-kind.mk +include ../common-kube.mk SDL_PATH ?= grafana.yaml @@ -43,8 +45,8 @@ hostname-operator: .PHONY: clean-kube clean-kube: -.PHONY: kind-deployments-rollout -kind-deployments-rollout: +.PHONY: kube-deployments-rollout +kube-deployments-rollout: -.PHONY: kind-setup-kube -kind-setup-kube: +.PHONY: kube-setup-kube +kube-setup-kube: diff --git a/_run/lite/.envrc b/_run/lite/.envrc deleted file mode 100644 index 4ad6fb510..000000000 --- a/_run/lite/.envrc +++ /dev/null @@ -1,3 +0,0 @@ -source_up .envrc - -export AKASH_HOME=$DEVCACHE_RUN/lite/.akash diff --git a/_run/lite/.gitignore b/_run/lite/.gitignore deleted file mode 100644 index 0fdc16227..000000000 --- a/_run/lite/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -data -cache diff --git a/_run/lite/Makefile b/_run/lite/Makefile deleted file mode 100644 index 3c92e9ad2..000000000 --- a/_run/lite/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -include ../common.mk -include ../common-commands.mk - -PROVIDER_HOSTNAME ?= https://localhost:8443 - -provider-run: - $(AKASH) provider run \ - --from "$(PROVIDER_KEY_NAME)" \ - --cluster-public-hostname "localhost" \ - --bid-price-strategy "randomRange" - -.PHONY: provider-lease-status -provider-lease-status: - $(AKASH) provider lease-status \ - --dseq "$(DSEQ)" \ - --gseq "$(GSEQ)" \ - --oseq "$(OSEQ)" \ - --from "$(KEY_NAME)" \ - --provider "$(PROVIDER_ADDRESS)" - -.PHONY: provider-service-status -provider-service-status: - $(AKASH) provider service-status \ - --dseq "$(DSEQ)" \ - --gseq "$(GSEQ)" \ - --oseq "$(OSEQ)" \ - --service "web" \ - --from "$(KEY_NAME)" \ - --provider "$(PROVIDER_ADDRESS)" - -.PHONY: clean-lite -clean-lite: diff --git a/_run/lite/README.md b/_run/lite/README.md deleted file mode 100644 index 5337b223a..000000000 --- a/_run/lite/README.md +++ /dev/null @@ -1,416 +0,0 @@ -# Dev Environment: "Lite" configuration - -The _Lite_ development environment builds a single-node network -for testing blockchain operations. - -An Akash Provider Daemon may optionally be run, but -it will not execute workloads for leases that it acquires. - -The [instructions](#runbook) below will illustrate how to: - -* [Initialize blockchain node and client](#initialize) -* [Run a single-node network](#run-local-network) -* [Query objects on the network](#run-query) -* [Create a provider](#create-a-provider) -* [Run provider services](#run-provider-services) _(optional)_ -* [Create a deployment](#create-a-deployment) -* [Bid on an order](#create-a-bid) -* [Create a lease](#create-a-lease) -* [Terminate a lease](#terminate-lease) - -See [commands](#commands) for a full list of utilities meant -for interacting with the network. - -## Setup - -Four keys and accounts are created. The key names are: - -|Key Name|Use| -|---|---| -|`main`|Primary account (creating deployments, etc...)| -|`provider`|The provider account (bidding on orders, etc...)| -|`validator`|The sole validator for the created network| -|`other`|Misc. account to (receives tokens, etc...)| - -Most `make` commands are configurable and have defaults to make it -such that you don't need to override them for a simple pass-through of -this example. - -|Name|Default|Description| -|---|---|---| -|`KEY_NAME`|`main`|standard key name| -|`PROVIDER_KEY_NAME`|`provider`|name of key to use for provider| -|`DSEQ`|1|deployment sequence| -|`GSEQ`|1|group sequence| -|`OSEQ`|1|order sequence| -|`PRICE`|10uakt|price to bid| - -## Runbook - -The following steps will bring up a network and allow for interacting -with it. - -Running through the entire runbook requires three terminals. -Each command is marked __t1__-__t3__ to indicate a suggested terminal number. - -If at any time you'd like to start over with a fresh chain, simply run: - -__t1__ -```sh -make clean init -``` - -### Initialize - -The following command will - -* build `akash` -* create configuration directories -* create a genesis file with [accounts](#setup) and single validator. - -__t1__ -```sh -make init -``` - -### Run local network - -In a separate terminal, the following command will run the `akash` node: - -__t2__ -```sh -make node-run -``` - -You can check the status of the network with: - -__t1__ -```sh -make node-status -``` - -You should see blocks being produced - the block height should be increasing. - -You can now view genesis accounts that were created: - -__t1__ -```sh -make query-accounts -``` - -### Create a provider - -Create a provider on the network with the following command: - -__t1__ -```sh -make provider-create -``` - -View the on-chain representation of the provider with: - -__t1__ -```sh -make query-provider -``` - -### Run provider services - -__NOTE__: running a provider is optional. If you want to bid on orders -yourself, skip this step. - -In a separate terminal, run the following command - -__t3__ -```sh -make provider-run -``` - -Query the provider service gateway for its status: - -__t1__ -```sh -make provider-status -``` - -### Create a deployment - -Create a deployment from the `main` account with: - -__t1__ -```sh -make deployment-create -``` - -This particular deployment is created from the sdl file in this directory ([`deployment.yaml`](deployment.yaml)). - -Check that the deployment was created. Take note of the `dseq` - deployment sequence: - -__t1__ -```sh -make query-deployments -``` - -After a short time, you should see an order created for this deployment with the following command: - -__t1__ -```sh -make query-orders -``` - -### Create a bid - -__NOTE__: if you are [running provider services](#run-provider-services), skip the first step here - it is handled -by the provider daemon. - -Create a bid for the order from the provider: - -__t1__ -```sh -make bid-create -``` - -You should be able to see the bid with - -__t1__ -```sh -make query-bid -``` - -Eventually a lease will be generated. You can see it with: - -__t1__ -```sh -make query-leases -``` - -_if_ you are running provider services, query the provider gateway: - -__t1__ -```sh -make provider-status -``` - -### Create a lease - -Create a lease for the bid from the provider: - -__t1__ -```sh -make lease-create -``` - -You should be able to see the lease with - -__t1__ -```sh -make query-leases -``` - -### Withdraw from the lease - -Withdraw some funds from the lease - -__t1__ -```sh -make lease-withdraw -``` - -You should be able to see the escrow payment change in - -__t1__ -```sh -make query-leases -``` - -and - -__t1__ -```sh -make query-accounts -``` - -### Terminate lease - -There are a number of ways that a lease can be terminated. - -#### Provider closes the bid: - -__t1__ -```sh -make bid-close -``` - -#### Tenant closes the order - -__t1__ -```sh -make lease-close -``` - -#### Tenant closes the deployment - -__t1__ -```sh -make deployment-close -``` - -## Commands - -* [Querying](#querying) - * [Accounts](#accounts) - * [Deployments](#deployments) - * [Orders](#orders) - * [Bids](#bids) - * [Leases](#leases) - * [Providers](#providers) -* [Transactions](#transactions) - * [Deployments](#deployments-1) - * [Orders](#orders-1) - * [Bids](#bids-1) - * [Providers](#providers-1) - -### Querying - -Query commands fetch and display information from the blockchain. - -#### Accounts - -Query all accounts: - -```sh -make query-accounts -``` - -Query individual accounts: -```sh -make query-account-main -make query-account-provider -make query-account-validator -make query-account-other -``` - -### Deployments - -Query all deployments: - -```sh -make query-deployments -``` - -Query a single deployment: - -```sh -DSEQ=4 make query-deployment -``` - -### Orders - -Query all orders: - -```sh -make query-orders -``` - -Query a single order: - -```sh -DSEQ=4 GSEQ=1 OSEQ=1 make query-order -``` - -### Bids - -Query all bids: - -```sh -make query-bids -``` - -Query a single bid: - -```sh -DSEQ=4 GSEQ=1 OSEQ=1 make query-bid -``` - -### Leases - -Query all leases: - -```sh -make query-leases -``` - -Query a single lease: - -```sh -DSEQ=4 GSEQ=1 OSEQ=1 make query-lease -``` - -### Providers - -Query all providers: -```sh -make query-providers -``` - -Query a single provider: -```sh -PROVIDER_KEY_NAME=validator make query-provider -``` - -### Transactions - -Transaction commands modify blockchain state. - -#### Deployments - -Create a deployment with `DSEQ` set to the current block height -```sh -DSEQ=0 make deployment-create -``` - -Fully-customized deployment creation: -```sh -SDL_PATH=yolo.yaml DSEQ=20 KEY_NAME=other make deployment-create -``` - -Close a deployment with a custom `DSEQ` -```sh -DSEQ=10 make deployment-close -``` - -#### Orders - -Close an order with the default parameters -```sh -make order-close -``` - -Fully-customized order close -```sh -KEY_NAME=other DSEQ=20 GSEQ=99 OSEQ=500 make order-close -``` - -#### Bids - -Fully-customized bid creation -```sh -KEY_NAME=other PROVIDER_KEY_NAME=validator DSEQ=20 GSEQ=99 OSEQ=500 PRICE=100uakt make bid-create -``` - -Fully-customized bid close -```sh -KEY_NAME=other PROVIDER_KEY_NAME=validator DSEQ=20 GSEQ=99 OSEQ=500 make lease-close -``` - -#### Providers - -Fully-customized provider creation -```sh -PROVIDER_KEY_NAME=validator PROVIDER_CONFIG_PATH=rogue.yaml make provider-create -``` - -Fully-customized provider update -```sh -PROVIDER_KEY_NAME=validator PROVIDER_CONFIG_PATH=rogue.yaml make provider-update -``` diff --git a/_run/lite/provider.yaml b/_run/lite/provider.yaml deleted file mode 100644 index 61d978163..000000000 --- a/_run/lite/provider.yaml +++ /dev/null @@ -1,4 +0,0 @@ -host: https://localhost:8443 -attributes: - - key: region - value: us-west diff --git a/_run/single/Makefile b/_run/single/Makefile index 051651ed6..733ee440c 100644 --- a/_run/single/Makefile +++ b/_run/single/Makefile @@ -4,18 +4,20 @@ KUSTOMIZE_INSTALLS ?= \ akash-operator-hostname \ akash-operator-inventory +KUBE_UPLOAD_AKASH_IMAGE := true + export AKASH_NODE = http://akash.localhost:$(KIND_PORT_BINDINGS) export AP_NODE = $(AKASH_NODE) include ../common.mk include ../common-commands.mk -include ../common-kind.mk +include ../common-kube.mk PROVIDER_HOSTNAME = akash-provider.localhost GATEWAY_ENDPOINT ?= https://akash-provider.localhost -.PHONY: kind-namespace-setup -kind-namespace-setup: +.PHONY: kube-namespace-setup +kube-namespace-setup: kubectl apply -f "$(KUSTOMIZE_ROOT)/networking" .PHONY: provider-lease-ping @@ -25,8 +27,8 @@ provider-lease-ping: PHONY: clean-single clean-single: -.PHONY: kind-deployments-rollout -kind-deployments-rollout: kind-deployment-rollout-akash-node +.PHONY: kube-deployments-rollout +kube-deployments-rollout: kind-deployment-rollout-akash-node -.PHONY: kind-setup-single -kind-setup-single: akash-node-ready provider-create +.PHONY: kube-setup-single +kube-setup-single: akash-node-ready provider-create diff --git a/_run/ssh/.envrc b/_run/ssh/.envrc new file mode 100644 index 000000000..5136c27ce --- /dev/null +++ b/_run/ssh/.envrc @@ -0,0 +1,5 @@ +source_up .envrc + source_env ~/projects/akash/gpu + +export AKASH_HOME=$DEVCACHE_RUN/ssh/.akash +export AKASH_KUBECONFIG=$KUBECONFIG diff --git a/_run/ssh/.gitignore b/_run/ssh/.gitignore new file mode 100644 index 000000000..e934adfd1 --- /dev/null +++ b/_run/ssh/.gitignore @@ -0,0 +1 @@ +cache/ diff --git a/_run/ssh/Dockerfile b/_run/ssh/Dockerfile new file mode 100644 index 000000000..1236ff8f7 --- /dev/null +++ b/_run/ssh/Dockerfile @@ -0,0 +1,5 @@ +FROM alpine + +ADD ./test.sh /bin/ + +ENTRYPOINT /bin/test.sh diff --git a/_run/ssh/Makefile b/_run/ssh/Makefile new file mode 100644 index 000000000..5b38db21b --- /dev/null +++ b/_run/ssh/Makefile @@ -0,0 +1,54 @@ +KUBE_SETUP_PREREQUISITES ?= \ + +KUBE_UPLOAD_AKASH_IMAGE ?= true + +KUSTOMIZE_INSTALLS ?= \ + akash-operator-hostname \ + akash-operator-inventory \ + akash-operator-ip + +export AKASH_NODE=http://localhost:26657 +export AP_NODE=http://localhost:26657 + +SDL_PATH ?= gpu.yaml + +include ../common.mk +include ../common-commands.mk +include ../common-kube.mk + +GATEWAY_HOSTNAME ?= localhost +GATEWAY_HOST ?= $(GATEWAY_HOSTNAME):8443 +GATEWAY_ENDPOINT ?= https://$(GATEWAY_HOST) + +.PHONY: provider-run +provider-run: + $(PROVIDER_SERVICES) run \ + --from "$(PROVIDER_KEY_NAME)" \ + --cluster-k8s \ + --gateway-listen-address "$(GATEWAY_HOST)" \ + --deployment-ingress-static-hosts true \ + --deployment-ingress-domain "$(GATEWAY_HOSTNAME)" \ + --cluster-node-port-quantity 100 \ + --cluster-public-hostname "$(GATEWAY_HOSTNAME)" \ + --bid-price-strategy "randomRange" \ + --deployment-runtime-class "none" \ + --ip-operator=false + +.PHONY: provider-lease-ping +provider-lease-ping: + curl -sIH "Host: hello.localhost" localhost:$(KIND_HTTP_PORT) + +.PHONY: clean-gpu +clean-gpu: + +.PHONY: kind-deployments-rollout +kind-deployments-rollout: + +.PHONY: kube-cluster-setup-gpu +kube-cluster-setup-gpu: init \ + kube-prepare-images \ + kube-upload-images \ + kustomize-init \ + kustomize-deploy-services \ + kube-deployments-rollout \ + kind-setup-$(KIND_NAME) diff --git a/_run/ssh/README.md b/_run/ssh/README.md new file mode 100644 index 000000000..81caa088c --- /dev/null +++ b/_run/ssh/README.md @@ -0,0 +1,290 @@ +# Dev Environment: "Kube" configuration + +The _Kube_ dev environment builds: + +* A single-node blockchain network +* An Akash Provider Services Daemon (PSD) for bidding and running workloads. +* A Kubernetes cluster for the PSD to run workloads on. + +The [instructions](#runbook) below will illustrate how to run a network with a single, local node and execute workloads in [kind](https://kind.sigs.k8s.io/): + +* [Initialize blockchain node and client](#initialize) +* [Run a single-node network](#run-local-network) +* [Query objects on the network](#run-query) +* [Create a provider](#create-a-provider) +* [Run provider services](#run-provider-services) +* [Create a deployment](#create-a-deployment) +* [Bid on an order](#create-a-bid) +* [Terminate a lease](#terminate-lease) + +## Setup + +Four keys and accounts are created. The key names are: + +| Key Name | Use | +|-------------|--------------------------------------------------| +| `main` | Primary account (creating deployments, etc...) | +| `provider` | The provider account (bidding on orders, etc...) | +| `validator` | The sole validator for the created network | +| `other` | Misc. account to (receives tokens, etc...) | + +Most `make` commands are configurable and have defaults to make it +such that you don't need to override them for a simple pass-through of +this example. + +| Name | Default | Description | +|---------------------|------------|---------------------------------| +| `KEY_NAME` | `main` | standard key name | +| `PROVIDER_KEY_NAME` | `provider` | name of key to use for provider | +| `DSEQ` | 1 | deployment sequence | +| `GSEQ` | 1 | group sequence | +| `OSEQ` | 1 | order sequence | +| `PRICE` | 10uakt | price to bid | + +# Runbook + +The following steps will bring up a network and allow for interacting +with it. + +Running through the entire runbook requires three terminals. +Each command is marked __t1__-__t3__ to indicate a suggested terminal number. + +If at any time you'd like to start over with a fresh chain, simply run: + +__t1 run__ +```sh +make clean kind-cluster-clean +make init +``` + +## Initialize + +Start and initialize kind. + +Kubernetes ingress objects present some difficulties for creating development +environments. Two options are offered below - the first (random port) is less error-prone +and can have multiple instances run concurrently, while the second option arguably +has a better payoff. + +**note**: this step waits for Kubernetes metrics to be available, which can take some time. +The counter on the left side of the messages is regularly in the 120 range. If it goes beyond 250, +there may be a problem. + + +| Option | __t1 Step: 1__ | Explanation | +|---------------------------------------------------|------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Map random local port to port 80 of your workload | `make kind-cluster-setup` | This is less error-prone, but makes it difficult to access your app through the browser. | +| Map localhost port 80 to workload | `KIND_CONFIG=kind-config-80.yaml make kind-cluster-create` | If anything else is listening on port 80 (any other web server), this method will fail. If it does succeed, you will be able to browse your app from the browser. | + +## Build Akash binaries and initialize network + +Initialize keys and accounts: + +### __t1 Step: 2__ +```sh +make init +``` + +## Run local network + +In a separate terminal, the following command will run the `akash` node: + +### __t2 Step: 3__ +```sh +make node-run +``` + +You can check the status of the network with: + +__t1 status__ +```sh +make node-status +``` + +You should see blocks being produced - the block height should be increasing. + +You can now view genesis accounts that were created: + +__t1 status__ +```sh +make query-accounts +``` + +## Create a provider + +Create a provider on the network with the following command: + +### __t1 Step: 4__ +```sh +make provider-create +``` + +View the on-chain representation of the provider with: + +__t1 status__ +```sh +make query-provider +``` + +## Run Provider + +To run Provider as a simple binary connecting to the cluster, in a third terminal, run the command: + +### __t3 Step: 5__ +```sh +make provider-run +``` + +Query the provider service gateway for its status: + +__t1 status__ +```sh +make provider-status +``` + +## Create a deployment + +Create a deployment from the `main` account with: + +### __t1 run Step: 6__ +```sh +make deployment-create +``` + +This particular deployment is created from the sdl file in this directory ([`deployment.yaml`](deployment.yaml)). + +Check that the deployment was created. Take note of the `dseq` - deployment sequence: + +__t1 status__ +```sh +make query-deployments +``` + +After a short time, you should see an order created for this deployment with the following command: + +```sh +make query-orders +``` + +The Provider Services Daemon should see this order and bid on it. + +```sh +make query-bids +``` + +When a bid has been created, you may create a lease: + + +### __t1 run Step: 7__ + +To create a lease, run + +```sh +make lease-create +``` + +You can see the lease with: + +```sh +make query-leases +``` + +You should now see "pending" inventory in the provider status: + +```sh +make provider-status +``` + +## Distribute Manifest + +Now that you have a lease with a provider, you need to send your +workload configuration to that provider by sending it the manifest: + +### __t1 Step: 8__ +```sh +make send-manifest +``` + +You can check the status of your deployment with: + +__t1 status__ +```sh +make provider-lease-status +``` + +You can reach your app with the following (Note: `Host:` header tomfoolery abound) + +__t1 status__ +```sh +make provider-lease-ping +``` + +Get service status + +__t1 service status__ +```sh +make provider-lease-status +``` + +Fetch logs from deployed service (all pods) + +__t1 service logs__ +```sh +make provider-lease-logs +``` + +If you chose to use port 80 when setting up kind, you can browse to your +deployed workload at http://hello.localhost + +## Update Deployment + +Updating active Deployments is a two step process. First edit the `deployment.yaml` with whatever changes are desired. Example; update the `image` field. + 1. Update the Akash Network to inform the Provider that a new Deployment declaration is expected. + * `make deployment-update` + 2. Send the updated manifest to the Provider to run. + * `make send-manifest` + +Between the first and second step, the prior deployment's containers will continue to run until the new manifest file is received, validated, and new container group operational. After health checks on updated group are passing; the prior containers will be terminated. + +#### Limitations + +Akash Groups are translated into Kubernetes Deployments, this means that only a few fields from the Akash SDL are mutable. For example `image`, `command`, `args`, `env` and exposed ports can be modified, but compute resources and placement criteria cannot. + +## Terminate lease + +There are a number of ways that a lease can be terminated. + +#### Provider closes the bid: + +__t1 teardown__ +```sh +make bid-close +``` + +#### Tenant closes the lease + +__t1 teardown__ +```sh +make lease-close +``` + +#### Tenant pauses the group + +__t1 teardown__ +```sh +make group-pause +``` + +#### Tenant closes the group + +__t1 teardown__ +```sh +make group-pause +``` + +#### Tenant closes the deployment + +__t1 teardown__ +```sh +make deployment-close +``` diff --git a/_run/ssh/deployment.yaml b/_run/ssh/deployment.yaml new file mode 100644 index 000000000..afff0c954 --- /dev/null +++ b/_run/ssh/deployment.yaml @@ -0,0 +1,55 @@ +--- +version: "2.0" + +services: + web: + image: quay.io/ovrclk/demo-app + expose: + - port: 80 + as: 80 + http_options: + max_body_size: 2097152 + next_cases: + - off + accept: + - hello.localhost + to: + - global: true + bew: + image: quay.io/ovrclk/demo-app + expose: + - port: 80 + as: 80 + accept: + - hello1.localhost + to: + - global: true + +profiles: + compute: + web: + resources: + cpu: + units: 0.1 + memory: + size: 16Mi + storage: + size: 128Mi + placement: + westcoast: + attributes: + region: us-west + pricing: + web: + denom: uakt + amount: 1000 + +deployment: + web: + westcoast: + profile: web + count: 1 + bew: + westcoast: + profile: web + count: 1 \ No newline at end of file diff --git a/_run/lite/deployment.yaml b/_run/ssh/gpu.yaml similarity index 51% rename from _run/lite/deployment.yaml rename to _run/ssh/gpu.yaml index d6c81c3d1..54ef6c965 100644 --- a/_run/lite/deployment.yaml +++ b/_run/ssh/gpu.yaml @@ -2,38 +2,37 @@ version: "2.0" services: - web: - image: nginx + gpu-test: + image: nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda10.2 expose: - - port: 80 - accept: - - hello.localhost + - port: 3000 + as: 80 to: - global: true - + accept: + - webdistest.localhost profiles: - compute: - web: + gpu-test: resources: cpu: - units: "100m" + units: 1 memory: - size: "128Mi" + size: 1Gi + gpu: + units: 1 storage: - size: "256Mi" - + - size: 512Mi placement: westcoast: attributes: region: us-west pricing: - web: + gpu-test: denom: uakt amount: 1000 - deployment: - web: + gpu-test: westcoast: - profile: web - count: 2 + profile: gpu-test + count: 1 diff --git a/_run/ssh/kind-config-80.yaml b/_run/ssh/kind-config-80.yaml new file mode 100644 index 000000000..a85fe0d6b --- /dev/null +++ b/_run/ssh/kind-config-80.yaml @@ -0,0 +1,14 @@ +kind: Cluster +apiVersion: kind.x-k8s.io/v1alpha4 +nodes: +- role: control-plane + kubeadmConfigPatches: + - | + kind: InitConfiguration + nodeRegistration: + kubeletExtraArgs: + node-labels: "ingress-ready=true" + extraPortMappings: + - containerPort: 80 + hostPort: 80 + protocol: TCP diff --git a/_run/ssh/kind-config.yaml b/_run/ssh/kind-config.yaml new file mode 100644 index 000000000..43ad91490 --- /dev/null +++ b/_run/ssh/kind-config.yaml @@ -0,0 +1,13 @@ +kind: Cluster +apiVersion: kind.x-k8s.io/v1alpha4 +nodes: +- role: control-plane + kubeadmConfigPatches: + - | + kind: InitConfiguration + nodeRegistration: + kubeletExtraArgs: + node-labels: "ingress-ready=true" + extraPortMappings: + - containerPort: 80 + protocol: TCP diff --git a/_run/ssh/provider.yaml b/_run/ssh/provider.yaml new file mode 100644 index 000000000..57371ebfe --- /dev/null +++ b/_run/ssh/provider.yaml @@ -0,0 +1,13 @@ +host: https://localhost:8443 +jwt-host: https://localhost:8444 +attributes: + - key: region + value: us-west + - key: capabilities/storage/1/persistent + value: true + - key: capabilities/storage/1/class + value: default + - key: capabilities/storage/2/persistent + value: true + - key: capabilities/storage/2/class + value: beta2 diff --git a/_run/ssh/test.yaml b/_run/ssh/test.yaml new file mode 100644 index 000000000..3da52ec18 --- /dev/null +++ b/_run/ssh/test.yaml @@ -0,0 +1,40 @@ +--- +version: "2.0" + +services: + xmrig: + image: cryptoandcoffee/akash-xmrig:1 + expose: + - port: 8080 + as: 80 + proto: tcp + to: + - global: true + env: + - "WALLET=solo:4AbG74FRUHYXBLkvqM1f7QH3UXGkhLetKdxS7U7BHkyfMF4nfx99GvN1REwYQHAeVLLy4Qa5gXXkfS4pSHHUWwdVFifDo5K" + - "POOL=pool.hashvault.pro:80" + - "RANDOMX_MODE=auto" #accepts auto-fast-light + - "RANDOMX_1GB=true" + - "TLS=true" #If supported by pool + - "TLS_FINGERPRINT=420c7850e09b7c0bdcf748a7da9eb3647daf8515718f36d9ccfdd6b9ff834b14" #Can be blank +profiles: + compute: + xmrig: + resources: + cpu: + units: 6 + memory: + size: 1Gi + storage: + size: 128Mi + placement: + akash: + pricing: + xmrig: + denom: uakt + amount: 10000000 +deployment: + xmrig: + akash: + profile: xmrig + count: 6 diff --git a/balance_checker.go b/balance_checker.go index 11239a0d7..c2582ad8e 100644 --- a/balance_checker.go +++ b/balance_checker.go @@ -11,18 +11,17 @@ import ( "github.com/tendermint/tendermint/libs/log" tmrpc "github.com/tendermint/tendermint/rpc/core/types" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/node/client" + aclient "github.com/akash-network/node/client" "github.com/akash-network/node/pubsub" + netutil "github.com/akash-network/node/util/network" "github.com/akash-network/node/util/runner" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" "github.com/akash-network/node/x/escrow/client/util" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" "github.com/akash-network/provider/event" "github.com/akash-network/provider/session" - - aclient "github.com/akash-network/node/client" - netutil "github.com/akash-network/node/util/network" ) type respState int diff --git a/bidengine/config.go b/bidengine/config.go index da60ecd09..8b6479854 100644 --- a/bidengine/config.go +++ b/bidengine/config.go @@ -5,7 +5,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - types "github.com/akash-network/node/types/v1beta2" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" ) type Config struct { diff --git a/bidengine/order.go b/bidengine/order.go index 61841df7b..9f52dd7d1 100644 --- a/bidengine/order.go +++ b/bidengine/order.go @@ -16,12 +16,12 @@ import ( "github.com/akash-network/node/pubsub" metricsutils "github.com/akash-network/node/util/metrics" "github.com/akash-network/node/util/runner" - atypes "github.com/akash-network/node/x/audit/types/v1beta2" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + atypes "github.com/akash-network/akash-api/go/node/audit/v1beta3" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/cluster" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/event" "github.com/akash-network/provider/session" ) diff --git a/bidengine/order_test.go b/bidengine/order_test.go index 210ce0638..5d4b96a15 100644 --- a/bidengine/order_test.go +++ b/bidengine/order_test.go @@ -10,27 +10,25 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/akash-network/node/sdkutil" - "github.com/akash-network/node/validation/constants" + "github.com/akash-network/akash-api/go/node/types/constants" + "github.com/akash-network/akash-api/go/sdkutil" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - "github.com/akash-network/node/pubsub" - "github.com/akash-network/node/testutil" - atypes "github.com/akash-network/node/types/v1beta2" - audittypes "github.com/akash-network/node/x/audit/types/v1beta2" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - ptypes "github.com/akash-network/node/x/provider/types/v1beta2" - - "github.com/akash-network/provider/session" - + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + atypes "github.com/akash-network/akash-api/go/node/types/v1beta3" broadcastmocks "github.com/akash-network/node/client/broadcaster/mocks" clientmocks "github.com/akash-network/node/client/mocks" + "github.com/akash-network/node/pubsub" + "github.com/akash-network/node/testutil" + audittypes "github.com/akash-network/akash-api/go/node/audit/v1beta3" + ptypes "github.com/akash-network/akash-api/go/node/provider/v1beta3" clustermocks "github.com/akash-network/provider/cluster/mocks" + "github.com/akash-network/provider/session" ) type orderTestScaffold struct { diff --git a/bidengine/pricing.go b/bidengine/pricing.go index a92167c69..e556fcddf 100644 --- a/bidengine/pricing.go +++ b/bidengine/pricing.go @@ -16,10 +16,10 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + "github.com/akash-network/akash-api/go/node/types/unit" + atypes "github.com/akash-network/akash-api/go/node/types/v1beta3" "github.com/akash-network/node/sdl" - "github.com/akash-network/node/types/unit" - atypes "github.com/akash-network/node/types/v1beta2" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" "github.com/akash-network/provider/cluster/util" ) diff --git a/bidengine/pricing_test.go b/bidengine/pricing_test.go index 094ebb58b..da0c79205 100644 --- a/bidengine/pricing_test.go +++ b/bidengine/pricing_test.go @@ -25,9 +25,9 @@ import ( "github.com/akash-network/node/sdl" "github.com/akash-network/node/testutil" - "github.com/akash-network/node/types/unit" - atypes "github.com/akash-network/node/types/v1beta2" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" + "github.com/akash-network/akash-api/go/node/types/unit" + atypes "github.com/akash-network/akash-api/go/node/types/v1beta3" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" ) func Test_ScalePricingRejectsAllZero(t *testing.T) { diff --git a/bidengine/provider_attributes.go b/bidengine/provider_attributes.go index e375cd9db..25ac92d8b 100644 --- a/bidengine/provider_attributes.go +++ b/bidengine/provider_attributes.go @@ -13,9 +13,9 @@ import ( "github.com/akash-network/provider/session" - types "github.com/akash-network/node/types/v1beta2" - atypes "github.com/akash-network/node/x/audit/types/v1beta2" - ptypes "github.com/akash-network/node/x/provider/types/v1beta2" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" + atypes "github.com/akash-network/akash-api/go/node/audit/v1beta3" + ptypes "github.com/akash-network/akash-api/go/node/provider/v1beta3" ) const ( diff --git a/bidengine/provider_attributes_test.go b/bidengine/provider_attributes_test.go index 4521e4302..ad9ba2d51 100644 --- a/bidengine/provider_attributes_test.go +++ b/bidengine/provider_attributes_test.go @@ -15,9 +15,9 @@ import ( "github.com/akash-network/provider/session" - akashtypes "github.com/akash-network/node/types/v1beta2" - atypes "github.com/akash-network/node/x/audit/types/v1beta2" - ptypes "github.com/akash-network/node/x/provider/types/v1beta2" + akashtypes "github.com/akash-network/akash-api/go/node/types/v1beta3" + atypes "github.com/akash-network/akash-api/go/node/audit/v1beta3" + ptypes "github.com/akash-network/akash-api/go/node/provider/v1beta3" ) type providerAttributesTestScaffold struct { diff --git a/bidengine/service.go b/bidengine/service.go index 70b02d5bb..620647b26 100644 --- a/bidengine/service.go +++ b/bidengine/service.go @@ -4,8 +4,6 @@ import ( "context" "errors" - "github.com/akash-network/provider/operator/waiter" - "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" @@ -15,9 +13,10 @@ import ( "github.com/akash-network/node/pubsub" mquery "github.com/akash-network/node/x/market/query" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/cluster" + "github.com/akash-network/provider/operator/waiter" "github.com/akash-network/provider/session" ) diff --git a/client/broadcaster/serial.go b/client/broadcaster/serial.go index 14515cc8f..26dace2a5 100644 --- a/client/broadcaster/serial.go +++ b/client/broadcaster/serial.go @@ -8,7 +8,6 @@ import ( "time" "unsafe" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" "github.com/boz/go-lifecycle" sdkclient "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/tx" @@ -19,8 +18,8 @@ import ( "github.com/tendermint/tendermint/libs/log" ttypes "github.com/tendermint/tendermint/types" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" abroadcaster "github.com/akash-network/node/client/broadcaster" - "github.com/akash-network/node/sdkutil" ) const ( @@ -78,7 +77,7 @@ type serialBroadcaster struct { func NewSerialClient(ctx context.Context, log log.Logger, cctx sdkclient.Context, timeout time.Duration, txf tx.Factory, info keyring.Info) (SerialClient, error) { // populate account number, current sequence number - poptxf, err := sdkutil.PrepareFactory(cctx, txf) + poptxf, err := abroadcaster.PrepareFactory(cctx, txf) if err != nil { return nil, err } @@ -266,7 +265,7 @@ func (c *serialBroadcaster) broadcast(txf tx.Factory, retry bool, msgs ...sdk.Ms var err error if !retry { - txf, err = sdkutil.AdjustGas(c.cctx, txf, msgs...) + txf, err = abroadcaster.AdjustGas(c.cctx, txf, msgs...) if err != nil { return txf, err } diff --git a/cluster/client.go b/cluster/client.go index f33027dd7..0f3572e9c 100644 --- a/cluster/client.go +++ b/cluster/client.go @@ -9,31 +9,24 @@ import ( "sync" "time" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" - - "github.com/akash-network/node/sdl" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/pkg/errors" - "k8s.io/client-go/tools/remotecommand" - eventsv1 "k8s.io/api/events/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/version" + "k8s.io/client-go/tools/remotecommand" - manifest "github.com/akash-network/node/manifest/v2beta1" - - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" - - types "github.com/akash-network/node/types/v1beta2" - - "github.com/akash-network/node/types/unit" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + "github.com/akash-network/node/sdl" + "github.com/akash-network/akash-api/go/node/types/unit" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" mquery "github.com/akash-network/node/x/market/query" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" - akashtypes "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" + akashtypes "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) var ( diff --git a/cluster/config.go b/cluster/config.go index 14800566a..bfef71712 100644 --- a/cluster/config.go +++ b/cluster/config.go @@ -7,6 +7,7 @@ type Config struct { InventoryResourceDebugFrequency uint InventoryExternalPortQuantity uint CPUCommitLevel float64 + GPUCommitLevel float64 MemoryCommitLevel float64 StorageCommitLevel float64 BlockedHostnames []string diff --git a/cluster/hostname.go b/cluster/hostname.go index ec7174c61..c7bad4d59 100644 --- a/cluster/hostname.go +++ b/cluster/hostname.go @@ -8,11 +8,11 @@ import ( "github.com/boz/go-lifecycle" sdktypes "github.com/cosmos/cosmos-sdk/types" + "github.com/pkg/errors" - clustertypes "github.com/akash-network/provider/cluster/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - "github.com/pkg/errors" + clustertypes "github.com/akash-network/provider/cluster/types/v1beta3" ) // hostnameID type exists to identify the target of a reservation. The lease ID type is not used directly because diff --git a/cluster/hostname_test.go b/cluster/hostname_test.go index f11a54032..ce81f40f3 100644 --- a/cluster/hostname_test.go +++ b/cluster/hostname_test.go @@ -3,10 +3,11 @@ package cluster import ( "context" "errors" - "github.com/akash-network/node/testutil" - "github.com/stretchr/testify/require" "testing" "time" + + "github.com/akash-network/node/testutil" + "github.com/stretchr/testify/require" ) type scaffold struct { diff --git a/cluster/inventory.go b/cluster/inventory.go index ff5241236..cdbb7e1a7 100644 --- a/cluster/inventory.go +++ b/cluster/inventory.go @@ -9,23 +9,22 @@ import ( "sync/atomic" "time" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/tendermint/tendermint/libs/log" - + "github.com/boz/go-lifecycle" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" - "github.com/boz/go-lifecycle" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/tendermint/tendermint/libs/log" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + atypes "github.com/akash-network/akash-api/go/node/types/v1beta3" "github.com/akash-network/node/pubsub" sdlutil "github.com/akash-network/node/sdl/util" - atypes "github.com/akash-network/node/types/v1beta2" "github.com/akash-network/node/util/runner" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" "github.com/akash-network/provider/cluster/operatorclients" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/event" ipoptypes "github.com/akash-network/provider/operator/ipoperator/types" "github.com/akash-network/provider/operator/waiter" @@ -52,8 +51,8 @@ var ( Help: "", }, []string{"classification", "quantity"}) - clusterInventoryAllocateable = promauto.NewGaugeVec(prometheus.GaugeOpts{ - Name: "provider_inventory_allocateable_total", + clusterInventoryAllocatable = promauto.NewGaugeVec(prometheus.GaugeOpts{ + Name: "provider_inventory_allocatable_total", Help: "", }, []string{"quantity"}) @@ -238,6 +237,10 @@ func (is *inventoryService) resourcesToCommit(rgroup atypes.ResourceGroup) atype Units: sdlutil.ComputeCommittedResources(is.config.CPUCommitLevel, resource.Resources.GetCPU().GetUnits()), Attributes: resource.Resources.GetCPU().GetAttributes(), }, + GPU: &atypes.GPU{ + Units: sdlutil.ComputeCommittedResources(is.config.GPUCommitLevel, resource.Resources.GetGPU().GetUnits()), + Attributes: resource.Resources.GetGPU().GetAttributes(), + }, Memory: &atypes.Memory{ Quantity: sdlutil.ComputeCommittedResources(is.config.MemoryCommitLevel, resource.Resources.GetMemory().GetQuantity()), Attributes: resource.Resources.GetMemory().GetAttributes(), @@ -271,20 +274,22 @@ func (is *inventoryService) resourcesToCommit(rgroup atypes.ResourceGroup) atype Requirements: atypes.PlacementRequirements{}, Resources: replacedResources, } + return result } func (is *inventoryService) updateInventoryMetrics(metrics ctypes.InventoryMetrics) { - clusterInventoryAllocateable.WithLabelValues("nodes").Set(float64(len(metrics.Nodes))) + clusterInventoryAllocatable.WithLabelValues("nodes").Set(float64(len(metrics.Nodes))) - clusterInventoryAllocateable.WithLabelValues("cpu").Set(float64(metrics.TotalAllocatable.CPU) / 1000) - clusterInventoryAllocateable.WithLabelValues("memory").Set(float64(metrics.TotalAllocatable.Memory)) - clusterInventoryAllocateable.WithLabelValues("storage-ephemeral").Set(float64(metrics.TotalAllocatable.StorageEphemeral)) + clusterInventoryAllocatable.WithLabelValues("cpu").Set(float64(metrics.TotalAllocatable.CPU) / 1000) + clusterInventoryAllocatable.WithLabelValues("gpu").Set(float64(metrics.TotalAllocatable.GPU) / 1000) + clusterInventoryAllocatable.WithLabelValues("memory").Set(float64(metrics.TotalAllocatable.Memory)) + clusterInventoryAllocatable.WithLabelValues("storage-ephemeral").Set(float64(metrics.TotalAllocatable.StorageEphemeral)) for class, val := range metrics.TotalAllocatable.Storage { - clusterInventoryAllocateable.WithLabelValues(fmt.Sprintf("storage-%s", class)).Set(float64(val)) + clusterInventoryAllocatable.WithLabelValues(fmt.Sprintf("storage-%s", class)).Set(float64(val)) } - clusterInventoryAllocateable.WithLabelValues("endpoints").Set(float64(is.config.InventoryExternalPortQuantity)) + clusterInventoryAllocatable.WithLabelValues("endpoints").Set(float64(is.config.InventoryExternalPortQuantity)) clusterInventoryAvailable.WithLabelValues("cpu").Set(float64(metrics.TotalAvailable.CPU) / 1000) clusterInventoryAvailable.WithLabelValues("memory").Set(float64(metrics.TotalAvailable.Memory)) @@ -300,11 +305,13 @@ func updateReservationMetrics(reservations []*reservation) { inventoryReservations.WithLabelValues("none", "quantity").Set(float64(len(reservations))) activeCPUTotal := 0.0 + activeGPUTotal := 0.0 activeMemoryTotal := 0.0 activeStorageEphemeralTotal := 0.0 activeEndpointsTotal := 0.0 pendingCPUTotal := 0.0 + pendingGPUTotal := 0.0 pendingMemoryTotal := 0.0 pendingStorageEphemeralTotal := 0.0 pendingEndpointsTotal := 0.0 @@ -312,21 +319,21 @@ func updateReservationMetrics(reservations []*reservation) { allocated := 0.0 for _, reservation := range reservations { cpuTotal := &pendingCPUTotal + gpuTotal := &pendingGPUTotal memoryTotal := &pendingMemoryTotal - // storageTotal := &pendingStorageTotal endpointsTotal := &pendingEndpointsTotal if reservation.allocated { allocated++ cpuTotal = &activeCPUTotal + gpuTotal = &activeGPUTotal memoryTotal = &activeMemoryTotal - // storageTotal = &activeStorageTotal endpointsTotal = &activeEndpointsTotal } for _, resource := range reservation.Resources().GetResources() { *cpuTotal += float64(resource.Resources.GetCPU().GetUnits().Value() * uint64(resource.Count)) + *gpuTotal += float64(resource.Resources.GetGPU().GetUnits().Value() * uint64(resource.Count)) *memoryTotal += float64(resource.Resources.GetMemory().Quantity.Value() * uint64(resource.Count)) - // *storageTotal += float64(resource.Resources.GetStorage().Quantity.Value() * uint64(resource.Count)) *endpointsTotal += float64(len(resource.Resources.GetEndpoints())) } } @@ -334,11 +341,13 @@ func updateReservationMetrics(reservations []*reservation) { inventoryReservations.WithLabelValues("none", "allocated").Set(allocated) inventoryReservations.WithLabelValues("active", "cpu").Set(activeCPUTotal) + inventoryReservations.WithLabelValues("active", "gpu").Set(activeGPUTotal) inventoryReservations.WithLabelValues("active", "memory").Set(activeMemoryTotal) inventoryReservations.WithLabelValues("active", "storage-ephemeral").Set(activeStorageEphemeralTotal) inventoryReservations.WithLabelValues("active", "endpoints").Set(activeEndpointsTotal) inventoryReservations.WithLabelValues("pending", "cpu").Set(pendingCPUTotal) + inventoryReservations.WithLabelValues("pending", "gpu").Set(pendingGPUTotal) inventoryReservations.WithLabelValues("pending", "memory").Set(pendingMemoryTotal) inventoryReservations.WithLabelValues("pending", "storage-ephemeral").Set(pendingStorageEphemeralTotal) inventoryReservations.WithLabelValues("pending", "endpoints").Set(pendingEndpointsTotal) diff --git a/cluster/inventory_test.go b/cluster/inventory_test.go index 602dee887..03b34bb23 100644 --- a/cluster/inventory_test.go +++ b/cluster/inventory_test.go @@ -5,26 +5,24 @@ import ( "testing" "time" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - ipoptypes "github.com/akash-network/provider/operator/ipoperator/types" - "github.com/akash-network/provider/operator/waiter" - - "github.com/akash-network/provider/cluster/operatorclients" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - manifest "github.com/akash-network/node/manifest/v2beta1" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" "github.com/akash-network/node/pubsub" "github.com/akash-network/node/testutil" - "github.com/akash-network/node/types/unit" - types "github.com/akash-network/node/types/v1beta2" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" + "github.com/akash-network/akash-api/go/node/types/unit" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/cluster/mocks" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + "github.com/akash-network/provider/cluster/operatorclients" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/event" + ipoptypes "github.com/akash-network/provider/operator/ipoperator/types" + "github.com/akash-network/provider/operator/waiter" ) func newInventory(nodes ...string) ctypes.Inventory { diff --git a/cluster/kube/apply.go b/cluster/kube/apply.go index 7a4f801b8..6d7167a1c 100644 --- a/cluster/kube/apply.go +++ b/cluster/kube/apply.go @@ -11,9 +11,8 @@ import ( metricsutils "github.com/akash-network/node/util/metrics" - crdapi "github.com/akash-network/provider/pkg/client/clientset/versioned" - "github.com/akash-network/provider/cluster/kube/builder" + crdapi "github.com/akash-network/provider/pkg/client/clientset/versioned" ) func applyNS(ctx context.Context, kc kubernetes.Interface, b builder.NS) error { @@ -155,7 +154,7 @@ func applyService(ctx context.Context, kc kubernetes.Interface, b builder.Servic } func applyManifest(ctx context.Context, kc crdapi.Interface, b builder.Manifest) error { - obj, err := kc.AkashV2beta1().Manifests(b.NS()).Get(ctx, b.Name(), metav1.GetOptions{}) + obj, err := kc.AkashV2beta2().Manifests(b.NS()).Get(ctx, b.Name(), metav1.GetOptions{}) metricsutils.IncCounterVecWithLabelValuesFiltered(kubeCallsCounter, "akash-manifests-get", err, errors.IsNotFound) @@ -164,13 +163,13 @@ func applyManifest(ctx context.Context, kc crdapi.Interface, b builder.Manifest) // TODO - only run this update if it would change something obj, err = b.Update(obj) if err == nil { - _, err = kc.AkashV2beta1().Manifests(b.NS()).Update(ctx, obj, metav1.UpdateOptions{}) + _, err = kc.AkashV2beta2().Manifests(b.NS()).Update(ctx, obj, metav1.UpdateOptions{}) metricsutils.IncCounterVecWithLabelValues(kubeCallsCounter, "akash-manifests-update", err) } case errors.IsNotFound(err): obj, err = b.Create() if err == nil { - _, err = kc.AkashV2beta1().Manifests(b.NS()).Create(ctx, obj, metav1.CreateOptions{}) + _, err = kc.AkashV2beta2().Manifests(b.NS()).Create(ctx, obj, metav1.CreateOptions{}) metricsutils.IncCounterVecWithLabelValues(kubeCallsCounter, "akash-manifests-create", err) } } diff --git a/cluster/kube/builder/builder.go b/cluster/kube/builder/builder.go index 12d20774a..62f44d8c0 100644 --- a/cluster/kube/builder/builder.go +++ b/cluster/kube/builder/builder.go @@ -11,8 +11,8 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" - manifesttypes "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + manifesttypes "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" clusterUtil "github.com/akash-network/provider/cluster/util" ) diff --git a/cluster/kube/builder/builder_test.go b/cluster/kube/builder/builder_test.go index f7315fa48..15310b4d2 100644 --- a/cluster/kube/builder/builder_test.go +++ b/cluster/kube/builder/builder_test.go @@ -8,7 +8,7 @@ import ( corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/intstr" - manitypes "github.com/akash-network/node/manifest/v2beta1" + manitypes "github.com/akash-network/akash-api/go/manifest/v2beta2" "github.com/akash-network/node/testutil" ) diff --git a/cluster/kube/builder/deployment.go b/cluster/kube/builder/deployment.go index e2c4d06f4..a65c5c7a8 100644 --- a/cluster/kube/builder/deployment.go +++ b/cluster/kube/builder/deployment.go @@ -6,8 +6,8 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - manitypes "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + manitypes "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) type Deployment interface { diff --git a/cluster/kube/builder/manifest.go b/cluster/kube/builder/manifest.go index 67d13dd38..d5bd36d83 100644 --- a/cluster/kube/builder/manifest.go +++ b/cluster/kube/builder/manifest.go @@ -3,10 +3,10 @@ package builder import ( "github.com/tendermint/tendermint/libs/log" - manitypes "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + manitypes "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) type Manifest interface { diff --git a/cluster/kube/builder/namespace.go b/cluster/kube/builder/namespace.go index 730e83885..27880dbb0 100644 --- a/cluster/kube/builder/namespace.go +++ b/cluster/kube/builder/namespace.go @@ -4,8 +4,8 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - manitypes "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + manitypes "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) type NS interface { diff --git a/cluster/kube/builder/netpol.go b/cluster/kube/builder/netpol.go index 0c9892b56..58f7fc4a1 100644 --- a/cluster/kube/builder/netpol.go +++ b/cluster/kube/builder/netpol.go @@ -8,9 +8,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - manitypes "github.com/akash-network/node/manifest/v2beta1" + manitypes "github.com/akash-network/akash-api/go/manifest/v2beta2" sdlutil "github.com/akash-network/node/sdl/util" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) type NetPol interface { diff --git a/cluster/kube/builder/podsecuritypolicy.go b/cluster/kube/builder/podsecuritypolicy.go index 69b1a9dfc..23a951427 100644 --- a/cluster/kube/builder/podsecuritypolicy.go +++ b/cluster/kube/builder/podsecuritypolicy.go @@ -5,8 +5,8 @@ import ( "k8s.io/api/policy/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - manitypes "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + manitypes "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) type PspRestricted interface { diff --git a/cluster/kube/builder/service.go b/cluster/kube/builder/service.go index 2346cae33..904a7e5fc 100644 --- a/cluster/kube/builder/service.go +++ b/cluster/kube/builder/service.go @@ -9,9 +9,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - manitypes "github.com/akash-network/node/manifest/v2beta1" + manitypes "github.com/akash-network/akash-api/go/manifest/v2beta2" sdlutil "github.com/akash-network/node/sdl/util" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) type Service interface { diff --git a/cluster/kube/builder/settings.go b/cluster/kube/builder/settings.go index 463201d70..40c18ab38 100644 --- a/cluster/kube/builder/settings.go +++ b/cluster/kube/builder/settings.go @@ -35,6 +35,7 @@ type Settings struct { NetworkPoliciesEnabled bool CPUCommitLevel float64 + GPUCommitLevel float64 MemoryCommitLevel float64 StorageCommitLevel float64 diff --git a/cluster/kube/builder/statefulset.go b/cluster/kube/builder/statefulset.go index 96edb1a8c..3fec1f388 100644 --- a/cluster/kube/builder/statefulset.go +++ b/cluster/kube/builder/statefulset.go @@ -6,8 +6,8 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - manitypes "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + manitypes "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) type StatefulSet interface { diff --git a/cluster/kube/builder/workload.go b/cluster/kube/builder/workload.go index dee15c3fa..eb501abdc 100644 --- a/cluster/kube/builder/workload.go +++ b/cluster/kube/builder/workload.go @@ -9,10 +9,10 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - maniv2beta1 "github.com/akash-network/node/manifest/v2beta1" + maniv2beta1 "github.com/akash-network/akash-api/go/manifest/v2beta2" "github.com/akash-network/node/sdl" sdlutil "github.com/akash-network/node/sdl/util" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) type workloadBase interface { @@ -67,6 +67,17 @@ func (b *workload) container() corev1.Container { kcontainer.Resources.Limits[corev1.ResourceCPU] = resource.NewScaledQuantity(int64(cpu.Units.Value()), resource.Milli).DeepCopy() } + if gpu := b.service.Resources.GPU; gpu != nil { + requestedGPU := sdlutil.ComputeCommittedResources(b.settings.GPUCommitLevel, gpu.Units) + // GPUs are only supposed to be specified in the limits section, which means + // - can specify GPU limits without specifying requests, because Kubernetes will use the limit as the request value by default. + // - can specify GPU in both limits and requests but these two values must be equal. + // - cannot specify GPU requests without specifying limits. + // fixme get custom resource name from inventory + kcontainer.Resources.Requests["nvidia.com/gpu"] = resource.NewQuantity(int64(requestedGPU.Value()), resource.DecimalSI).DeepCopy() + kcontainer.Resources.Limits["nvidia.com/gpu"] = resource.NewQuantity(int64(gpu.Units.Value()), resource.DecimalSI).DeepCopy() + } + if mem := b.service.Resources.Memory; mem != nil { requestedMem := sdlutil.ComputeCommittedResources(b.settings.MemoryCommitLevel, mem.Quantity) kcontainer.Resources.Requests[corev1.ResourceMemory] = resource.NewQuantity(int64(requestedMem.Value()), resource.DecimalSI).DeepCopy() diff --git a/cluster/kube/cleanup.go b/cluster/kube/cleanup.go index 3cdf3a30a..7b3985323 100644 --- a/cluster/kube/cleanup.go +++ b/cluster/kube/cleanup.go @@ -8,8 +8,8 @@ import ( "k8s.io/apimachinery/pkg/selection" "k8s.io/client-go/kubernetes" - manifest "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/cluster/kube/builder" ) diff --git a/cluster/kube/client.go b/cluster/kube/client.go index 27f1cd067..48074e932 100644 --- a/cluster/kube/client.go +++ b/cluster/kube/client.go @@ -16,25 +16,23 @@ import ( "k8s.io/apimachinery/pkg/version" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/kubernetes" - + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/util/flowcontrol" metricsclient "k8s.io/metrics/pkg/client/clientset/versioned" - manifest "github.com/akash-network/node/manifest/v2beta1" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/node/sdl" sdlutil "github.com/akash-network/node/sdl/util" metricsutils "github.com/akash-network/node/util/metrics" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/util/flowcontrol" "github.com/akash-network/provider/cluster" "github.com/akash-network/provider/cluster/kube/builder" "github.com/akash-network/provider/cluster/kube/clientcommon" kubeclienterrors "github.com/akash-network/provider/cluster/kube/errors" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" akashclient "github.com/akash-network/provider/pkg/client/clientset/versioned" ) @@ -108,7 +106,7 @@ func (c *client) GetDeployments(ctx context.Context, dID dtypes.DeploymentID) ([ _, _ = fmt.Fprintf(labelSelectors, "%s=%d", builder.AkashLeaseDSeqLabelName, dID.DSeq) _, _ = fmt.Fprintf(labelSelectors, ",%s=%s", builder.AkashLeaseOwnerLabelName, dID.Owner) - manifests, err := c.ac.AkashV2beta1().Manifests(c.ns).List(ctx, metav1.ListOptions{ + manifests, err := c.ac.AkashV2beta2().Manifests(c.ns).List(ctx, metav1.ListOptions{ TypeMeta: metav1.TypeMeta{}, LabelSelector: labelSelectors.String(), FieldSelector: "", @@ -139,7 +137,7 @@ func (c *client) GetDeployments(ctx context.Context, dID dtypes.DeploymentID) ([ func (c *client) GetManifestGroup(ctx context.Context, lID mtypes.LeaseID) (bool, crd.ManifestGroup, error) { leaseNamespace := builder.LidNS(lID) - obj, err := c.ac.AkashV2beta1().Manifests(c.ns).Get(ctx, leaseNamespace, metav1.GetOptions{}) + obj, err := c.ac.AkashV2beta2().Manifests(c.ns).Get(ctx, leaseNamespace, metav1.GetOptions{}) if err != nil { if kubeErrors.IsNotFound(err) { c.log.Info("CRD manifest not found", "lease-ns", leaseNamespace) @@ -153,7 +151,7 @@ func (c *client) GetManifestGroup(ctx context.Context, lID mtypes.LeaseID) (bool } func (c *client) Deployments(ctx context.Context) ([]ctypes.Deployment, error) { - manifests, err := c.ac.AkashV2beta1().Manifests(c.ns).List(ctx, metav1.ListOptions{}) + manifests, err := c.ac.AkashV2beta2().Manifests(c.ns).List(ctx, metav1.ListOptions{}) if err != nil { return nil, err } @@ -257,7 +255,7 @@ func (c *client) TeardownLease(ctx context.Context, lid mtypes.LeaseID) error { } kubeCallsCounter.WithLabelValues("namespaces-delete", label).Inc() - err := c.ac.AkashV2beta1().Manifests(c.ns).Delete(ctx, builder.LidNS(lid), metav1.DeleteOptions{}) + err := c.ac.AkashV2beta2().Manifests(c.ns).Delete(ctx, builder.LidNS(lid), metav1.DeleteOptions{}) if err != nil { c.log.Error("teardown lease: unable to delete manifest", "ns", builder.LidNS(lid), "error", err) } @@ -489,7 +487,7 @@ func (c *client) LeaseStatus(ctx context.Context, lid mtypes.LeaseID) (map[strin kubeSelectorForLease(labelSelector, lid) // Note: this is a separate call to the Kubernetes API to get this data. It could // be a separate method on the interface entirely - phResult, err := c.ac.AkashV2beta1().ProviderHosts(c.ns).List(ctx, metav1.ListOptions{ + phResult, err := c.ac.AkashV2beta2().ProviderHosts(c.ns).List(ctx, metav1.ListOptions{ LabelSelector: labelSelector.String(), }) @@ -516,7 +514,7 @@ func (c *client) ServiceStatus(ctx context.Context, lid mtypes.LeaseID, name str // Get manifest definition from CRD c.log.Debug("Pulling manifest from CRD", "lease-ns", builder.LidNS(lid)) - mani, err := c.ac.AkashV2beta1().Manifests(c.ns).Get(ctx, builder.LidNS(lid), metav1.GetOptions{}) + mani, err := c.ac.AkashV2beta2().Manifests(c.ns).Get(ctx, builder.LidNS(lid), metav1.GetOptions{}) if err != nil { c.log.Error("CRD manifest not found", "lease-ns", builder.LidNS(lid), "name", name) return nil, kubeclienterrors.ErrNoManifestForLease @@ -611,8 +609,8 @@ exposeCheckLoop: return nil, err } mse := manifest.ServiceExpose{ - Port: expose.Port, - ExternalPort: expose.ExternalPort, + Port: uint32(expose.Port), + ExternalPort: uint32(expose.ExternalPort), Proto: proto, Service: expose.Service, Global: expose.Global, @@ -636,7 +634,7 @@ exposeCheckLoop: labelSelector := &strings.Builder{} kubeSelectorForLease(labelSelector, lid) - phs, err := c.ac.AkashV2beta1().ProviderHosts(c.ns).List(ctx, metav1.ListOptions{ + phs, err := c.ac.AkashV2beta2().ProviderHosts(c.ns).List(ctx, metav1.ListOptions{ LabelSelector: labelSelector.String(), }) diff --git a/cluster/kube/client_exec.go b/cluster/kube/client_exec.go index 94bbf8a12..f503435ee 100644 --- a/cluster/kube/client_exec.go +++ b/cluster/kube/client_exec.go @@ -7,11 +7,6 @@ import ( "sort" "strings" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - - "github.com/akash-network/provider/cluster" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" - corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" @@ -21,7 +16,11 @@ import ( "k8s.io/client-go/tools/remotecommand" executil "k8s.io/client-go/util/exec" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + + "github.com/akash-network/provider/cluster" "github.com/akash-network/provider/cluster/kube/builder" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" ) // the type implementing the interface returned by the Exec command @@ -54,7 +53,7 @@ func (c *client) Exec(ctx context.Context, leaseID mtypes.LeaseID, serviceName s tsq remotecommand.TerminalSizeQueue) (ctypes.ExecResult, error) { namespace := builder.LidNS(leaseID) - mani, err := c.ac.AkashV2beta1().Manifests(c.ns).Get(ctx, namespace, metav1.GetOptions{}) + mani, err := c.ac.AkashV2beta2().Manifests(c.ns).Get(ctx, namespace, metav1.GetOptions{}) if err != nil { return nil, fmt.Errorf("%w: failed getting manifest", err) } diff --git a/cluster/kube/client_exec_test.go b/cluster/kube/client_exec_test.go index 93eb98b17..c90ccd918 100644 --- a/cluster/kube/client_exec_test.go +++ b/cluster/kube/client_exec_test.go @@ -11,21 +11,20 @@ import ( "testing" "time" - "github.com/akash-network/node/sdl" - "github.com/akash-network/node/testutil" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kubefake "k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/rest" - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" - akashclient_fake "github.com/akash-network/provider/pkg/client/clientset/versioned/fake" + "github.com/akash-network/node/sdl" + "github.com/akash-network/node/testutil" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/cluster" "github.com/akash-network/provider/cluster/kube/builder" - - kubefake "k8s.io/client-go/kubernetes/fake" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + akashclient_fake "github.com/akash-network/provider/pkg/client/clientset/versioned/fake" ) const ( diff --git a/cluster/kube/client_hostname_connections.go b/cluster/kube/client_hostname_connections.go index 3b0f30044..5d4b01d8d 100644 --- a/cluster/kube/client_hostname_connections.go +++ b/cluster/kube/client_hostname_connections.go @@ -5,21 +5,19 @@ import ( "fmt" "strings" - sdktypes "github.com/cosmos/cosmos-sdk/types" - - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" - - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" - kubeErrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/tools/pager" + sdktypes "github.com/cosmos/cosmos-sdk/types" + + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + "github.com/akash-network/provider/cluster/kube/builder" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) type hostnameResourceEvent struct { @@ -42,7 +40,7 @@ func (c *client) DeclareHostname(ctx context.Context, lID mtypes.LeaseID, host s } builder.AppendLeaseLabels(lID, labels) - foundEntry, err := c.ac.AkashV2beta1().ProviderHosts(c.ns).Get(ctx, host, metav1.GetOptions{}) + foundEntry, err := c.ac.AkashV2beta2().ProviderHosts(c.ns).Get(ctx, host, metav1.GetOptions{}) exists := true var resourceVersion string @@ -78,10 +76,10 @@ func (c *client) DeclareHostname(ctx context.Context, lID mtypes.LeaseID, host s c.log.Info("declaring hostname", "lease", lID, "service-name", serviceName, "external-port", externalPort, "host", host) // Create or update the entry if exists { - _, err = c.ac.AkashV2beta1().ProviderHosts(c.ns).Update(ctx, &obj, metav1.UpdateOptions{}) + _, err = c.ac.AkashV2beta2().ProviderHosts(c.ns).Update(ctx, &obj, metav1.UpdateOptions{}) } else { obj.ResourceVersion = "" - _, err = c.ac.AkashV2beta1().ProviderHosts(c.ns).Create(ctx, &obj, metav1.CreateOptions{}) + _, err = c.ac.AkashV2beta2().ProviderHosts(c.ns).Create(ctx, &obj, metav1.CreateOptions{}) } return err } @@ -90,7 +88,7 @@ func (c *client) PurgeDeclaredHostname(ctx context.Context, lID mtypes.LeaseID, labelSelector := &strings.Builder{} kubeSelectorForLease(labelSelector, lID) - return c.ac.AkashV2beta1().ProviderHosts(c.ns).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ + return c.ac.AkashV2beta2().ProviderHosts(c.ns).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ LabelSelector: labelSelector.String(), FieldSelector: fmt.Sprintf("metadata.name=%s", hostname), }) @@ -99,7 +97,7 @@ func (c *client) PurgeDeclaredHostname(ctx context.Context, lID mtypes.LeaseID, func (c *client) PurgeDeclaredHostnames(ctx context.Context, lID mtypes.LeaseID) error { labelSelector := &strings.Builder{} kubeSelectorForLease(labelSelector, lID) - result := c.ac.AkashV2beta1().ProviderHosts(c.ns).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ + result := c.ac.AkashV2beta2().ProviderHosts(c.ns).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ LabelSelector: labelSelector.String(), }) @@ -135,7 +133,7 @@ func (ev hostnameResourceEvent) GetExternalPort() uint32 { func (c *client) ObserveHostnameState(ctx context.Context) (<-chan ctypes.HostnameResourceEvent, error) { var lastResourceVersion string phpager := pager.New(func(ctx context.Context, opts metav1.ListOptions) (runtime.Object, error) { - resources, err := c.ac.AkashV2beta1().ProviderHosts(c.ns).List(ctx, opts) + resources, err := c.ac.AkashV2beta2().ProviderHosts(c.ns).List(ctx, opts) if err == nil && len(resources.GetResourceVersion()) != 0 { lastResourceVersion = resources.GetResourceVersion() @@ -155,7 +153,7 @@ func (c *client) ObserveHostnameState(ctx context.Context) (<-chan ctypes.Hostna } c.log.Info("starting hostname watch", "resourceVersion", lastResourceVersion) - watcher, err := c.ac.AkashV2beta1().ProviderHosts(c.ns).Watch(ctx, metav1.ListOptions{ + watcher, err := c.ac.AkashV2beta2().ProviderHosts(c.ns).Watch(ctx, metav1.ListOptions{ TypeMeta: metav1.TypeMeta{}, LabelSelector: "", FieldSelector: "", @@ -265,7 +263,7 @@ func (c *client) ObserveHostnameState(ctx context.Context) (<-chan ctypes.Hostna func (c *client) AllHostnames(ctx context.Context) ([]ctypes.ActiveHostname, error) { ingressPager := pager.New(func(ctx context.Context, opts metav1.ListOptions) (runtime.Object, error) { - return c.ac.AkashV2beta1().ProviderHosts(c.ns).List(ctx, opts) + return c.ac.AkashV2beta2().ProviderHosts(c.ns).List(ctx, opts) }) listOptions := metav1.ListOptions{ diff --git a/cluster/kube/client_ingress.go b/cluster/kube/client_ingress.go index c1d5c33b9..e4adecac7 100644 --- a/cluster/kube/client_ingress.go +++ b/cluster/kube/client_ingress.go @@ -7,21 +7,19 @@ import ( "strconv" "strings" - "github.com/akash-network/provider/cluster/kube/clientcommon" - kubeclienterrors "github.com/akash-network/provider/cluster/kube/errors" - - metricsutils "github.com/akash-network/node/util/metrics" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" - netv1 "k8s.io/api/networking/v1" kubeErrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/tools/pager" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + metricsutils "github.com/akash-network/node/util/metrics" + "github.com/akash-network/provider/cluster/kube/builder" + "github.com/akash-network/provider/cluster/kube/clientcommon" + kubeclienterrors "github.com/akash-network/provider/cluster/kube/errors" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" ) const ( diff --git a/cluster/kube/client_test.go b/cluster/kube/client_test.go index b9bb993eb..700a23f6a 100644 --- a/cluster/kube/client_test.go +++ b/cluster/kube/client_test.go @@ -4,36 +4,30 @@ import ( "context" "testing" - "k8s.io/client-go/rest" - - kubeclienterrors "github.com/akash-network/provider/cluster/kube/errors" - - manifest "github.com/akash-network/node/manifest/v2beta1" - types "github.com/akash-network/node/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - - kubeErrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - - "github.com/akash-network/provider/cluster/kube/builder" - "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" appsv1 "k8s.io/api/apps/v1" v1 "k8s.io/api/core/v1" + kubeErrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" "github.com/akash-network/node/testutil" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + "github.com/akash-network/provider/cluster/kube/builder" + kubeclienterrors "github.com/akash-network/provider/cluster/kube/errors" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + akashclient "github.com/akash-network/provider/pkg/client/clientset/versioned" + akashclient_fake "github.com/akash-network/provider/pkg/client/clientset/versioned/fake" kubernetes_mocks "github.com/akash-network/provider/testutil/kubernetes_mock" appsv1_mocks "github.com/akash-network/provider/testutil/kubernetes_mock/typed/apps/v1" corev1_mocks "github.com/akash-network/provider/testutil/kubernetes_mock/typed/core/v1" - - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" - akashclient "github.com/akash-network/provider/pkg/client/clientset/versioned" - akashclient_fake "github.com/akash-network/provider/pkg/client/clientset/versioned/fake" ) const testKubeClientNs = "nstest1111" diff --git a/cluster/kube/clientcommon/recover_lease_id_from_labels.go b/cluster/kube/clientcommon/recover_lease_id_from_labels.go index 9b91694d8..cb59a0cc5 100644 --- a/cluster/kube/clientcommon/recover_lease_id_from_labels.go +++ b/cluster/kube/clientcommon/recover_lease_id_from_labels.go @@ -5,7 +5,7 @@ import ( "fmt" "strconv" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/cluster/kube/builder" ) diff --git a/cluster/kube/cluster_ip_connections.go b/cluster/kube/cluster_ip_connections.go index 10fd16afb..8a1f6e7d5 100644 --- a/cluster/kube/cluster_ip_connections.go +++ b/cluster/kube/cluster_ip_connections.go @@ -5,21 +5,22 @@ import ( "fmt" "strings" - manifest "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - sdktypes "github.com/cosmos/cosmos-sdk/types" kubeErrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/tools/pager" - akashtypes "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + sdktypes "github.com/cosmos/cosmos-sdk/types" + + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/cluster/kube/builder" kubeclienterrors "github.com/akash-network/provider/cluster/kube/errors" - "github.com/akash-network/provider/cluster/types/v1beta2" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + "github.com/akash-network/provider/cluster/types/v1beta3" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" + akashtypes "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) const ( @@ -32,7 +33,7 @@ func (c *client) GetDeclaredIPs(ctx context.Context, leaseID mtypes.LeaseID) ([] labelSelector := &strings.Builder{} kubeSelectorForLease(labelSelector, leaseID) - results, err := c.ac.AkashV2beta1().ProviderLeasedIPs(c.ns).List(ctx, metav1.ListOptions{ + results, err := c.ac.AkashV2beta2().ProviderLeasedIPs(c.ns).List(ctx, metav1.ListOptions{ LabelSelector: labelSelector.String(), }) @@ -54,7 +55,7 @@ func (c *client) PurgeDeclaredIP(ctx context.Context, leaseID mtypes.LeaseID, se _, _ = fmt.Fprintf(labelSelector, ",%s=%s", serviceNameLabel, serviceName) _, _ = fmt.Fprintf(labelSelector, ",%s=%s", protoLabel, proto.ToString()) _, _ = fmt.Fprintf(labelSelector, ",%s=%d", externalPortLabel, externalPort) - return c.ac.AkashV2beta1().ProviderLeasedIPs(c.ns).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ + return c.ac.AkashV2beta2().ProviderLeasedIPs(c.ns).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ LabelSelector: fmt.Sprintf("%s=true", builder.AkashManagedLabelName), }) } @@ -65,7 +66,7 @@ func (c *client) DeclareIP(ctx context.Context, lID mtypes.LeaseID, serviceName resourceName := strings.ToLower(fmt.Sprintf("%s-%s-%d", sharingKey, proto.ToString(), externalPort)) c.log.Debug("checking for resource", "resource-name", resourceName) - foundEntry, err := c.ac.AkashV2beta1().ProviderLeasedIPs(c.ns).Get(ctx, resourceName, metav1.GetOptions{}) + foundEntry, err := c.ac.AkashV2beta2().ProviderLeasedIPs(c.ns).Get(ctx, resourceName, metav1.GetOptions{}) exists := true if err != nil { if !kubeErrors.IsNotFound(err) { @@ -111,9 +112,9 @@ func (c *client) DeclareIP(ctx context.Context, lID mtypes.LeaseID, serviceName // Create or update the entry if exists { obj.ObjectMeta.ResourceVersion = foundEntry.ResourceVersion - _, err = c.ac.AkashV2beta1().ProviderLeasedIPs(c.ns).Update(ctx, &obj, metav1.UpdateOptions{}) + _, err = c.ac.AkashV2beta2().ProviderLeasedIPs(c.ns).Update(ctx, &obj, metav1.UpdateOptions{}) } else { - _, err = c.ac.AkashV2beta1().ProviderLeasedIPs(c.ns).Create(ctx, &obj, metav1.CreateOptions{}) + _, err = c.ac.AkashV2beta2().ProviderLeasedIPs(c.ns).Create(ctx, &obj, metav1.CreateOptions{}) } return err @@ -126,7 +127,7 @@ func (c *client) PurgeDeclaredIPs(ctx context.Context, lID mtypes.LeaseID) error return err } kubeSelectorForLease(labelSelector, lID) - result := c.ac.AkashV2beta1().ProviderLeasedIPs(c.ns).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ + result := c.ac.AkashV2beta2().ProviderLeasedIPs(c.ns).DeleteCollection(ctx, metav1.DeleteOptions{}, metav1.ListOptions{ LabelSelector: labelSelector.String(), }) @@ -136,7 +137,7 @@ func (c *client) PurgeDeclaredIPs(ctx context.Context, lID mtypes.LeaseID) error func (c *client) ObserveIPState(ctx context.Context) (<-chan v1beta2.IPResourceEvent, error) { var lastResourceVersion string phpager := pager.New(func(ctx context.Context, opts metav1.ListOptions) (runtime.Object, error) { - resources, err := c.ac.AkashV2beta1().ProviderLeasedIPs(c.ns).List(ctx, opts) + resources, err := c.ac.AkashV2beta2().ProviderLeasedIPs(c.ns).List(ctx, opts) if err == nil && len(resources.GetResourceVersion()) != 0 { lastResourceVersion = resources.GetResourceVersion() @@ -156,7 +157,7 @@ func (c *client) ObserveIPState(ctx context.Context) (<-chan v1beta2.IPResourceE } c.log.Info("starting ip passthrough watch", "resourceVersion", lastResourceVersion) - watcher, err := c.ac.AkashV2beta1().ProviderLeasedIPs(c.ns).Watch(ctx, metav1.ListOptions{ + watcher, err := c.ac.AkashV2beta2().ProviderLeasedIPs(c.ns).Watch(ctx, metav1.ListOptions{ TypeMeta: metav1.TypeMeta{}, LabelSelector: "", FieldSelector: "", diff --git a/cluster/kube/deploy_test.go b/cluster/kube/deploy_test.go index 9f0e6370b..c7194437b 100644 --- a/cluster/kube/deploy_test.go +++ b/cluster/kube/deploy_test.go @@ -4,17 +4,16 @@ import ( "context" "testing" + "github.com/stretchr/testify/require" + "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/akash-network/node/sdl" "github.com/akash-network/node/testutil" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/cluster/kube/builder" - - "github.com/akash-network/node/sdl" - - "github.com/stretchr/testify/require" ) const ( diff --git a/cluster/kube/inventory.go b/cluster/kube/inventory.go index 2aa195a07..1354f67e5 100644 --- a/cluster/kube/inventory.go +++ b/cluster/kube/inventory.go @@ -13,24 +13,28 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/tools/pager" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" "github.com/akash-network/node/sdl" - types "github.com/akash-network/node/types/v1beta2" metricsutils "github.com/akash-network/node/util/metrics" - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" - "github.com/akash-network/provider/cluster/kube/builder" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) const ( inventoryOperatorQueryTimeout = 5 * time.Second ) +const ( + resourceNvidiaGPU = "nvidia.com/gpu" +) + type node struct { id string arch string cpu resourcePair + gpu resourcePair memory resourcePair ephemeralStorage resourcePair volumesAttached resourcePair @@ -96,7 +100,7 @@ nodes: for ; resources[i].Count > 0; resources[i].Count-- { nd := currInventory.nodes[nodeName] - // first check if there reservation needs persistent storage + // first check if reservation needs persistent storage // and node handles such class if !nd.allowsStorageClasses(res.Storage) { continue nodes @@ -109,6 +113,11 @@ nodes: continue nodes } + gpu := nd.gpu.dup() + if adjusted = gpu.subNLZ(res.GPU.Units); !adjusted { + continue nodes + } + memory := nd.memory.dup() if adjusted = memory.subNLZ(res.Memory.Quantity); !adjusted { continue nodes @@ -153,6 +162,7 @@ nodes: id: nd.id, arch: nd.arch, cpu: *cpu, + gpu: *gpu, memory: *memory, ephemeralStorage: *ephemeralStorage, volumesAttached: *volumesAttached, @@ -182,11 +192,13 @@ nodes: func (inv *inventory) Metrics() ctypes.InventoryMetrics { cpuTotal := uint64(0) + gpuTotal := uint64(0) memoryTotal := uint64(0) storageEphemeralTotal := uint64(0) storageTotal := make(map[string]int64) cpuAvailable := uint64(0) + gpuAvailable := uint64(0) memoryAvailable := uint64(0) storageEphemeralAvailable := uint64(0) storageAvailable := make(map[string]int64) @@ -200,12 +212,14 @@ func (inv *inventory) Metrics() ctypes.InventoryMetrics { Name: nodeName, Allocatable: ctypes.InventoryNodeMetric{ CPU: uint64(nd.cpu.allocatable.MilliValue()), + GPU: uint64(nd.gpu.allocatable.Value()), Memory: uint64(nd.memory.allocatable.Value()), StorageEphemeral: uint64(nd.ephemeralStorage.allocatable.Value()), }, } cpuTotal += uint64(nd.cpu.allocatable.MilliValue()) + gpuTotal += uint64(nd.gpu.allocatable.Value()) memoryTotal += uint64(nd.memory.allocatable.Value()) storageEphemeralTotal += uint64(nd.ephemeralStorage.allocatable.Value()) @@ -213,6 +227,10 @@ func (inv *inventory) Metrics() ctypes.InventoryMetrics { invNode.Available.CPU = uint64(avail.MilliValue()) cpuAvailable += invNode.Available.CPU + avail = nd.gpu.available() + invNode.Available.GPU = uint64(avail.Value()) + gpuAvailable += invNode.Available.GPU + avail = nd.memory.available() invNode.Available.Memory = uint64(avail.Value()) memoryAvailable += invNode.Available.Memory @@ -234,6 +252,7 @@ func (inv *inventory) Metrics() ctypes.InventoryMetrics { ret.TotalAllocatable = ctypes.InventoryMetricTotal{ CPU: cpuTotal, + GPU: gpuTotal, Memory: memoryTotal, StorageEphemeral: storageEphemeralTotal, Storage: storageTotal, @@ -241,6 +260,7 @@ func (inv *inventory) Metrics() ctypes.InventoryMetrics { ret.TotalAvailable = ctypes.InventoryMetricTotal{ CPU: cpuAvailable, + GPU: gpuAvailable, Memory: memoryAvailable, StorageEphemeral: storageEphemeralAvailable, Storage: storageAvailable, @@ -356,6 +376,7 @@ func (c *client) fetchActiveNodes(ctx context.Context, cstorage clusterStorage) // Create an entry with the allocatable amount for the node cpu := knode.Status.Allocatable.Cpu().DeepCopy() + gpu := knode.Status.Allocatable.Name(resourceNvidiaGPU, resource.DecimalSI).DeepCopy() memory := knode.Status.Allocatable.Memory().DeepCopy() storage := knode.Status.Allocatable.StorageEphemeral().DeepCopy() entry := &node{ @@ -363,6 +384,9 @@ func (c *client) fetchActiveNodes(ctx context.Context, cstorage clusterStorage) cpu: resourcePair{ allocatable: cpu, }, + gpu: resourcePair{ + allocatable: gpu, + }, memory: resourcePair{ allocatable: memory, }, @@ -385,6 +409,7 @@ func (c *client) fetchActiveNodes(ctx context.Context, cstorage clusterStorage) // Initialize the allocated amount to for each node zero.DeepCopyInto(&entry.cpu.allocated) + zero.DeepCopyInto(&entry.gpu.allocated) zero.DeepCopyInto(&entry.memory.allocated) zero.DeepCopyInto(&entry.ephemeralStorage.allocated) @@ -429,6 +454,8 @@ func (nd *node) addAllocatedResources(rl corev1.ResourceList) { nd.memory.allocated.Add(quantity) case corev1.ResourceEphemeralStorage: nd.ephemeralStorage.allocated.Add(quantity) + case resourceNvidiaGPU: + nd.gpu.allocated.Add(quantity) } } } @@ -438,6 +465,7 @@ func (nd *node) dup() *node { id: nd.id, arch: nd.arch, cpu: *nd.cpu.dup(), + gpu: *nd.gpu.dup(), memory: *nd.memory.dup(), ephemeralStorage: *nd.ephemeralStorage.dup(), volumesAttached: *nd.volumesAttached.dup(), diff --git a/cluster/kube/inventory_test.go b/cluster/kube/inventory_test.go index 8451274ff..82b71db47 100644 --- a/cluster/kube/inventory_test.go +++ b/cluster/kube/inventory_test.go @@ -13,18 +13,16 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/akash-network/node/testutil" - "github.com/akash-network/node/types/unit" - atypes "github.com/akash-network/node/types/v1beta2" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + "github.com/akash-network/akash-api/go/node/types/unit" + atypes "github.com/akash-network/akash-api/go/node/types/v1beta3" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" + akashclientfake "github.com/akash-network/provider/pkg/client/clientset/versioned/fake" kubernetesmocks "github.com/akash-network/provider/testutil/kubernetes_mock" corev1mocks "github.com/akash-network/provider/testutil/kubernetes_mock/typed/core/v1" storagev1mocks "github.com/akash-network/provider/testutil/kubernetes_mock/typed/storage/v1" - - akashclientfake "github.com/akash-network/provider/pkg/client/clientset/versioned/fake" - - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" ) type testReservation struct { diff --git a/cluster/kube/k8s_integration_test.go b/cluster/kube/k8s_integration_test.go index a51dc31c0..41e64f84d 100644 --- a/cluster/kube/k8s_integration_test.go +++ b/cluster/kube/k8s_integration_test.go @@ -21,7 +21,7 @@ import ( "github.com/akash-network/provider/cluster/kube/builder" "github.com/akash-network/provider/cluster/kube/clientcommon" providerflags "github.com/akash-network/provider/cmd/provider-services/cmd/flags" - mtestutil "github.com/akash-network/provider/testutil/manifest" + mtestutil "github.com/akash-network/provider/testutil/manifest/v2beta2" ) func TestNewClientNSNotFound(t *testing.T) { diff --git a/cluster/kube/metallb/client.go b/cluster/kube/metallb/client.go index 26165f8f2..79473acdb 100644 --- a/cluster/kube/metallb/client.go +++ b/cluster/kube/metallb/client.go @@ -12,8 +12,6 @@ import ( "strings" "sync" - manifest "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" "github.com/prometheus/common/expfmt" "github.com/tendermint/tendermint/libs/log" corev1 "k8s.io/api/core/v1" @@ -25,13 +23,15 @@ import ( "k8s.io/client-go/tools/pager" "k8s.io/client-go/util/flowcontrol" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + "github.com/akash-network/provider/cluster/kube/builder" "github.com/akash-network/provider/cluster/kube/clientcommon" - "github.com/akash-network/provider/cluster/types/v1beta2" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" - clusterutil "github.com/akash-network/provider/cluster/util" - kubeclienterrors "github.com/akash-network/provider/cluster/kube/errors" + "github.com/akash-network/provider/cluster/types/v1beta3" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" + clusterutil "github.com/akash-network/provider/cluster/util" ) const ( diff --git a/cluster/kube/resourcetypes.go b/cluster/kube/resourcetypes.go index 8e1d316a9..806159914 100644 --- a/cluster/kube/resourcetypes.go +++ b/cluster/kube/resourcetypes.go @@ -6,9 +6,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "k8s.io/apimachinery/pkg/api/resource" - types "github.com/akash-network/node/types/v1beta2" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) type resourcePair struct { diff --git a/cluster/kube/resourcetypes_test.go b/cluster/kube/resourcetypes_test.go index b986bb019..b2ab24adf 100644 --- a/cluster/kube/resourcetypes_test.go +++ b/cluster/kube/resourcetypes_test.go @@ -6,7 +6,7 @@ import ( "github.com/stretchr/testify/require" "k8s.io/apimachinery/pkg/api/resource" - types "github.com/akash-network/node/types/v1beta2" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" ) func TestResourcePairAvailable(t *testing.T) { diff --git a/cluster/manager.go b/cluster/manager.go index acbff3273..88780e3b0 100644 --- a/cluster/manager.go +++ b/cluster/manager.go @@ -9,23 +9,23 @@ import ( "github.com/tendermint/tendermint/libs/log" + "github.com/avast/retry-go" "github.com/boz/go-lifecycle" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" - manifest "github.com/akash-network/node/manifest/v2beta1" + maniv2beta2 "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/node/pubsub" sdlutil "github.com/akash-network/node/sdl/util" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" kubeclienterrors "github.com/akash-network/provider/cluster/kube/errors" - clustertypes "github.com/akash-network/provider/cluster/types/v1beta2" + clustertypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/cluster/util" clusterutil "github.com/akash-network/provider/cluster/util" "github.com/akash-network/provider/event" + manifest "github.com/akash-network/provider/manifest" "github.com/akash-network/provider/session" - - "github.com/avast/retry-go" ) const ( @@ -61,11 +61,11 @@ type deploymentManager struct { state deploymentState lease mtypes.LeaseID - mgroup *manifest.Group + mgroup *maniv2beta2.Group monitor *deploymentMonitor wg sync.WaitGroup - updatech chan *manifest.Group + updatech chan *maniv2beta2.Group teardownch chan struct{} currentHostnames map[string]struct{} @@ -78,7 +78,7 @@ type deploymentManager struct { serviceShuttingDown <-chan struct{} } -func newDeploymentManager(s *service, lease mtypes.LeaseID, mgroup *manifest.Group, isNewLease bool) *deploymentManager { +func newDeploymentManager(s *service, lease mtypes.LeaseID, mgroup *maniv2beta2.Group, isNewLease bool) *deploymentManager { logger := s.log.With("cmp", "deployment-manager", "lease", lease, "manifest-group", mgroup.Name) dm := &deploymentManager{ @@ -89,7 +89,7 @@ func newDeploymentManager(s *service, lease mtypes.LeaseID, mgroup *manifest.Gro lease: lease, mgroup: mgroup, wg: sync.WaitGroup{}, - updatech: make(chan *manifest.Group), + updatech: make(chan *maniv2beta2.Group), teardownch: make(chan struct{}), log: logger, lc: lifecycle.New(), @@ -116,7 +116,7 @@ func newDeploymentManager(s *service, lease mtypes.LeaseID, mgroup *manifest.Gro return dm } -func (dm *deploymentManager) update(mgroup *manifest.Group) error { +func (dm *deploymentManager) update(mgroup *maniv2beta2.Group) error { select { case dm.updatech <- mgroup: return nil @@ -319,7 +319,7 @@ func (dm *deploymentManager) startTeardown() <-chan error { } type serviceExposeWithServiceName struct { - expose manifest.ServiceExpose + expose maniv2beta2.ServiceExpose name string } @@ -354,7 +354,7 @@ func (dm *deploymentManager) doDeploy(ctx context.Context) ([]string, []string, } // Either reserve the hostnames, or confirm that they already are held - allHostnames := sdlutil.AllHostnamesOfManifestGroup(*dm.mgroup) + allHostnames := manifest.AllHostnamesOfManifestGroup(*dm.mgroup) withheldHostnames, err := dm.hostnameService.ReserveHostnames(ctx, allHostnames, dm.lease) if err != nil { @@ -394,7 +394,7 @@ func (dm *deploymentManager) doDeploy(ctx context.Context) ([]string, []string, for _, hostname := range withheldHostnames { blockedHostnames[hostname] = struct{}{} } - hosts := make(map[string]manifest.ServiceExpose) + hosts := make(map[string]maniv2beta2.ServiceExpose) leasedIPs := make([]serviceExposeWithServiceName, 0) hostToServiceName := make(map[string]string) @@ -406,7 +406,7 @@ func (dm *deploymentManager) doDeploy(ctx context.Context) ([]string, []string, for _, expose := range service.Expose { if sdlutil.ShouldBeIngress(expose) { if dm.config.DeploymentIngressStaticHosts { - uid := sdlutil.IngressHost(dm.lease, service.Name) + uid := manifest.IngressHost(dm.lease, service.Name) host := fmt.Sprintf("%s.%s", uid, dm.config.DeploymentIngressDomain) hosts[host] = expose hostToServiceName[host] = service.Name @@ -435,7 +435,7 @@ func (dm *deploymentManager) doDeploy(ctx context.Context) ([]string, []string, // Check if the IP exists in the compute cluster but not in the presently used set of IPs _, stillInUse := ipsInThisRequest[currentIP.SharingKey] if !stillInUse { - proto, err := manifest.ParseServiceProtocol(currentIP.Protocol) + proto, err := maniv2beta2.ParseServiceProtocol(currentIP.Protocol) if err != nil { return withheldHostnames, nil, err } diff --git a/cluster/manager_cleanup.go b/cluster/manager_cleanup.go index c8884b815..e04dd316d 100644 --- a/cluster/manager_cleanup.go +++ b/cluster/manager_cleanup.go @@ -2,15 +2,16 @@ package cluster import ( "context" - "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + + "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" logger "github.com/tendermint/tendermint/libs/log" ) type purgeIPEntry struct { serviceName string port uint32 - proto v2beta1.ServiceProtocol + proto v2beta2.ServiceProtocol } type deployCleanupHelper struct { @@ -34,7 +35,7 @@ func (dch *deployCleanupHelper) addHostname(hostname string) { dch.hostnamesToPurge = append(dch.hostnamesToPurge, hostname) } -func (dch *deployCleanupHelper) addIP(serviceName string, port uint32, proto v2beta1.ServiceProtocol) { +func (dch *deployCleanupHelper) addIP(serviceName string, port uint32, proto v2beta2.ServiceProtocol) { dch.ipsToPurge = append( dch.ipsToPurge, purgeIPEntry{ diff --git a/cluster/mocks/client.go b/cluster/mocks/client.go index 5675fbb39..9412f4567 100644 --- a/cluster/mocks/client.go +++ b/cluster/mocks/client.go @@ -3,7 +3,7 @@ package mocks import ( - akash_networkv2beta1 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + akash_networkv2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" context "context" @@ -15,11 +15,11 @@ import ( testing "testing" - typesv1beta2 "github.com/akash-network/node/x/market/types/v1beta2" + v1beta2 "github.com/akash-network/provider/cluster/types/v1beta3" - v1beta2 "github.com/akash-network/provider/cluster/types/v1beta2" + v1beta3 "github.com/akash-network/akash-api/go/node/market/v1beta3" - v2beta1 "github.com/akash-network/node/manifest/v2beta1" + v2beta2 "github.com/akash-network/akash-api/go/manifest/v2beta2" version "k8s.io/apimachinery/pkg/version" ) @@ -67,11 +67,11 @@ func (_m *Client) ConnectHostnameToDeployment(ctx context.Context, directive v1b } // DeclareHostname provides a mock function with given fields: ctx, lID, host, serviceName, externalPort -func (_m *Client) DeclareHostname(ctx context.Context, lID typesv1beta2.LeaseID, host string, serviceName string, externalPort uint32) error { +func (_m *Client) DeclareHostname(ctx context.Context, lID v1beta3.LeaseID, host string, serviceName string, externalPort uint32) error { ret := _m.Called(ctx, lID, host, serviceName, externalPort) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, string, string, uint32) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string, string, uint32) error); ok { r0 = rf(ctx, lID, host, serviceName, externalPort) } else { r0 = ret.Error(0) @@ -81,11 +81,11 @@ func (_m *Client) DeclareHostname(ctx context.Context, lID typesv1beta2.LeaseID, } // DeclareIP provides a mock function with given fields: ctx, lID, serviceName, port, externalPort, proto, sharingKey, overwrite -func (_m *Client) DeclareIP(ctx context.Context, lID typesv1beta2.LeaseID, serviceName string, port uint32, externalPort uint32, proto v2beta1.ServiceProtocol, sharingKey string, overwrite bool) error { +func (_m *Client) DeclareIP(ctx context.Context, lID v1beta3.LeaseID, serviceName string, port uint32, externalPort uint32, proto v2beta2.ServiceProtocol, sharingKey string, overwrite bool) error { ret := _m.Called(ctx, lID, serviceName, port, externalPort, proto, sharingKey, overwrite) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, string, uint32, uint32, v2beta1.ServiceProtocol, string, bool) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string, uint32, uint32, v2beta2.ServiceProtocol, string, bool) error); ok { r0 = rf(ctx, lID, serviceName, port, externalPort, proto, sharingKey, overwrite) } else { r0 = ret.Error(0) @@ -95,11 +95,11 @@ func (_m *Client) DeclareIP(ctx context.Context, lID typesv1beta2.LeaseID, servi } // Deploy provides a mock function with given fields: ctx, lID, mgroup -func (_m *Client) Deploy(ctx context.Context, lID typesv1beta2.LeaseID, mgroup *v2beta1.Group) error { +func (_m *Client) Deploy(ctx context.Context, lID v1beta3.LeaseID, mgroup *v2beta2.Group) error { ret := _m.Called(ctx, lID, mgroup) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, *v2beta1.Group) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, *v2beta2.Group) error); ok { r0 = rf(ctx, lID, mgroup) } else { r0 = ret.Error(0) @@ -132,11 +132,11 @@ func (_m *Client) Deployments(_a0 context.Context) ([]v1beta2.Deployment, error) } // Exec provides a mock function with given fields: ctx, lID, service, podIndex, cmd, stdin, stdout, stderr, tty, tsq -func (_m *Client) Exec(ctx context.Context, lID typesv1beta2.LeaseID, service string, podIndex uint, cmd []string, stdin io.Reader, stdout io.Writer, stderr io.Writer, tty bool, tsq remotecommand.TerminalSizeQueue) (v1beta2.ExecResult, error) { +func (_m *Client) Exec(ctx context.Context, lID v1beta3.LeaseID, service string, podIndex uint, cmd []string, stdin io.Reader, stdout io.Writer, stderr io.Writer, tty bool, tsq remotecommand.TerminalSizeQueue) (v1beta2.ExecResult, error) { ret := _m.Called(ctx, lID, service, podIndex, cmd, stdin, stdout, stderr, tty, tsq) var r0 v1beta2.ExecResult - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, string, uint, []string, io.Reader, io.Writer, io.Writer, bool, remotecommand.TerminalSizeQueue) v1beta2.ExecResult); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string, uint, []string, io.Reader, io.Writer, io.Writer, bool, remotecommand.TerminalSizeQueue) v1beta2.ExecResult); ok { r0 = rf(ctx, lID, service, podIndex, cmd, stdin, stdout, stderr, tty, tsq) } else { if ret.Get(0) != nil { @@ -145,7 +145,7 @@ func (_m *Client) Exec(ctx context.Context, lID typesv1beta2.LeaseID, service st } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID, string, uint, []string, io.Reader, io.Writer, io.Writer, bool, remotecommand.TerminalSizeQueue) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID, string, uint, []string, io.Reader, io.Writer, io.Writer, bool, remotecommand.TerminalSizeQueue) error); ok { r1 = rf(ctx, lID, service, podIndex, cmd, stdin, stdout, stderr, tty, tsq) } else { r1 = ret.Error(1) @@ -155,11 +155,11 @@ func (_m *Client) Exec(ctx context.Context, lID typesv1beta2.LeaseID, service st } // ForwardedPortStatus provides a mock function with given fields: _a0, _a1 -func (_m *Client) ForwardedPortStatus(_a0 context.Context, _a1 typesv1beta2.LeaseID) (map[string][]v1beta2.ForwardedPortStatus, error) { +func (_m *Client) ForwardedPortStatus(_a0 context.Context, _a1 v1beta3.LeaseID) (map[string][]v1beta2.ForwardedPortStatus, error) { ret := _m.Called(_a0, _a1) var r0 map[string][]v1beta2.ForwardedPortStatus - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) map[string][]v1beta2.ForwardedPortStatus); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) map[string][]v1beta2.ForwardedPortStatus); ok { r0 = rf(_a0, _a1) } else { if ret.Get(0) != nil { @@ -168,7 +168,7 @@ func (_m *Client) ForwardedPortStatus(_a0 context.Context, _a1 typesv1beta2.Leas } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID) error); ok { r1 = rf(_a0, _a1) } else { r1 = ret.Error(1) @@ -178,20 +178,20 @@ func (_m *Client) ForwardedPortStatus(_a0 context.Context, _a1 typesv1beta2.Leas } // GetDeclaredIPs provides a mock function with given fields: ctx, leaseID -func (_m *Client) GetDeclaredIPs(ctx context.Context, leaseID typesv1beta2.LeaseID) ([]akash_networkv2beta1.ProviderLeasedIPSpec, error) { +func (_m *Client) GetDeclaredIPs(ctx context.Context, leaseID v1beta3.LeaseID) ([]akash_networkv2beta2.ProviderLeasedIPSpec, error) { ret := _m.Called(ctx, leaseID) - var r0 []akash_networkv2beta1.ProviderLeasedIPSpec - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) []akash_networkv2beta1.ProviderLeasedIPSpec); ok { + var r0 []akash_networkv2beta2.ProviderLeasedIPSpec + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) []akash_networkv2beta2.ProviderLeasedIPSpec); ok { r0 = rf(ctx, leaseID) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]akash_networkv2beta1.ProviderLeasedIPSpec) + r0 = ret.Get(0).([]akash_networkv2beta2.ProviderLeasedIPSpec) } } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID) error); ok { r1 = rf(ctx, leaseID) } else { r1 = ret.Error(1) @@ -224,25 +224,25 @@ func (_m *Client) GetHostnameDeploymentConnections(ctx context.Context) ([]v1bet } // GetManifestGroup provides a mock function with given fields: _a0, _a1 -func (_m *Client) GetManifestGroup(_a0 context.Context, _a1 typesv1beta2.LeaseID) (bool, akash_networkv2beta1.ManifestGroup, error) { +func (_m *Client) GetManifestGroup(_a0 context.Context, _a1 v1beta3.LeaseID) (bool, akash_networkv2beta2.ManifestGroup, error) { ret := _m.Called(_a0, _a1) var r0 bool - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) bool); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) bool); ok { r0 = rf(_a0, _a1) } else { r0 = ret.Get(0).(bool) } - var r1 akash_networkv2beta1.ManifestGroup - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID) akash_networkv2beta1.ManifestGroup); ok { + var r1 akash_networkv2beta2.ManifestGroup + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID) akash_networkv2beta2.ManifestGroup); ok { r1 = rf(_a0, _a1) } else { - r1 = ret.Get(1).(akash_networkv2beta1.ManifestGroup) + r1 = ret.Get(1).(akash_networkv2beta2.ManifestGroup) } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(2).(func(context.Context, v1beta3.LeaseID) error); ok { r2 = rf(_a0, _a1) } else { r2 = ret.Error(2) @@ -298,11 +298,11 @@ func (_m *Client) KubeVersion() (*version.Info, error) { } // LeaseEvents provides a mock function with given fields: _a0, _a1, _a2, _a3 -func (_m *Client) LeaseEvents(_a0 context.Context, _a1 typesv1beta2.LeaseID, _a2 string, _a3 bool) (v1beta2.EventsWatcher, error) { +func (_m *Client) LeaseEvents(_a0 context.Context, _a1 v1beta3.LeaseID, _a2 string, _a3 bool) (v1beta2.EventsWatcher, error) { ret := _m.Called(_a0, _a1, _a2, _a3) var r0 v1beta2.EventsWatcher - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, string, bool) v1beta2.EventsWatcher); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string, bool) v1beta2.EventsWatcher); ok { r0 = rf(_a0, _a1, _a2, _a3) } else { if ret.Get(0) != nil { @@ -311,7 +311,7 @@ func (_m *Client) LeaseEvents(_a0 context.Context, _a1 typesv1beta2.LeaseID, _a2 } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID, string, bool) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID, string, bool) error); ok { r1 = rf(_a0, _a1, _a2, _a3) } else { r1 = ret.Error(1) @@ -321,11 +321,11 @@ func (_m *Client) LeaseEvents(_a0 context.Context, _a1 typesv1beta2.LeaseID, _a2 } // LeaseLogs provides a mock function with given fields: _a0, _a1, _a2, _a3, _a4 -func (_m *Client) LeaseLogs(_a0 context.Context, _a1 typesv1beta2.LeaseID, _a2 string, _a3 bool, _a4 *int64) ([]*v1beta2.ServiceLog, error) { +func (_m *Client) LeaseLogs(_a0 context.Context, _a1 v1beta3.LeaseID, _a2 string, _a3 bool, _a4 *int64) ([]*v1beta2.ServiceLog, error) { ret := _m.Called(_a0, _a1, _a2, _a3, _a4) var r0 []*v1beta2.ServiceLog - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, string, bool, *int64) []*v1beta2.ServiceLog); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string, bool, *int64) []*v1beta2.ServiceLog); ok { r0 = rf(_a0, _a1, _a2, _a3, _a4) } else { if ret.Get(0) != nil { @@ -334,7 +334,7 @@ func (_m *Client) LeaseLogs(_a0 context.Context, _a1 typesv1beta2.LeaseID, _a2 s } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID, string, bool, *int64) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID, string, bool, *int64) error); ok { r1 = rf(_a0, _a1, _a2, _a3, _a4) } else { r1 = ret.Error(1) @@ -344,11 +344,11 @@ func (_m *Client) LeaseLogs(_a0 context.Context, _a1 typesv1beta2.LeaseID, _a2 s } // LeaseStatus provides a mock function with given fields: _a0, _a1 -func (_m *Client) LeaseStatus(_a0 context.Context, _a1 typesv1beta2.LeaseID) (map[string]*v1beta2.ServiceStatus, error) { +func (_m *Client) LeaseStatus(_a0 context.Context, _a1 v1beta3.LeaseID) (map[string]*v1beta2.ServiceStatus, error) { ret := _m.Called(_a0, _a1) var r0 map[string]*v1beta2.ServiceStatus - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) map[string]*v1beta2.ServiceStatus); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) map[string]*v1beta2.ServiceStatus); ok { r0 = rf(_a0, _a1) } else { if ret.Get(0) != nil { @@ -357,7 +357,7 @@ func (_m *Client) LeaseStatus(_a0 context.Context, _a1 typesv1beta2.LeaseID) (ma } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID) error); ok { r1 = rf(_a0, _a1) } else { r1 = ret.Error(1) @@ -413,11 +413,11 @@ func (_m *Client) ObserveIPState(ctx context.Context) (<-chan v1beta2.IPResource } // PurgeDeclaredHostname provides a mock function with given fields: ctx, lID, hostname -func (_m *Client) PurgeDeclaredHostname(ctx context.Context, lID typesv1beta2.LeaseID, hostname string) error { +func (_m *Client) PurgeDeclaredHostname(ctx context.Context, lID v1beta3.LeaseID, hostname string) error { ret := _m.Called(ctx, lID, hostname) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, string) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string) error); ok { r0 = rf(ctx, lID, hostname) } else { r0 = ret.Error(0) @@ -427,11 +427,11 @@ func (_m *Client) PurgeDeclaredHostname(ctx context.Context, lID typesv1beta2.Le } // PurgeDeclaredHostnames provides a mock function with given fields: ctx, lID -func (_m *Client) PurgeDeclaredHostnames(ctx context.Context, lID typesv1beta2.LeaseID) error { +func (_m *Client) PurgeDeclaredHostnames(ctx context.Context, lID v1beta3.LeaseID) error { ret := _m.Called(ctx, lID) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) error); ok { r0 = rf(ctx, lID) } else { r0 = ret.Error(0) @@ -441,11 +441,11 @@ func (_m *Client) PurgeDeclaredHostnames(ctx context.Context, lID typesv1beta2.L } // PurgeDeclaredIP provides a mock function with given fields: ctx, lID, serviceName, externalPort, proto -func (_m *Client) PurgeDeclaredIP(ctx context.Context, lID typesv1beta2.LeaseID, serviceName string, externalPort uint32, proto v2beta1.ServiceProtocol) error { +func (_m *Client) PurgeDeclaredIP(ctx context.Context, lID v1beta3.LeaseID, serviceName string, externalPort uint32, proto v2beta2.ServiceProtocol) error { ret := _m.Called(ctx, lID, serviceName, externalPort, proto) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, string, uint32, v2beta1.ServiceProtocol) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string, uint32, v2beta2.ServiceProtocol) error); ok { r0 = rf(ctx, lID, serviceName, externalPort, proto) } else { r0 = ret.Error(0) @@ -455,11 +455,11 @@ func (_m *Client) PurgeDeclaredIP(ctx context.Context, lID typesv1beta2.LeaseID, } // PurgeDeclaredIPs provides a mock function with given fields: ctx, lID -func (_m *Client) PurgeDeclaredIPs(ctx context.Context, lID typesv1beta2.LeaseID) error { +func (_m *Client) PurgeDeclaredIPs(ctx context.Context, lID v1beta3.LeaseID) error { ret := _m.Called(ctx, lID) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) error); ok { r0 = rf(ctx, lID) } else { r0 = ret.Error(0) @@ -469,11 +469,11 @@ func (_m *Client) PurgeDeclaredIPs(ctx context.Context, lID typesv1beta2.LeaseID } // RemoveHostnameFromDeployment provides a mock function with given fields: ctx, hostname, leaseID, allowMissing -func (_m *Client) RemoveHostnameFromDeployment(ctx context.Context, hostname string, leaseID typesv1beta2.LeaseID, allowMissing bool) error { +func (_m *Client) RemoveHostnameFromDeployment(ctx context.Context, hostname string, leaseID v1beta3.LeaseID, allowMissing bool) error { ret := _m.Called(ctx, hostname, leaseID, allowMissing) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, typesv1beta2.LeaseID, bool) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, string, v1beta3.LeaseID, bool) error); ok { r0 = rf(ctx, hostname, leaseID, allowMissing) } else { r0 = ret.Error(0) @@ -483,11 +483,11 @@ func (_m *Client) RemoveHostnameFromDeployment(ctx context.Context, hostname str } // ServiceStatus provides a mock function with given fields: _a0, _a1, _a2 -func (_m *Client) ServiceStatus(_a0 context.Context, _a1 typesv1beta2.LeaseID, _a2 string) (*v1beta2.ServiceStatus, error) { +func (_m *Client) ServiceStatus(_a0 context.Context, _a1 v1beta3.LeaseID, _a2 string) (*v1beta2.ServiceStatus, error) { ret := _m.Called(_a0, _a1, _a2) var r0 *v1beta2.ServiceStatus - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, string) *v1beta2.ServiceStatus); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string) *v1beta2.ServiceStatus); ok { r0 = rf(_a0, _a1, _a2) } else { if ret.Get(0) != nil { @@ -496,7 +496,7 @@ func (_m *Client) ServiceStatus(_a0 context.Context, _a1 typesv1beta2.LeaseID, _ } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID, string) error); ok { r1 = rf(_a0, _a1, _a2) } else { r1 = ret.Error(1) @@ -506,11 +506,11 @@ func (_m *Client) ServiceStatus(_a0 context.Context, _a1 typesv1beta2.LeaseID, _ } // TeardownLease provides a mock function with given fields: _a0, _a1 -func (_m *Client) TeardownLease(_a0 context.Context, _a1 typesv1beta2.LeaseID) error { +func (_m *Client) TeardownLease(_a0 context.Context, _a1 v1beta3.LeaseID) error { ret := _m.Called(_a0, _a1) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) error); ok { r0 = rf(_a0, _a1) } else { r0 = ret.Error(0) diff --git a/cluster/mocks/cluster.go b/cluster/mocks/cluster.go index 39be5c3d2..9a9a740ec 100644 --- a/cluster/mocks/cluster.go +++ b/cluster/mocks/cluster.go @@ -3,14 +3,15 @@ package mocks import ( - clustertypesv1beta2 "github.com/akash-network/provider/cluster/types/v1beta2" + testing "testing" + mock "github.com/stretchr/testify/mock" - testing "testing" + typesv1beta3 "github.com/akash-network/akash-api/go/node/types/v1beta3" - typesv1beta2 "github.com/akash-network/node/types/v1beta2" + v1beta2 "github.com/akash-network/provider/cluster/types/v1beta3" - v1beta2 "github.com/akash-network/node/x/market/types/v1beta2" + v1beta3 "github.com/akash-network/akash-api/go/node/market/v1beta3" ) // Cluster is an autogenerated mock type for the Cluster type @@ -19,20 +20,20 @@ type Cluster struct { } // Reserve provides a mock function with given fields: _a0, _a1 -func (_m *Cluster) Reserve(_a0 v1beta2.OrderID, _a1 typesv1beta2.ResourceGroup) (clustertypesv1beta2.Reservation, error) { +func (_m *Cluster) Reserve(_a0 v1beta3.OrderID, _a1 typesv1beta3.ResourceGroup) (v1beta2.Reservation, error) { ret := _m.Called(_a0, _a1) - var r0 clustertypesv1beta2.Reservation - if rf, ok := ret.Get(0).(func(v1beta2.OrderID, typesv1beta2.ResourceGroup) clustertypesv1beta2.Reservation); ok { + var r0 v1beta2.Reservation + if rf, ok := ret.Get(0).(func(v1beta3.OrderID, typesv1beta3.ResourceGroup) v1beta2.Reservation); ok { r0 = rf(_a0, _a1) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(clustertypesv1beta2.Reservation) + r0 = ret.Get(0).(v1beta2.Reservation) } } var r1 error - if rf, ok := ret.Get(1).(func(v1beta2.OrderID, typesv1beta2.ResourceGroup) error); ok { + if rf, ok := ret.Get(1).(func(v1beta3.OrderID, typesv1beta3.ResourceGroup) error); ok { r1 = rf(_a0, _a1) } else { r1 = ret.Error(1) @@ -42,11 +43,11 @@ func (_m *Cluster) Reserve(_a0 v1beta2.OrderID, _a1 typesv1beta2.ResourceGroup) } // Unreserve provides a mock function with given fields: _a0 -func (_m *Cluster) Unreserve(_a0 v1beta2.OrderID) error { +func (_m *Cluster) Unreserve(_a0 v1beta3.OrderID) error { ret := _m.Called(_a0) var r0 error - if rf, ok := ret.Get(0).(func(v1beta2.OrderID) error); ok { + if rf, ok := ret.Get(0).(func(v1beta3.OrderID) error); ok { r0 = rf(_a0) } else { r0 = ret.Error(0) diff --git a/cluster/mocks/deployment.go b/cluster/mocks/deployment.go index ec5523203..a243bed19 100644 --- a/cluster/mocks/deployment.go +++ b/cluster/mocks/deployment.go @@ -7,9 +7,9 @@ import ( mock "github.com/stretchr/testify/mock" - v1beta2 "github.com/akash-network/node/x/market/types/v1beta2" + v1beta3 "github.com/akash-network/akash-api/go/node/market/v1beta3" - v2beta1 "github.com/akash-network/node/manifest/v2beta1" + v2beta2 "github.com/akash-network/akash-api/go/manifest/v2beta2" ) // Deployment is an autogenerated mock type for the Deployment type @@ -18,28 +18,28 @@ type Deployment struct { } // LeaseID provides a mock function with given fields: -func (_m *Deployment) LeaseID() v1beta2.LeaseID { +func (_m *Deployment) LeaseID() v1beta3.LeaseID { ret := _m.Called() - var r0 v1beta2.LeaseID - if rf, ok := ret.Get(0).(func() v1beta2.LeaseID); ok { + var r0 v1beta3.LeaseID + if rf, ok := ret.Get(0).(func() v1beta3.LeaseID); ok { r0 = rf() } else { - r0 = ret.Get(0).(v1beta2.LeaseID) + r0 = ret.Get(0).(v1beta3.LeaseID) } return r0 } // ManifestGroup provides a mock function with given fields: -func (_m *Deployment) ManifestGroup() v2beta1.Group { +func (_m *Deployment) ManifestGroup() v2beta2.Group { ret := _m.Called() - var r0 v2beta1.Group - if rf, ok := ret.Get(0).(func() v2beta1.Group); ok { + var r0 v2beta2.Group + if rf, ok := ret.Get(0).(func() v2beta2.Group); ok { r0 = rf() } else { - r0 = ret.Get(0).(v2beta1.Group) + r0 = ret.Get(0).(v2beta2.Group) } return r0 diff --git a/cluster/mocks/hostname_service_client.go b/cluster/mocks/hostname_service_client.go index f7b8d0538..a89e30510 100644 --- a/cluster/mocks/hostname_service_client.go +++ b/cluster/mocks/hostname_service_client.go @@ -10,7 +10,7 @@ import ( types "github.com/cosmos/cosmos-sdk/types" - typesv1beta2 "github.com/akash-network/node/x/market/types/v1beta2" + v1beta3 "github.com/akash-network/akash-api/go/node/market/v1beta3" ) // HostnameServiceClient is an autogenerated mock type for the HostnameServiceClient type @@ -33,11 +33,11 @@ func (_m *HostnameServiceClient) CanReserveHostnames(hostnames []string, ownerAd } // PrepareHostnamesForTransfer provides a mock function with given fields: ctx, hostnames, leaseID -func (_m *HostnameServiceClient) PrepareHostnamesForTransfer(ctx context.Context, hostnames []string, leaseID typesv1beta2.LeaseID) error { +func (_m *HostnameServiceClient) PrepareHostnamesForTransfer(ctx context.Context, hostnames []string, leaseID v1beta3.LeaseID) error { ret := _m.Called(ctx, hostnames, leaseID) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, []string, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, []string, v1beta3.LeaseID) error); ok { r0 = rf(ctx, hostnames, leaseID) } else { r0 = ret.Error(0) @@ -47,11 +47,11 @@ func (_m *HostnameServiceClient) PrepareHostnamesForTransfer(ctx context.Context } // ReleaseHostnames provides a mock function with given fields: leaseID -func (_m *HostnameServiceClient) ReleaseHostnames(leaseID typesv1beta2.LeaseID) error { +func (_m *HostnameServiceClient) ReleaseHostnames(leaseID v1beta3.LeaseID) error { ret := _m.Called(leaseID) var r0 error - if rf, ok := ret.Get(0).(func(typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(0).(func(v1beta3.LeaseID) error); ok { r0 = rf(leaseID) } else { r0 = ret.Error(0) @@ -61,11 +61,11 @@ func (_m *HostnameServiceClient) ReleaseHostnames(leaseID typesv1beta2.LeaseID) } // ReserveHostnames provides a mock function with given fields: ctx, hostnames, leaseID -func (_m *HostnameServiceClient) ReserveHostnames(ctx context.Context, hostnames []string, leaseID typesv1beta2.LeaseID) ([]string, error) { +func (_m *HostnameServiceClient) ReserveHostnames(ctx context.Context, hostnames []string, leaseID v1beta3.LeaseID) ([]string, error) { ret := _m.Called(ctx, hostnames, leaseID) var r0 []string - if rf, ok := ret.Get(0).(func(context.Context, []string, typesv1beta2.LeaseID) []string); ok { + if rf, ok := ret.Get(0).(func(context.Context, []string, v1beta3.LeaseID) []string); ok { r0 = rf(ctx, hostnames, leaseID) } else { if ret.Get(0) != nil { @@ -74,7 +74,7 @@ func (_m *HostnameServiceClient) ReserveHostnames(ctx context.Context, hostnames } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, []string, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, []string, v1beta3.LeaseID) error); ok { r1 = rf(ctx, hostnames, leaseID) } else { r1 = ret.Error(1) diff --git a/cluster/mocks/ip_operator_client.go b/cluster/mocks/ip_operator_client.go index f5dab6b0d..2369d461e 100644 --- a/cluster/mocks/ip_operator_client.go +++ b/cluster/mocks/ip_operator_client.go @@ -11,7 +11,7 @@ import ( types "github.com/akash-network/provider/operator/ipoperator/types" - v1beta2 "github.com/akash-network/node/x/market/types/v1beta2" + v1beta3 "github.com/akash-network/akash-api/go/node/market/v1beta3" ) // IPOperatorClient is an autogenerated mock type for the IPOperatorClient type @@ -34,11 +34,11 @@ func (_m *IPOperatorClient) Check(ctx context.Context) error { } // GetIPAddressStatus provides a mock function with given fields: ctx, orderID -func (_m *IPOperatorClient) GetIPAddressStatus(ctx context.Context, orderID v1beta2.OrderID) ([]types.LeaseIPStatus, error) { +func (_m *IPOperatorClient) GetIPAddressStatus(ctx context.Context, orderID v1beta3.OrderID) ([]types.LeaseIPStatus, error) { ret := _m.Called(ctx, orderID) var r0 []types.LeaseIPStatus - if rf, ok := ret.Get(0).(func(context.Context, v1beta2.OrderID) []types.LeaseIPStatus); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.OrderID) []types.LeaseIPStatus); ok { r0 = rf(ctx, orderID) } else { if ret.Get(0) != nil { @@ -47,7 +47,7 @@ func (_m *IPOperatorClient) GetIPAddressStatus(ctx context.Context, orderID v1be } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, v1beta2.OrderID) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.OrderID) error); ok { r1 = rf(ctx, orderID) } else { r1 = ret.Error(1) diff --git a/cluster/mocks/metallb_client.go b/cluster/mocks/metallb_client.go index d8433c6cf..f24683f28 100644 --- a/cluster/mocks/metallb_client.go +++ b/cluster/mocks/metallb_client.go @@ -9,9 +9,9 @@ import ( testing "testing" - typesv1beta2 "github.com/akash-network/node/x/market/types/v1beta2" + v1beta2 "github.com/akash-network/provider/cluster/types/v1beta3" - v1beta2 "github.com/akash-network/provider/cluster/types/v1beta2" + v1beta3 "github.com/akash-network/akash-api/go/node/market/v1beta3" ) // MetalLBClient is an autogenerated mock type for the Client type @@ -57,11 +57,11 @@ func (_m *MetalLBClient) DetectPoolChanges(ctx context.Context) (<-chan struct{} } // GetIPAddressStatusForLease provides a mock function with given fields: ctx, leaseID -func (_m *MetalLBClient) GetIPAddressStatusForLease(ctx context.Context, leaseID typesv1beta2.LeaseID) ([]v1beta2.IPLeaseState, error) { +func (_m *MetalLBClient) GetIPAddressStatusForLease(ctx context.Context, leaseID v1beta3.LeaseID) ([]v1beta2.IPLeaseState, error) { ret := _m.Called(ctx, leaseID) var r0 []v1beta2.IPLeaseState - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) []v1beta2.IPLeaseState); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) []v1beta2.IPLeaseState); ok { r0 = rf(ctx, leaseID) } else { if ret.Get(0) != nil { @@ -70,7 +70,7 @@ func (_m *MetalLBClient) GetIPAddressStatusForLease(ctx context.Context, leaseID } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID) error); ok { r1 = rf(ctx, leaseID) } else { r1 = ret.Error(1) diff --git a/cluster/mocks/read_client.go b/cluster/mocks/read_client.go index ed503a88d..21cc43233 100644 --- a/cluster/mocks/read_client.go +++ b/cluster/mocks/read_client.go @@ -8,11 +8,11 @@ import ( mock "github.com/stretchr/testify/mock" - typesv1beta2 "github.com/akash-network/node/x/market/types/v1beta2" + v1beta2 "github.com/akash-network/provider/cluster/types/v1beta3" - v1beta2 "github.com/akash-network/provider/cluster/types/v1beta2" + v1beta3 "github.com/akash-network/akash-api/go/node/market/v1beta3" - v2beta1 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) // ReadClient is an autogenerated mock type for the ReadClient type @@ -44,11 +44,11 @@ func (_m *ReadClient) AllHostnames(_a0 context.Context) ([]v1beta2.ActiveHostnam } // ForwardedPortStatus provides a mock function with given fields: _a0, _a1 -func (_m *ReadClient) ForwardedPortStatus(_a0 context.Context, _a1 typesv1beta2.LeaseID) (map[string][]v1beta2.ForwardedPortStatus, error) { +func (_m *ReadClient) ForwardedPortStatus(_a0 context.Context, _a1 v1beta3.LeaseID) (map[string][]v1beta2.ForwardedPortStatus, error) { ret := _m.Called(_a0, _a1) var r0 map[string][]v1beta2.ForwardedPortStatus - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) map[string][]v1beta2.ForwardedPortStatus); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) map[string][]v1beta2.ForwardedPortStatus); ok { r0 = rf(_a0, _a1) } else { if ret.Get(0) != nil { @@ -57,7 +57,7 @@ func (_m *ReadClient) ForwardedPortStatus(_a0 context.Context, _a1 typesv1beta2. } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID) error); ok { r1 = rf(_a0, _a1) } else { r1 = ret.Error(1) @@ -67,20 +67,20 @@ func (_m *ReadClient) ForwardedPortStatus(_a0 context.Context, _a1 typesv1beta2. } // GetDeclaredIPs provides a mock function with given fields: ctx, leaseID -func (_m *ReadClient) GetDeclaredIPs(ctx context.Context, leaseID typesv1beta2.LeaseID) ([]v2beta1.ProviderLeasedIPSpec, error) { +func (_m *ReadClient) GetDeclaredIPs(ctx context.Context, leaseID v1beta3.LeaseID) ([]v2beta2.ProviderLeasedIPSpec, error) { ret := _m.Called(ctx, leaseID) - var r0 []v2beta1.ProviderLeasedIPSpec - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) []v2beta1.ProviderLeasedIPSpec); ok { + var r0 []v2beta2.ProviderLeasedIPSpec + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) []v2beta2.ProviderLeasedIPSpec); ok { r0 = rf(ctx, leaseID) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]v2beta1.ProviderLeasedIPSpec) + r0 = ret.Get(0).([]v2beta2.ProviderLeasedIPSpec) } } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID) error); ok { r1 = rf(ctx, leaseID) } else { r1 = ret.Error(1) @@ -113,25 +113,25 @@ func (_m *ReadClient) GetHostnameDeploymentConnections(ctx context.Context) ([]v } // GetManifestGroup provides a mock function with given fields: _a0, _a1 -func (_m *ReadClient) GetManifestGroup(_a0 context.Context, _a1 typesv1beta2.LeaseID) (bool, v2beta1.ManifestGroup, error) { +func (_m *ReadClient) GetManifestGroup(_a0 context.Context, _a1 v1beta3.LeaseID) (bool, v2beta2.ManifestGroup, error) { ret := _m.Called(_a0, _a1) var r0 bool - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) bool); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) bool); ok { r0 = rf(_a0, _a1) } else { r0 = ret.Get(0).(bool) } - var r1 v2beta1.ManifestGroup - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID) v2beta1.ManifestGroup); ok { + var r1 v2beta2.ManifestGroup + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID) v2beta2.ManifestGroup); ok { r1 = rf(_a0, _a1) } else { - r1 = ret.Get(1).(v2beta1.ManifestGroup) + r1 = ret.Get(1).(v2beta2.ManifestGroup) } var r2 error - if rf, ok := ret.Get(2).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(2).(func(context.Context, v1beta3.LeaseID) error); ok { r2 = rf(_a0, _a1) } else { r2 = ret.Error(2) @@ -141,11 +141,11 @@ func (_m *ReadClient) GetManifestGroup(_a0 context.Context, _a1 typesv1beta2.Lea } // LeaseEvents provides a mock function with given fields: _a0, _a1, _a2, _a3 -func (_m *ReadClient) LeaseEvents(_a0 context.Context, _a1 typesv1beta2.LeaseID, _a2 string, _a3 bool) (v1beta2.EventsWatcher, error) { +func (_m *ReadClient) LeaseEvents(_a0 context.Context, _a1 v1beta3.LeaseID, _a2 string, _a3 bool) (v1beta2.EventsWatcher, error) { ret := _m.Called(_a0, _a1, _a2, _a3) var r0 v1beta2.EventsWatcher - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, string, bool) v1beta2.EventsWatcher); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string, bool) v1beta2.EventsWatcher); ok { r0 = rf(_a0, _a1, _a2, _a3) } else { if ret.Get(0) != nil { @@ -154,7 +154,7 @@ func (_m *ReadClient) LeaseEvents(_a0 context.Context, _a1 typesv1beta2.LeaseID, } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID, string, bool) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID, string, bool) error); ok { r1 = rf(_a0, _a1, _a2, _a3) } else { r1 = ret.Error(1) @@ -164,11 +164,11 @@ func (_m *ReadClient) LeaseEvents(_a0 context.Context, _a1 typesv1beta2.LeaseID, } // LeaseLogs provides a mock function with given fields: _a0, _a1, _a2, _a3, _a4 -func (_m *ReadClient) LeaseLogs(_a0 context.Context, _a1 typesv1beta2.LeaseID, _a2 string, _a3 bool, _a4 *int64) ([]*v1beta2.ServiceLog, error) { +func (_m *ReadClient) LeaseLogs(_a0 context.Context, _a1 v1beta3.LeaseID, _a2 string, _a3 bool, _a4 *int64) ([]*v1beta2.ServiceLog, error) { ret := _m.Called(_a0, _a1, _a2, _a3, _a4) var r0 []*v1beta2.ServiceLog - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, string, bool, *int64) []*v1beta2.ServiceLog); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string, bool, *int64) []*v1beta2.ServiceLog); ok { r0 = rf(_a0, _a1, _a2, _a3, _a4) } else { if ret.Get(0) != nil { @@ -177,7 +177,7 @@ func (_m *ReadClient) LeaseLogs(_a0 context.Context, _a1 typesv1beta2.LeaseID, _ } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID, string, bool, *int64) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID, string, bool, *int64) error); ok { r1 = rf(_a0, _a1, _a2, _a3, _a4) } else { r1 = ret.Error(1) @@ -187,11 +187,11 @@ func (_m *ReadClient) LeaseLogs(_a0 context.Context, _a1 typesv1beta2.LeaseID, _ } // LeaseStatus provides a mock function with given fields: _a0, _a1 -func (_m *ReadClient) LeaseStatus(_a0 context.Context, _a1 typesv1beta2.LeaseID) (map[string]*v1beta2.ServiceStatus, error) { +func (_m *ReadClient) LeaseStatus(_a0 context.Context, _a1 v1beta3.LeaseID) (map[string]*v1beta2.ServiceStatus, error) { ret := _m.Called(_a0, _a1) var r0 map[string]*v1beta2.ServiceStatus - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID) map[string]*v1beta2.ServiceStatus); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID) map[string]*v1beta2.ServiceStatus); ok { r0 = rf(_a0, _a1) } else { if ret.Get(0) != nil { @@ -200,7 +200,7 @@ func (_m *ReadClient) LeaseStatus(_a0 context.Context, _a1 typesv1beta2.LeaseID) } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID) error); ok { r1 = rf(_a0, _a1) } else { r1 = ret.Error(1) @@ -256,11 +256,11 @@ func (_m *ReadClient) ObserveIPState(ctx context.Context) (<-chan v1beta2.IPReso } // ServiceStatus provides a mock function with given fields: _a0, _a1, _a2 -func (_m *ReadClient) ServiceStatus(_a0 context.Context, _a1 typesv1beta2.LeaseID, _a2 string) (*v1beta2.ServiceStatus, error) { +func (_m *ReadClient) ServiceStatus(_a0 context.Context, _a1 v1beta3.LeaseID, _a2 string) (*v1beta2.ServiceStatus, error) { ret := _m.Called(_a0, _a1, _a2) var r0 *v1beta2.ServiceStatus - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.LeaseID, string) *v1beta2.ServiceStatus); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string) *v1beta2.ServiceStatus); ok { r0 = rf(_a0, _a1, _a2) } else { if ret.Get(0) != nil { @@ -269,7 +269,7 @@ func (_m *ReadClient) ServiceStatus(_a0 context.Context, _a1 typesv1beta2.LeaseI } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.LeaseID, string) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.LeaseID, string) error); ok { r1 = rf(_a0, _a1, _a2) } else { r1 = ret.Error(1) diff --git a/cluster/mocks/reservation.go b/cluster/mocks/reservation.go index 8eb627cc6..532db4d15 100644 --- a/cluster/mocks/reservation.go +++ b/cluster/mocks/reservation.go @@ -3,12 +3,13 @@ package mocks import ( - nodetypesv1beta2 "github.com/akash-network/node/types/v1beta2" + testing "testing" + mock "github.com/stretchr/testify/mock" - testing "testing" + typesv1beta3 "github.com/akash-network/akash-api/go/node/types/v1beta3" - typesv1beta2 "github.com/akash-network/node/x/market/types/v1beta2" + v1beta3 "github.com/akash-network/akash-api/go/node/market/v1beta3" ) // Reservation is an autogenerated mock type for the Reservation type @@ -31,29 +32,29 @@ func (_m *Reservation) Allocated() bool { } // OrderID provides a mock function with given fields: -func (_m *Reservation) OrderID() typesv1beta2.OrderID { +func (_m *Reservation) OrderID() v1beta3.OrderID { ret := _m.Called() - var r0 typesv1beta2.OrderID - if rf, ok := ret.Get(0).(func() typesv1beta2.OrderID); ok { + var r0 v1beta3.OrderID + if rf, ok := ret.Get(0).(func() v1beta3.OrderID); ok { r0 = rf() } else { - r0 = ret.Get(0).(typesv1beta2.OrderID) + r0 = ret.Get(0).(v1beta3.OrderID) } return r0 } // Resources provides a mock function with given fields: -func (_m *Reservation) Resources() nodetypesv1beta2.ResourceGroup { +func (_m *Reservation) Resources() typesv1beta3.ResourceGroup { ret := _m.Called() - var r0 nodetypesv1beta2.ResourceGroup - if rf, ok := ret.Get(0).(func() nodetypesv1beta2.ResourceGroup); ok { + var r0 typesv1beta3.ResourceGroup + if rf, ok := ret.Get(0).(func() typesv1beta3.ResourceGroup); ok { r0 = rf() } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(nodetypesv1beta2.ResourceGroup) + r0 = ret.Get(0).(typesv1beta3.ResourceGroup) } } diff --git a/cluster/mocks/service.go b/cluster/mocks/service.go index 00dd05dc0..48219468a 100644 --- a/cluster/mocks/service.go +++ b/cluster/mocks/service.go @@ -4,19 +4,19 @@ package mocks import ( context "context" + testing "testing" - nodetypesv1beta2 "github.com/akash-network/node/types/v1beta2" mock "github.com/stretchr/testify/mock" - testing "testing" - types "github.com/cosmos/cosmos-sdk/types" - typesv1beta2 "github.com/akash-network/provider/cluster/types/v1beta2" + typesv1beta3 "github.com/akash-network/akash-api/go/node/types/v1beta3" + + v1beta2 "github.com/akash-network/provider/cluster/types/v1beta3" - v1beta2 "github.com/akash-network/node/x/market/types/v1beta2" + v1beta3 "github.com/akash-network/akash-api/go/node/market/v1beta3" - v2beta1 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) // Service is an autogenerated mock type for the Service type @@ -55,7 +55,7 @@ func (_m *Service) Done() <-chan struct{} { } // FindActiveLease provides a mock function with given fields: ctx, owner, dseq, gseq -func (_m *Service) FindActiveLease(ctx context.Context, owner types.Address, dseq uint64, gseq uint32) (bool, v1beta2.LeaseID, v2beta1.ManifestGroup, error) { +func (_m *Service) FindActiveLease(ctx context.Context, owner types.Address, dseq uint64, gseq uint32) (bool, v1beta3.LeaseID, v2beta2.ManifestGroup, error) { ret := _m.Called(ctx, owner, dseq, gseq) var r0 bool @@ -65,18 +65,18 @@ func (_m *Service) FindActiveLease(ctx context.Context, owner types.Address, dse r0 = ret.Get(0).(bool) } - var r1 v1beta2.LeaseID - if rf, ok := ret.Get(1).(func(context.Context, types.Address, uint64, uint32) v1beta2.LeaseID); ok { + var r1 v1beta3.LeaseID + if rf, ok := ret.Get(1).(func(context.Context, types.Address, uint64, uint32) v1beta3.LeaseID); ok { r1 = rf(ctx, owner, dseq, gseq) } else { - r1 = ret.Get(1).(v1beta2.LeaseID) + r1 = ret.Get(1).(v1beta3.LeaseID) } - var r2 v2beta1.ManifestGroup - if rf, ok := ret.Get(2).(func(context.Context, types.Address, uint64, uint32) v2beta1.ManifestGroup); ok { + var r2 v2beta2.ManifestGroup + if rf, ok := ret.Get(2).(func(context.Context, types.Address, uint64, uint32) v2beta2.ManifestGroup); ok { r2 = rf(ctx, owner, dseq, gseq) } else { - r2 = ret.Get(2).(v2beta1.ManifestGroup) + r2 = ret.Get(2).(v2beta2.ManifestGroup) } var r3 error @@ -90,15 +90,15 @@ func (_m *Service) FindActiveLease(ctx context.Context, owner types.Address, dse } // HostnameService provides a mock function with given fields: -func (_m *Service) HostnameService() typesv1beta2.HostnameServiceClient { +func (_m *Service) HostnameService() v1beta2.HostnameServiceClient { ret := _m.Called() - var r0 typesv1beta2.HostnameServiceClient - if rf, ok := ret.Get(0).(func() typesv1beta2.HostnameServiceClient); ok { + var r0 v1beta2.HostnameServiceClient + if rf, ok := ret.Get(0).(func() v1beta2.HostnameServiceClient); ok { r0 = rf() } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(typesv1beta2.HostnameServiceClient) + r0 = ret.Get(0).(v1beta2.HostnameServiceClient) } } @@ -122,20 +122,20 @@ func (_m *Service) Ready() <-chan struct{} { } // Reserve provides a mock function with given fields: _a0, _a1 -func (_m *Service) Reserve(_a0 v1beta2.OrderID, _a1 nodetypesv1beta2.ResourceGroup) (typesv1beta2.Reservation, error) { +func (_m *Service) Reserve(_a0 v1beta3.OrderID, _a1 typesv1beta3.ResourceGroup) (v1beta2.Reservation, error) { ret := _m.Called(_a0, _a1) - var r0 typesv1beta2.Reservation - if rf, ok := ret.Get(0).(func(v1beta2.OrderID, nodetypesv1beta2.ResourceGroup) typesv1beta2.Reservation); ok { + var r0 v1beta2.Reservation + if rf, ok := ret.Get(0).(func(v1beta3.OrderID, typesv1beta3.ResourceGroup) v1beta2.Reservation); ok { r0 = rf(_a0, _a1) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(typesv1beta2.Reservation) + r0 = ret.Get(0).(v1beta2.Reservation) } } var r1 error - if rf, ok := ret.Get(1).(func(v1beta2.OrderID, nodetypesv1beta2.ResourceGroup) error); ok { + if rf, ok := ret.Get(1).(func(v1beta3.OrderID, typesv1beta3.ResourceGroup) error); ok { r1 = rf(_a0, _a1) } else { r1 = ret.Error(1) @@ -145,15 +145,15 @@ func (_m *Service) Reserve(_a0 v1beta2.OrderID, _a1 nodetypesv1beta2.ResourceGro } // Status provides a mock function with given fields: _a0 -func (_m *Service) Status(_a0 context.Context) (*typesv1beta2.Status, error) { +func (_m *Service) Status(_a0 context.Context) (*v1beta2.Status, error) { ret := _m.Called(_a0) - var r0 *typesv1beta2.Status - if rf, ok := ret.Get(0).(func(context.Context) *typesv1beta2.Status); ok { + var r0 *v1beta2.Status + if rf, ok := ret.Get(0).(func(context.Context) *v1beta2.Status); ok { r0 = rf(_a0) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*typesv1beta2.Status) + r0 = ret.Get(0).(*v1beta2.Status) } } @@ -168,11 +168,11 @@ func (_m *Service) Status(_a0 context.Context) (*typesv1beta2.Status, error) { } // TransferHostname provides a mock function with given fields: ctx, leaseID, hostname, serviceName, externalPort -func (_m *Service) TransferHostname(ctx context.Context, leaseID v1beta2.LeaseID, hostname string, serviceName string, externalPort uint32) error { +func (_m *Service) TransferHostname(ctx context.Context, leaseID v1beta3.LeaseID, hostname string, serviceName string, externalPort uint32) error { ret := _m.Called(ctx, leaseID, hostname, serviceName, externalPort) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, v1beta2.LeaseID, string, string, uint32) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.LeaseID, string, string, uint32) error); ok { r0 = rf(ctx, leaseID, hostname, serviceName, externalPort) } else { r0 = ret.Error(0) @@ -182,11 +182,11 @@ func (_m *Service) TransferHostname(ctx context.Context, leaseID v1beta2.LeaseID } // Unreserve provides a mock function with given fields: _a0 -func (_m *Service) Unreserve(_a0 v1beta2.OrderID) error { +func (_m *Service) Unreserve(_a0 v1beta3.OrderID) error { ret := _m.Called(_a0) var r0 error - if rf, ok := ret.Get(0).(func(v1beta2.OrderID) error); ok { + if rf, ok := ret.Get(0).(func(v1beta3.OrderID) error); ok { r0 = rf(_a0) } else { r0 = ret.Error(0) diff --git a/cluster/monitor.go b/cluster/monitor.go index 90bf60e9a..a563f808e 100644 --- a/cluster/monitor.go +++ b/cluster/monitor.go @@ -8,16 +8,15 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" - "github.com/akash-network/provider/cluster/util" - "github.com/boz/go-lifecycle" "github.com/tendermint/tendermint/libs/log" - manifest "github.com/akash-network/node/manifest/v2beta1" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" "github.com/akash-network/node/pubsub" "github.com/akash-network/node/util/runner" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + "github.com/akash-network/provider/cluster/util" "github.com/akash-network/provider/event" "github.com/akash-network/provider/session" ) diff --git a/cluster/monitor_test.go b/cluster/monitor_test.go index 362a5fda8..e8d0d3a36 100644 --- a/cluster/monitor_test.go +++ b/cluster/monitor_test.go @@ -3,15 +3,16 @@ package cluster import ( "testing" - manifest "github.com/akash-network/node/manifest/v2beta1" - "github.com/akash-network/node/pubsub" - "github.com/akash-network/node/testutil" "github.com/boz/go-lifecycle" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + "github.com/akash-network/node/pubsub" + "github.com/akash-network/node/testutil" + "github.com/akash-network/provider/cluster/mocks" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/event" "github.com/akash-network/provider/session" ) diff --git a/cluster/operatorclients/ip_operator_client.go b/cluster/operatorclients/ip_operator_client.go index 8cd33737f..63b183961 100644 --- a/cluster/operatorclients/ip_operator_client.go +++ b/cluster/operatorclients/ip_operator_client.go @@ -11,13 +11,14 @@ import ( "strings" "sync" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - "github.com/tendermint/tendermint/libs/log" "k8s.io/client-go/rest" - ipoptypes "github.com/akash-network/provider/operator/ipoperator/types" + "github.com/tendermint/tendermint/libs/log" + + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" clusterutil "github.com/akash-network/provider/cluster/util" + ipoptypes "github.com/akash-network/provider/operator/ipoperator/types" ) var ( diff --git a/cluster/reservation.go b/cluster/reservation.go index afe6aa00c..fdc155989 100644 --- a/cluster/reservation.go +++ b/cluster/reservation.go @@ -1,12 +1,11 @@ package cluster import ( - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + atypes "github.com/akash-network/akash-api/go/node/types/v1beta3" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/cluster/util" - - atypes "github.com/akash-network/node/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" ) func newReservation(order mtypes.OrderID, resources atypes.ResourceGroup) *reservation { diff --git a/cluster/resourcetypes_test.go b/cluster/resourcetypes_test.go index c8ac47780..319aa68a3 100644 --- a/cluster/resourcetypes_test.go +++ b/cluster/resourcetypes_test.go @@ -6,7 +6,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/require" - types "github.com/akash-network/node/types/v1beta2" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" ) func TestResourcePairAvailable(t *testing.T) { diff --git a/cluster/service.go b/cluster/service.go index 2a53ca5c9..a610e5df6 100644 --- a/cluster/service.go +++ b/cluster/service.go @@ -3,15 +3,9 @@ package cluster import ( "context" - "github.com/akash-network/provider/operator/waiter" - - "github.com/akash-network/provider/cluster/operatorclients" - "github.com/boz/go-lifecycle" sdktypes "github.com/cosmos/cosmos-sdk/types" - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" - "github.com/pkg/errors" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" @@ -19,11 +13,14 @@ import ( "github.com/tendermint/tendermint/libs/log" "github.com/akash-network/node/pubsub" - atypes "github.com/akash-network/node/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + atypes "github.com/akash-network/akash-api/go/node/types/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + "github.com/akash-network/provider/cluster/operatorclients" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/event" + "github.com/akash-network/provider/operator/waiter" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" "github.com/akash-network/provider/session" ) diff --git a/cluster/types/v1beta1/directives.go b/cluster/types/v1beta1/directives.go deleted file mode 100644 index ceb831555..000000000 --- a/cluster/types/v1beta1/directives.go +++ /dev/null @@ -1,16 +0,0 @@ -package v1beta1 - -import mtypes "github.com/akash-network/node/x/market/types/v1beta1" - -type ConnectHostnameToDeploymentDirective struct { - Hostname string - LeaseID mtypes.LeaseID - ServiceName string - ServicePort int32 - ReadTimeout uint32 - SendTimeout uint32 - NextTimeout uint32 - MaxBodySize uint32 - NextTries uint32 - NextCases []string -} diff --git a/cluster/types/v1beta2/directives.go b/cluster/types/v1beta2/directives.go index f18b24f5f..4f677bbea 100644 --- a/cluster/types/v1beta2/directives.go +++ b/cluster/types/v1beta2/directives.go @@ -1,8 +1,8 @@ package v1beta2 import ( - manifest "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta1" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta2" ) type ConnectHostnameToDeploymentDirective struct { diff --git a/cluster/types/v1beta2/hostname.go b/cluster/types/v1beta2/hostname.go index 3fbb7a84c..cd46ae760 100644 --- a/cluster/types/v1beta2/hostname.go +++ b/cluster/types/v1beta2/hostname.go @@ -1,7 +1,7 @@ package v1beta2 import ( - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta2" ) type LeaseIDHostnameConnection interface { diff --git a/cluster/types/v1beta2/interfaces.go b/cluster/types/v1beta2/interfaces.go index 9e43f826f..fadb10727 100644 --- a/cluster/types/v1beta2/interfaces.go +++ b/cluster/types/v1beta2/interfaces.go @@ -5,7 +5,7 @@ import ( sdktypes "github.com/cosmos/cosmos-sdk/types" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta2" ) type HostnameServiceClient interface { diff --git a/cluster/types/v1beta2/ip.go b/cluster/types/v1beta2/ip.go index 17844664c..de19b36b3 100644 --- a/cluster/types/v1beta2/ip.go +++ b/cluster/types/v1beta2/ip.go @@ -1,8 +1,8 @@ package v1beta2 import ( - manifest "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta1" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta2" ) type IPResourceEvent interface { diff --git a/cluster/types/v1beta2/reservation.go b/cluster/types/v1beta2/reservation.go index 66a8486c5..1f90a2e86 100644 --- a/cluster/types/v1beta2/reservation.go +++ b/cluster/types/v1beta2/reservation.go @@ -1,8 +1,8 @@ package v1beta2 import ( - atypes "github.com/akash-network/node/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + atypes "github.com/akash-network/akash-api/go/node/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta2" ) // Reservation interface implements orders and resources diff --git a/cluster/types/v1beta2/types.go b/cluster/types/v1beta2/types.go index 792147ea2..2ceebad50 100644 --- a/cluster/types/v1beta2/types.go +++ b/cluster/types/v1beta2/types.go @@ -10,9 +10,9 @@ import ( eventsv1 "k8s.io/api/events/v1" - manifest "github.com/akash-network/node/manifest/v2beta1" - types "github.com/akash-network/node/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta1" + types "github.com/akash-network/akash-api/go/node/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta2" "github.com/akash-network/node/sdl" ) diff --git a/cluster/types/v1beta3/directives.go b/cluster/types/v1beta3/directives.go new file mode 100644 index 000000000..4e5856122 --- /dev/null +++ b/cluster/types/v1beta3/directives.go @@ -0,0 +1,28 @@ +package v1beta2 + +import ( + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" +) + +type ConnectHostnameToDeploymentDirective struct { + Hostname string + LeaseID mtypes.LeaseID + ServiceName string + ServicePort int32 + ReadTimeout uint32 + SendTimeout uint32 + NextTimeout uint32 + MaxBodySize uint32 + NextTries uint32 + NextCases []string +} + +type ClusterIPPassthroughDirective struct { + LeaseID mtypes.LeaseID + ServiceName string + Port uint32 + ExternalPort uint32 + SharingKey string + Protocol manifest.ServiceProtocol +} diff --git a/cluster/types/v1beta1/hostname.go b/cluster/types/v1beta3/hostname.go similarity index 86% rename from cluster/types/v1beta1/hostname.go rename to cluster/types/v1beta3/hostname.go index c646e9935..1e0fe416e 100644 --- a/cluster/types/v1beta1/hostname.go +++ b/cluster/types/v1beta3/hostname.go @@ -1,6 +1,8 @@ -package v1beta1 +package v1beta2 -import mtypes "github.com/akash-network/node/x/market/types/v1beta1" +import ( + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" +) type LeaseIDHostnameConnection interface { GetLeaseID() mtypes.LeaseID diff --git a/cluster/types/v1beta1/interfaces.go b/cluster/types/v1beta3/interfaces.go similarity index 83% rename from cluster/types/v1beta1/interfaces.go rename to cluster/types/v1beta3/interfaces.go index 5aea2fc7a..fd2c79664 100644 --- a/cluster/types/v1beta1/interfaces.go +++ b/cluster/types/v1beta3/interfaces.go @@ -1,11 +1,11 @@ -package v1beta1 +package v1beta2 import ( "context" sdktypes "github.com/cosmos/cosmos-sdk/types" - mtypes "github.com/akash-network/node/x/market/types/v1beta1" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) type HostnameServiceClient interface { diff --git a/cluster/types/v1beta3/ip.go b/cluster/types/v1beta3/ip.go new file mode 100644 index 000000000..0c0d95d04 --- /dev/null +++ b/cluster/types/v1beta3/ip.go @@ -0,0 +1,30 @@ +package v1beta2 + +import ( + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" +) + +type IPResourceEvent interface { + GetLeaseID() mtypes.LeaseID + GetServiceName() string + GetExternalPort() uint32 + GetPort() uint32 + GetSharingKey() string + GetProtocol() manifest.ServiceProtocol + GetEventType() ProviderResourceEvent +} + +type IPPassthrough interface { + GetLeaseID() mtypes.LeaseID + GetServiceName() string + GetExternalPort() uint32 + GetPort() uint32 + GetSharingKey() string + GetProtocol() manifest.ServiceProtocol +} + +type IPLeaseState interface { + IPPassthrough + GetIP() string +} diff --git a/cluster/types/v1beta1/reservation.go b/cluster/types/v1beta3/reservation.go similarity index 54% rename from cluster/types/v1beta1/reservation.go rename to cluster/types/v1beta3/reservation.go index 459f07cc8..905eafeec 100644 --- a/cluster/types/v1beta1/reservation.go +++ b/cluster/types/v1beta3/reservation.go @@ -1,8 +1,8 @@ -package v1beta1 +package v1beta2 import ( - atypes "github.com/akash-network/node/types/v1beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta1" + atypes "github.com/akash-network/akash-api/go/node/types/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) // Reservation interface implements orders and resources diff --git a/cluster/types/v1beta1/types.go b/cluster/types/v1beta3/types.go similarity index 51% rename from cluster/types/v1beta1/types.go rename to cluster/types/v1beta3/types.go index a3de1dee4..a2919fb25 100644 --- a/cluster/types/v1beta1/types.go +++ b/cluster/types/v1beta3/types.go @@ -1,15 +1,25 @@ -package v1beta1 +package v1beta2 import ( "bufio" "context" "io" + "github.com/pkg/errors" eventsv1 "k8s.io/api/events/v1" - manifest "github.com/akash-network/node/manifest/v1" - atypes "github.com/akash-network/node/types/v1beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta1" + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/akash-network/node/sdl" + + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" +) + +var ( + // ErrInsufficientCapacity is the new error when capacity is insufficient + ErrInsufficientCapacity = errors.New("insufficient capacity") ) // Status stores current leases and inventory statuses @@ -18,12 +28,81 @@ type Status struct { Inventory InventoryStatus `json:"inventory"` } +type InventoryMetricTotal struct { + CPU uint64 `json:"cpu"` + GPU uint64 `json:"gpu"` + Memory uint64 `json:"memory"` + StorageEphemeral uint64 `json:"storage_ephemeral"` + Storage map[string]int64 `json:"storage,omitempty"` +} + +type InventoryStorageStatus struct { + Class string `json:"class"` + Size int64 `json:"size"` +} + // InventoryStatus stores active, pending and available units type InventoryStatus struct { - Active []atypes.ResourceUnits `json:"active"` - Pending []atypes.ResourceUnits `json:"pending"` - Available []atypes.ResourceUnits `json:"available"` - Error error `json:"error"` + Active []InventoryMetricTotal `json:"active,omitempty"` + Pending []InventoryMetricTotal `json:"pending,omitempty"` + Available struct { + Nodes []InventoryNodeMetric `json:"nodes,omitempty"` + Storage []InventoryStorageStatus `json:"storage,omitempty"` + } `json:"available,omitempty"` + Error error `json:"error,omitempty"` +} + +type InventoryNodeMetric struct { + CPU uint64 `json:"cpu"` + GPU uint64 `json:"gpu"` + Memory uint64 `json:"memory"` + StorageEphemeral uint64 `json:"storage_ephemeral"` +} + +func (inv *InventoryMetricTotal) AddResources(res types.Resources) { + cpu := sdk.NewIntFromUint64(inv.CPU) + gpu := sdk.NewIntFromUint64(inv.GPU) + mem := sdk.NewIntFromUint64(inv.Memory) + ephemeralStorage := sdk.NewIntFromUint64(inv.StorageEphemeral) + + if res.Resources.CPU != nil { + cpu = cpu.Add(res.Resources.CPU.Units.Val.MulRaw(int64(res.Count))) + } + + if res.Resources.GPU != nil { + gpu = gpu.Add(res.Resources.GPU.Units.Val.MulRaw(int64(res.Count))) + } + + if res.Resources.Memory != nil { + mem = mem.Add(res.Resources.Memory.Quantity.Val.MulRaw(int64(res.Count))) + } + + for _, storage := range res.Resources.Storage { + if storageClass, found := storage.Attributes.Find(sdl.StorageAttributeClass).AsString(); !found { + ephemeralStorage = ephemeralStorage.Add(storage.Quantity.Val.MulRaw(int64(res.Count))) + } else { + val := sdk.NewIntFromUint64(uint64(inv.Storage[storageClass])) + val = val.Add(storage.Quantity.Val.MulRaw(int64(res.Count))) + inv.Storage[storageClass] = val.Int64() + } + } + + inv.CPU = cpu.Uint64() + inv.GPU = gpu.Uint64() + inv.Memory = mem.Uint64() + inv.StorageEphemeral = ephemeralStorage.Uint64() +} + +type InventoryNode struct { + Name string `json:"name"` + Allocatable InventoryNodeMetric `json:"allocatable"` + Available InventoryNodeMetric `json:"available"` +} + +type InventoryMetrics struct { + Nodes []InventoryNode `json:"nodes"` + TotalAllocatable InventoryMetricTotal `json:"total_allocatable"` + TotalAvailable InventoryMetricTotal `json:"total_available"` } // ServiceStatus stores the current status of service @@ -45,7 +124,6 @@ type ForwardedPortStatus struct { Port uint16 `json:"port"` ExternalPort uint16 `json:"externalPort"` Proto manifest.ServiceProtocol `json:"proto"` - Available int32 `json:"available"` Name string `json:"name"` } @@ -55,12 +133,9 @@ type LeaseStatus struct { ForwardedPorts map[string][]ForwardedPortStatus `json:"forwarded_ports"` // Container services that are externally accessible } -// Node interface predefined with ID and Available methods -type Node interface { - ID() string - Available() atypes.ResourceUnits - Allocateable() atypes.ResourceUnits - Reserve(atypes.ResourceUnits) error +type Inventory interface { + Adjust(Reservation) error + Metrics() InventoryMetrics } // Deployment interface defined with LeaseID and ManifestGroup methods @@ -91,7 +166,6 @@ type LeaseEvent struct { Object LeaseEventObject `json:"object" yaml:"object"` } -// EventsWatcher type EventsWatcher interface { Shutdown() Done() <-chan struct{} diff --git a/cluster/util/endpoint_quantity.go b/cluster/util/endpoint_quantity.go index aed90d5b2..5bf17d26e 100644 --- a/cluster/util/endpoint_quantity.go +++ b/cluster/util/endpoint_quantity.go @@ -1,6 +1,6 @@ package util -import atypes "github.com/akash-network/node/types/v1beta2" +import atypes "github.com/akash-network/akash-api/go/node/types/v1beta3" func GetEndpointQuantityOfResourceGroup(resources atypes.ResourceGroup, kind atypes.Endpoint_Kind) uint { endpoints := make(map[uint32]struct{}) diff --git a/cluster/util/ip_sharing_key.go b/cluster/util/ip_sharing_key.go index 5857331f1..91db78f42 100644 --- a/cluster/util/ip_sharing_key.go +++ b/cluster/util/ip_sharing_key.go @@ -8,7 +8,7 @@ import ( "regexp" "strings" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) var allowedIPEndpointNameRegex = regexp.MustCompile(`^[a-z\d\-]+$`) diff --git a/cluster/util/lease_id_to_namespace.go b/cluster/util/lease_id_to_namespace.go index 9f3659595..e66ad453f 100644 --- a/cluster/util/lease_id_to_namespace.go +++ b/cluster/util/lease_id_to_namespace.go @@ -5,7 +5,7 @@ import ( "encoding/base32" "strings" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) // LeaseIDToNamespace generates a unique sha256 sum for identifying a provider's object name. diff --git a/cluster/util/service_discovery_agent.go b/cluster/util/service_discovery_agent.go index 7f86e053b..3596429fe 100644 --- a/cluster/util/service_discovery_agent.go +++ b/cluster/util/service_discovery_agent.go @@ -4,6 +4,10 @@ import ( "context" "errors" "fmt" + "math/rand" + "net" + "time" + "github.com/akash-network/node/util/runner" "github.com/boz/go-lifecycle" "github.com/desertbit/timer" @@ -12,9 +16,6 @@ import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" - "math/rand" - "net" - "time" ) var ( diff --git a/cluster/util/service_discovery_agent_types.go b/cluster/util/service_discovery_agent_types.go index 138cf3ad6..574cb955f 100644 --- a/cluster/util/service_discovery_agent_types.go +++ b/cluster/util/service_discovery_agent_types.go @@ -2,12 +2,13 @@ package util import ( "context" + "io" + "net/http" + "github.com/boz/go-lifecycle" "github.com/tendermint/tendermint/libs/log" - "io" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" - "net/http" ) type ServiceDiscoveryAgent interface { diff --git a/cmd/provider-services/cmd/auth_server.go b/cmd/provider-services/cmd/auth_server.go index 267ccd821..4e032deee 100644 --- a/cmd/provider-services/cmd/auth_server.go +++ b/cmd/provider-services/cmd/auth_server.go @@ -8,15 +8,16 @@ import ( "net/http" "time" + "github.com/spf13/cobra" + "github.com/spf13/viper" "golang.org/x/sync/errgroup" + sdkclient "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/akash-network/node/cmd/common" cmodule "github.com/akash-network/node/x/cert" cutils "github.com/akash-network/node/x/cert/utils" - sdkclient "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/spf13/cobra" - "github.com/spf13/viper" gwrest "github.com/akash-network/provider/gateway/rest" ) diff --git a/cmd/provider-services/cmd/helpers.go b/cmd/provider-services/cmd/helpers.go index 6f9f9b84d..28826875f 100644 --- a/cmd/provider-services/cmd/helpers.go +++ b/cmd/provider-services/cmd/helpers.go @@ -15,8 +15,8 @@ import ( "github.com/akash-network/node/app" akashclient "github.com/akash-network/node/client" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) const ( diff --git a/cmd/provider-services/cmd/leaseEvents.go b/cmd/provider-services/cmd/leaseEvents.go index 780184217..9a63e466c 100644 --- a/cmd/provider-services/cmd/leaseEvents.go +++ b/cmd/provider-services/cmd/leaseEvents.go @@ -8,15 +8,13 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/spf13/cobra" - cmdcommon "github.com/akash-network/node/cmd/common" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - - cltypes "github.com/akash-network/provider/cluster/types/v1beta2" - akashclient "github.com/akash-network/node/client" + cmdcommon "github.com/akash-network/node/cmd/common" cutils "github.com/akash-network/node/x/cert/utils" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + cltypes "github.com/akash-network/provider/cluster/types/v1beta3" gwrest "github.com/akash-network/provider/gateway/rest" ) diff --git a/cmd/provider-services/cmd/leaseLogs.go b/cmd/provider-services/cmd/leaseLogs.go index 7af71e509..1bc2d84a6 100644 --- a/cmd/provider-services/cmd/leaseLogs.go +++ b/cmd/provider-services/cmd/leaseLogs.go @@ -10,12 +10,11 @@ import ( "github.com/pkg/errors" "github.com/spf13/cobra" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - akashclient "github.com/akash-network/node/client" cmdcommon "github.com/akash-network/node/cmd/common" cutils "github.com/akash-network/node/x/cert/utils" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" gwrest "github.com/akash-network/provider/gateway/rest" ) diff --git a/cmd/provider-services/cmd/manifest.go b/cmd/provider-services/cmd/manifest.go index 8094db6a2..dfad4f58f 100644 --- a/cmd/provider-services/cmd/manifest.go +++ b/cmd/provider-services/cmd/manifest.go @@ -6,18 +6,17 @@ import ( "encoding/json" "fmt" - sdkclient "github.com/cosmos/cosmos-sdk/client" - sdk "github.com/cosmos/cosmos-sdk/types" - - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - "github.com/pkg/errors" "github.com/spf13/cobra" "gopkg.in/yaml.v3" + sdkclient "github.com/cosmos/cosmos-sdk/client" + sdk "github.com/cosmos/cosmos-sdk/types" + akashclient "github.com/akash-network/node/client" "github.com/akash-network/node/sdl" cutils "github.com/akash-network/node/x/cert/utils" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" gwrest "github.com/akash-network/provider/gateway/rest" ) diff --git a/cmd/provider-services/cmd/migrate.go b/cmd/provider-services/cmd/migrate.go index fdb8a6cf8..a82211be4 100644 --- a/cmd/provider-services/cmd/migrate.go +++ b/cmd/provider-services/cmd/migrate.go @@ -2,8 +2,6 @@ package cmd import ( "github.com/spf13/cobra" - - migratecmd "github.com/akash-network/provider/cmd/provider-services/cmd/migrate" ) func migrate() *cobra.Command { @@ -11,7 +9,7 @@ func migrate() *cobra.Command { Use: "migrate", } - cmd.AddCommand(migratecmd.V0_14ToV0_16()) + // cmd.AddCommand(migratecmd.V0_14ToV0_16()) return cmd } diff --git a/cmd/provider-services/cmd/migrate/v0_14tov0_16.go b/cmd/provider-services/cmd/migrate/v0_14tov0_16.go deleted file mode 100644 index f4392d425..000000000 --- a/cmd/provider-services/cmd/migrate/v0_14tov0_16.go +++ /dev/null @@ -1,449 +0,0 @@ -package migrate - -import ( - "bytes" - "context" - "encoding/json" - "fmt" - "io" - "net/http" - "os" - "os/exec" - "path" - "strings" - - "github.com/pkg/errors" - "github.com/spf13/cobra" - "github.com/spf13/viper" - kubeErrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - "k8s.io/client-go/util/homedir" - - "github.com/akash-network/node/util/cli" - - v1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" - "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" - v2beta1migrate "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1/migrate" - akashclient "github.com/akash-network/provider/pkg/client/clientset/versioned" -) - -const ( - flagCrdMigratePath = "k8s-crd-migrate-path" - flagCrdRestoreOnly = "crd-restore-only" - FlagKubeConfig = "kubeconfig" - FlagK8sManifestNS = "k8s-manifest-ns" - flagCRD = "crd" -) - -func V0_14ToV0_16() *cobra.Command { - cmd := &cobra.Command{ - Use: "v0.14tov0.16", - RunE: func(cmd *cobra.Command, args []string) error { - return doMigrateCRDs(cmd.Context(), cmd) - }, - } - - cmd.Flags().String(FlagK8sManifestNS, "lease", "Cluster manifest namespace") - if err := viper.BindPFlag(FlagK8sManifestNS, cmd.Flags().Lookup(FlagK8sManifestNS)); err != nil { - return nil - } - - cmd.Flags().String(FlagKubeConfig, path.Join(homedir.HomeDir(), ".kube", "config"), "kubernetes configuration file path") - if err := viper.BindPFlag(FlagKubeConfig, cmd.Flags().Lookup(FlagKubeConfig)); err != nil { - return nil - } - - cmd.Flags().String(flagCrdMigratePath, "./", "path to backup CRDs") - if err := viper.BindPFlag(flagCrdMigratePath, cmd.Flags().Lookup(flagCrdMigratePath)); err != nil { - return nil - } - - cmd.Flags().Bool(flagCrdRestoreOnly, false, "proceed to restore step without making current backup") - if err := viper.BindPFlag(flagCrdRestoreOnly, cmd.Flags().Lookup(flagCrdRestoreOnly)); err != nil { - return nil - } - - cmd.Flags().String(flagCRD, "", "path or URL to CRDs") - if err := viper.BindPFlag(flagCRD, cmd.Flags().Lookup(flagCRD)); err != nil { - return nil - } - - _ = cmd.MarkFlagRequired(flagCRD) - - return cmd -} - -func doMigrateCRDs(ctx context.Context, cmd *cobra.Command) error { - ns := viper.GetString(FlagK8sManifestNS) - kubeConfig := viper.GetString(FlagKubeConfig) - backupPath := path.Dir(viper.GetString(flagCrdMigratePath)) + "/crds" - manifestsPath := backupPath + "/manifests" - hostsPath := backupPath + "/hosts" - restoreOnly := viper.GetBool(flagCrdRestoreOnly) - - if !isKubectlAvail() { - return errors.New("kubectl has not been found. install to proceed") - } - - config, err := openKubeConfig(kubeConfig) - if err != nil { - return errors.Wrap(err, "kube: error building config flags") - } - - crds, err := readOrDownload(viper.GetString(flagCRD)) - if err != nil { - return err - } - - ac, err := akashclient.NewForConfig(config) - if err != nil { - return errors.Wrap(err, "kube: error creating manifest client") - } - - var oldMani []v1.Manifest - var oldHosts []v1.ProviderHost - - if !restoreOnly { - isEmpty, err := isDirEmpty(manifestsPath) - if os.IsNotExist(err) { - isEmpty = true - } else if err != nil { - return err - } - - if isEmpty { - isEmpty, err = isDirEmpty(hostsPath) - if os.IsNotExist(err) { - isEmpty = true - } else if err != nil { - return err - } - } - - yes := true - - if !isEmpty { - yes, err = cli.GetConfirmation(cmd, "backup already present. \"y\" to remove. \"N\" jump to restore. Ctrl+C exit") - if err != nil { - return err - } - - if yes { - _ = os.RemoveAll(backupPath) - } - } - - if yes { - fmt.Println("checking manifests to backup") - mList, err := ac.AkashV1().Manifests(ns).List(ctx, metav1.ListOptions{}) - if err != nil { - return err - } - fmt.Println("checking providers hosts to backup") - hList, err := ac.AkashV1().ProviderHosts(ns).List(ctx, metav1.ListOptions{}) - if err != nil { - return err - } - - if len(mList.Items) == 0 && len(hList.Items) == 0 { - fmt.Println("no V1 objects found. nothing to do here") - return nil - } - - fmt.Printf("total to backup\n\tmanifests: %d\n\tprovider hosts: %d\n", len(mList.Items), len(hList.Items)) - oldMani = mList.Items - oldHosts = hList.Items - - if len(mList.Items) > 0 { - _ = os.MkdirAll(manifestsPath, 0755) - } - - if len(hList.Items) > 0 { - _ = os.MkdirAll(hostsPath, 0755) - } - - // backup manifests - fmt.Println("backup manifests") - for i := range oldMani { - data, _ := json.MarshalIndent(&oldMani[i], "", " ") - if err = backupObject(manifestsPath+"/"+oldMani[i].Name+".yaml", data); err != nil { - return err - } - _ = ac.AkashV1().Manifests(ns).Delete(ctx, oldMani[i].Name, metav1.DeleteOptions{}) - } - fmt.Println("backup manifests DONE") - - fmt.Println("backup provider hosts") - for i := range oldHosts { - data, _ := json.MarshalIndent(&oldHosts[i], "", " ") - if err = backupObject(hostsPath+"/"+oldHosts[i].Name+".yaml", data); err != nil { - return err - } - - _ = ac.AkashV1().ProviderHosts(ns).Delete(ctx, oldHosts[i].Name, metav1.DeleteOptions{}) - } - fmt.Println("backup provider hosts DONE") - } - } - - if len(oldMani) == 0 { - oldMani, err = loadManifests(manifestsPath) - if err != nil { - return err - } - } - - if len(oldHosts) == 0 { - oldHosts, err = loadHosts(hostsPath) - if err != nil { - return err - } - } - - fmt.Println("applying CRDs") - - if err = kubectl(cmd, "delete", string(crds), kubeConfig); err != nil { - return err - } - - if err = kubectl(cmd, "apply", string(crds), kubeConfig); err != nil { - return err - } - - fmt.Println("applying CRDs DONE") - - fmt.Println("applying manifests") - for _, mani := range oldMani { - - nmani := &v2beta1.Manifest{ - TypeMeta: metav1.TypeMeta{ - Kind: "Manifest", - APIVersion: "akash.network/v2beta1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: mani.Name, - Namespace: ns, - }, - } - - nmani.Labels = mani.Labels - nmani.Spec = v2beta1migrate.ManifestSpecFromV1(mani.Spec) - - // double check this manifest not present in the new api - _, err = ac.AkashV2beta1().Manifests(ns).Get(ctx, mani.Name, metav1.GetOptions{}) - if err != nil && !kubeErrors.IsNotFound(err) { - fmt.Printf("unable to check presence of \"%s\" manifest. still trying to migrate. %s\n", mani.Name, err.Error()) - } - - _, err = ac.AkashV2beta1().Manifests(ns).Create(ctx, nmani, metav1.CreateOptions{}) - if err == nil { - fmt.Printf("manifest \"%s\" has been migrated successfully\n", mani.Name) - } else { - fmt.Printf("manifest \"%s\" migration failed. error: %s\n", mani.Name, err.Error()) - } - } - fmt.Println("applying manifests DONE") - - fmt.Println("applying hosts") - for _, host := range oldHosts { - nhost := &v2beta1.ProviderHost{ - TypeMeta: metav1.TypeMeta{ - Kind: "Manifest", - APIVersion: "akash.network/v2beta1", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: host.Name, - Namespace: ns, - }, - } - - nhost.Labels = host.Labels - nhost.Spec = v2beta1migrate.ProviderHostsSpecFromV1(host.Spec) - - // double check this manifest not present in the new api - _, err = ac.AkashV2beta1().ProviderHosts(ns).Get(ctx, host.Name, metav1.GetOptions{}) - if err != nil && !kubeErrors.IsNotFound(err) { - fmt.Printf("unable to check presence of \"%s\" manifest. still trying to migrate. %s\n", host.Name, err.Error()) - } - - _, err = ac.AkashV2beta1().ProviderHosts(ns).Create(ctx, nhost, metav1.CreateOptions{}) - if err == nil { - fmt.Printf("provider host \"%s\" has been migrated successfully\n", host.Name) - } else { - fmt.Printf("provider host \"%s\" migration failed. error: %s\n", host.Name, err.Error()) - } - } - fmt.Println("applying hosts DONE") - - return nil -} - -func openKubeConfig(cfgPath string) (*rest.Config, error) { - if _, err := os.Stat(cfgPath); err == nil { - fmt.Printf("using kube config file %s\n", cfgPath) - return clientcmd.BuildConfigFromFlags("", cfgPath) - } - - fmt.Println("using in cluster kube config") - return rest.InClusterConfig() -} - -func isDirEmpty(name string) (bool, error) { - f, err := os.Open(name) - if err != nil { - return false, err - } - defer func() { - _ = f.Close() - }() - - // read in ONLY one file - _, err = f.Readdir(1) - - // and if the file is EOF... well, the dir is empty. - if err == io.EOF { - return true, nil - } - - return false, nil -} - -func backupObject(path string, data []byte) error { - fl, err := os.Create(path) - if err != nil { - return err - } - - defer func() { - _ = fl.Close() - }() - - _, err = fl.Write(data) - if err != nil { - return err - } - - return nil -} - -func loadManifests(path string) ([]v1.Manifest, error) { - files, err := os.ReadDir(path) - if err != nil { - return nil, err - } - - var res []v1.Manifest - - for _, fl := range files { - if fl.IsDir() || !strings.HasSuffix(fl.Name(), ".yaml") { - continue - } - - obj := v1.Manifest{} - - if err = readObject(path+"/"+fl.Name(), &obj); err == nil { - res = append(res, obj) - } else { - fmt.Printf("error reading manifest from \"%s\". %s", fl.Name(), err.Error()) - } - } - - return res, nil -} - -func loadHosts(path string) ([]v1.ProviderHost, error) { - files, err := os.ReadDir(path) - if err != nil { - return nil, err - } - - var res []v1.ProviderHost - - for _, fl := range files { - if fl.IsDir() || !strings.HasSuffix(fl.Name(), ".yaml") { - continue - } - - obj := v1.ProviderHost{} - - if err = readObject(path+"/"+fl.Name(), &obj); err == nil { - res = append(res, obj) - } else { - fmt.Printf("error reading manifest from \"%s\". %s", fl.Name(), err.Error()) - } - } - - return res, nil -} - -func readObject(path string, obj interface{}) error { - fl, err := os.Open(path) - if err != nil { - return err - } - defer func() { - _ = fl.Close() - }() - - data, err := io.ReadAll(fl) - if err != nil { - return err - } - - if err = json.Unmarshal(data, &obj); err != nil { - return err - } - - return nil -} - -func isKubectlAvail() bool { - _, err := exec.LookPath("kubectl") - return err == nil -} - -func kubectl(cmd *cobra.Command, command, content string, kubeconfig string) error { - exe := exec.CommandContext(cmd.Context(), "kubectl", command, "-f", "-") - - exe.Stdin = bytes.NewBufferString(content) - exe.Stdout = cmd.OutOrStdout() - exe.Stderr = cmd.ErrOrStderr() - - if len(kubeconfig) != 0 { - exe.Env = []string{ - "KUBECONFIG=" + kubeconfig, - } - } - - return exe.Run() -} - -func readOrDownload(path string) ([]byte, error) { - var stream io.ReadCloser - - defer func() { - if stream != nil { - _ = stream.Close() - } - }() - - if strings.HasPrefix(path, "http") { - resp, err := http.Get(path) // nolint: gosec - if err != nil { - return nil, err - } - - stream = resp.Body - } else { - fl, err := os.Open(path) - if err != nil { - return nil, err - } - - stream = fl - } - - return io.ReadAll(stream) -} diff --git a/cmd/provider-services/cmd/root.go b/cmd/provider-services/cmd/root.go index b7890ef03..352c19022 100644 --- a/cmd/provider-services/cmd/root.go +++ b/cmd/provider-services/cmd/root.go @@ -15,7 +15,7 @@ import ( "github.com/akash-network/node/app" acmd "github.com/akash-network/node/cmd/akash/cmd" ecmd "github.com/akash-network/node/events/cmd" - "github.com/akash-network/node/sdkutil" + "github.com/akash-network/akash-api/go/sdkutil" "github.com/akash-network/provider/operator" "github.com/akash-network/provider/operator/hostnameoperator" diff --git a/cmd/provider-services/cmd/run.go b/cmd/provider-services/cmd/run.go index fff4e5691..935aae0ef 100644 --- a/cmd/provider-services/cmd/run.go +++ b/cmd/provider-services/cmd/run.go @@ -24,17 +24,17 @@ import ( "github.com/cosmos/cosmos-sdk/client/tx" sdk "github.com/cosmos/cosmos-sdk/types" + ctypes "github.com/akash-network/akash-api/go/node/cert/v1beta3" + mparams "github.com/akash-network/akash-api/go/node/market/v1beta3" + ptypes "github.com/akash-network/akash-api/go/node/provider/v1beta3" "github.com/akash-network/node/client" "github.com/akash-network/node/cmd/common" "github.com/akash-network/node/events" "github.com/akash-network/node/pubsub" "github.com/akash-network/node/sdl" cmodule "github.com/akash-network/node/x/cert" - ctypes "github.com/akash-network/node/x/cert/types/v1beta2" cutils "github.com/akash-network/node/x/cert/utils" - mparams "github.com/akash-network/node/x/market/types/v1beta2" config2 "github.com/akash-network/node/x/provider/config" - ptypes "github.com/akash-network/node/x/provider/types/v1beta2" "github.com/akash-network/provider" "github.com/akash-network/provider/bidengine" @@ -456,6 +456,8 @@ func doRunCmd(ctx context.Context, cmd *cobra.Command, _ []string) error { from := viper.GetString(flags.FlagFrom) overcommitPercentStorage := 1.0 + float64(viper.GetUint64(FlagOvercommitPercentStorage)/100.0) overcommitPercentCPU := 1.0 + float64(viper.GetUint64(FlagOvercommitPercentCPU)/100.0) + // no GPU overcommit + overcommitPercentGPU := 1.0 overcommitPercentMemory := 1.0 + float64(viper.GetUint64(FlagOvercommitPercentMemory)/100.0) blockedHostnames := viper.GetStringSlice(FlagDeploymentBlockedHostnames) kubeConfigPath := viper.GetString(providerflags.FlagKubeConfig) @@ -487,7 +489,7 @@ func doRunCmd(ctx context.Context, cmd *cobra.Command, _ []string) error { cctx := sdkclient.GetClientContextFromCmd(cmd) - _, _, _, err = sdkclient.GetFromFields(cctx.Keyring, from, false) + _, _, _, err = sdkclient.GetFromFields(cctx, cctx.Keyring, from) if err != nil { return err } @@ -571,6 +573,7 @@ func doRunCmd(ctx context.Context, cmd *cobra.Command, _ []string) error { kubeSettings.NetworkPoliciesEnabled = deploymentNetworkPoliciesEnabled kubeSettings.ClusterPublicHostname = clusterPublicHostname kubeSettings.CPUCommitLevel = overcommitPercentCPU + kubeSettings.GPUCommitLevel = overcommitPercentGPU kubeSettings.MemoryCommitLevel = overcommitPercentMemory kubeSettings.StorageCommitLevel = overcommitPercentStorage kubeSettings.DeploymentRuntimeClass = deploymentRuntimeClass diff --git a/config.go b/config.go index f0a039750..392904fcf 100644 --- a/config.go +++ b/config.go @@ -5,9 +5,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - types "github.com/akash-network/node/types/v1beta2" - "github.com/akash-network/node/validation/constants" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" + "github.com/akash-network/akash-api/go/node/types/constants" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/bidengine" ) diff --git a/event/events.go b/event/events.go index fcb9dfc4b..47564eb5e 100644 --- a/event/events.go +++ b/event/events.go @@ -1,11 +1,11 @@ package event import ( - maniv2beta1 "github.com/akash-network/node/manifest/v2beta1" sdk "github.com/cosmos/cosmos-sdk/types" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + maniv2beta1 "github.com/akash-network/akash-api/go/manifest/v2beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) // LeaseWon is the data structure that includes leaseID, group and price diff --git a/gateway/rest/client.go b/gateway/rest/client.go index 8d17a0f9e..8ea373a10 100644 --- a/gateway/rest/client.go +++ b/gateway/rest/client.go @@ -24,16 +24,16 @@ import ( cosmosclient "github.com/cosmos/cosmos-sdk/client" sdk "github.com/cosmos/cosmos-sdk/types" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + ctypes "github.com/akash-network/akash-api/go/node/cert/v1beta3" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + ptypes "github.com/akash-network/akash-api/go/node/provider/v1beta3" akashclient "github.com/akash-network/node/client" - manifest "github.com/akash-network/node/manifest/v2beta1" - ctypes "github.com/akash-network/node/x/cert/types/v1beta2" cutils "github.com/akash-network/node/x/cert/utils" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - ptypes "github.com/akash-network/node/x/provider/types/v1beta2" "github.com/akash-network/provider" - cltypes "github.com/akash-network/provider/cluster/types/v1beta2" + cltypes "github.com/akash-network/provider/cluster/types/v1beta3" ) const ( @@ -107,7 +107,7 @@ func newClient(qclient akashclient.QueryClient, addr sdk.Address, certs []tls.Ce } tlsConfig := &tls.Config{ - // must use Hostname rather then Host field as certificate is issued for host without port + // must use Hostname rather than Host field as certificate is issued for host without port ServerName: uri.Hostname(), Certificates: certs, InsecureSkipVerify: true, // nolint: gosec diff --git a/gateway/rest/client_shell.go b/gateway/rest/client_shell.go index ff80e8b4c..8c1be55c2 100644 --- a/gateway/rest/client_shell.go +++ b/gateway/rest/client_shell.go @@ -15,7 +15,7 @@ import ( "k8s.io/client-go/tools/remotecommand" "github.com/akash-network/node/util/wsutil" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) var ( diff --git a/gateway/rest/integration_test.go b/gateway/rest/integration_test.go index e39e1f0b3..a0cdb2cd3 100644 --- a/gateway/rest/integration_test.go +++ b/gateway/rest/integration_test.go @@ -13,19 +13,19 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" qmock "github.com/akash-network/node/client/mocks" - akashmanifest "github.com/akash-network/node/manifest/v2beta1" + akashmanifest "github.com/akash-network/akash-api/go/manifest/v2beta2" "github.com/akash-network/node/testutil" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - providertypes "github.com/akash-network/node/x/provider/types/v1beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + providertypes "github.com/akash-network/akash-api/go/node/provider/v1beta3" "github.com/akash-network/provider" pcmock "github.com/akash-network/provider/cluster/mocks" "github.com/akash-network/provider/cluster/operatorclients" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" pmmock "github.com/akash-network/provider/manifest/mocks" pmock "github.com/akash-network/provider/mocks" - "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" testutilrest "github.com/akash-network/provider/testutil/rest" ) @@ -151,30 +151,30 @@ func mockManifestGroups(m integrationMocks, leaseID mtypes.LeaseID) { AvailableReplicas: 0, } m.pcclient.On("LeaseStatus", mock.Anything, leaseID).Return(status, nil) - m.pcclient.On("GetManifestGroup", mock.Anything, leaseID).Return(true, v2beta1.ManifestGroup{ + m.pcclient.On("GetManifestGroup", mock.Anything, leaseID).Return(true, v2beta2.ManifestGroup{ Name: testGroupName, - Services: []v2beta1.ManifestService{{ + Services: []v2beta2.ManifestService{{ Name: testServiceName, Image: testImageName, Args: nil, Env: nil, - Resources: v2beta1.ResourceUnits{ + Resources: v2beta2.ResourceUnits{ CPU: 1000, Memory: "3333", - Storage: []v2beta1.ManifestServiceStorage{{ + Storage: []v2beta2.ManifestServiceStorage{{ Name: "", Size: "4444", }}, }, Count: 1, - Expose: []v2beta1.ManifestServiceExpose{{ + Expose: []v2beta2.ManifestServiceExpose{{ Port: 8080, ExternalPort: 80, Proto: "TCP", Service: testServiceName, Global: true, Hosts: []string{"hello.localhost"}, - HTTPOptions: v2beta1.ManifestServiceExposeHTTPOptions{ + HTTPOptions: v2beta2.ManifestServiceExposeHTTPOptions{ MaxBodySize: 1, ReadTimeout: 2, SendTimeout: 3, diff --git a/gateway/rest/middleware.go b/gateway/rest/middleware.go index fdd7662ca..985402b5c 100644 --- a/gateway/rest/middleware.go +++ b/gateway/rest/middleware.go @@ -15,9 +15,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/tendermint/tendermint/libs/log" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" mquery "github.com/akash-network/node/x/market/query" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) type contextKey int diff --git a/gateway/rest/path.go b/gateway/rest/path.go index 9751299d5..7b6309eba 100644 --- a/gateway/rest/path.go +++ b/gateway/rest/path.go @@ -3,7 +3,7 @@ package rest import ( "fmt" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) const ( diff --git a/gateway/rest/router.go b/gateway/rest/router.go index 4be5dc9b8..4b8d03574 100644 --- a/gateway/rest/router.go +++ b/gateway/rest/router.go @@ -27,18 +27,18 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/tendermint/tendermint/libs/log" - manifest "github.com/akash-network/node/manifest/v2beta1" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" "github.com/akash-network/node/util/wsutil" - manifestValidation "github.com/akash-network/node/validation" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + manifestValidation "github.com/akash-network/akash-api/go/manifest/v2beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider" "github.com/akash-network/provider/cluster" "github.com/akash-network/provider/cluster/kube/builder" kubeclienterrors "github.com/akash-network/provider/cluster/kube/errors" "github.com/akash-network/provider/cluster/operatorclients" - cltypes "github.com/akash-network/provider/cluster/types/v1beta2" + cltypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/cluster/util" "github.com/akash-network/provider/gateway/utils" pmanifest "github.com/akash-network/provider/manifest" diff --git a/gateway/rest/router_migrate.go b/gateway/rest/router_migrate.go index 872ec6f19..c39a51d1c 100644 --- a/gateway/rest/router_migrate.go +++ b/gateway/rest/router_migrate.go @@ -10,7 +10,7 @@ import ( "github.com/tendermint/tendermint/libs/log" "github.com/akash-network/provider/cluster" - clustertypes "github.com/akash-network/provider/cluster/types/v1beta2" + clustertypes "github.com/akash-network/provider/cluster/types/v1beta3" ) type migrateRequestBody struct { diff --git a/gateway/rest/router_migrate_endpoint.go b/gateway/rest/router_migrate_endpoint.go index d60024954..ef5c928e2 100644 --- a/gateway/rest/router_migrate_endpoint.go +++ b/gateway/rest/router_migrate_endpoint.go @@ -7,11 +7,11 @@ import ( "github.com/tendermint/tendermint/libs/log" - manifest "github.com/akash-network/node/manifest/v2beta1" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" "github.com/akash-network/provider/cluster" clusterutil "github.com/akash-network/provider/cluster/util" - "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) type endpointMigrateRequestBody struct { @@ -21,7 +21,7 @@ type endpointMigrateRequestBody struct { } type serviceExposeWithName struct { - expose v2beta1.ManifestServiceExpose + expose v2beta2.ManifestServiceExpose serviceName string proto manifest.ServiceProtocol } diff --git a/gateway/rest/router_migrate_test.go b/gateway/rest/router_migrate_test.go index d6323135e..a291db29f 100644 --- a/gateway/rest/router_migrate_test.go +++ b/gateway/rest/router_migrate_test.go @@ -10,9 +10,9 @@ import ( "github.com/stretchr/testify/require" "github.com/akash-network/node/testutil" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) func TestRouteMigrateHostnameDoesNotExist(t *testing.T) { diff --git a/gateway/rest/router_test.go b/gateway/rest/router_test.go index 9d7bed171..45fdac2c3 100644 --- a/gateway/rest/router_test.go +++ b/gateway/rest/router_test.go @@ -19,24 +19,24 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version" + manifestValidation "github.com/akash-network/akash-api/go/manifest/v2beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + types "github.com/akash-network/akash-api/go/node/market/v1beta3" qmock "github.com/akash-network/node/client/mocks" "github.com/akash-network/node/sdl" "github.com/akash-network/node/testutil" - manifestValidation "github.com/akash-network/node/validation" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - types "github.com/akash-network/node/x/market/types/v1beta2" "github.com/akash-network/provider" kubeclienterrors "github.com/akash-network/provider/cluster/kube/errors" pcmock "github.com/akash-network/provider/cluster/mocks" "github.com/akash-network/provider/cluster/operatorclients" - clustertypes "github.com/akash-network/provider/cluster/types/v1beta2" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + clustertypes "github.com/akash-network/provider/cluster/types/v1beta3" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/gateway/utils" pmmock "github.com/akash-network/provider/manifest/mocks" pmock "github.com/akash-network/provider/mocks" - "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) const ( @@ -123,7 +123,7 @@ func testCertHelper(t *testing.T, test *routerTest) { "Submit", mock.Anything, mock.AnythingOfType("types.DeploymentID"), - mock.AnythingOfType("v2beta1.Manifest"), + mock.AnythingOfType("v2beta2.Manifest"), ).Return(nil) dseq := uint64(testutil.RandRangeInt(1, 1000)) @@ -509,7 +509,7 @@ func TestRoutePutManifestOK(t *testing.T) { Owner: test.caddr.String(), DSeq: dseq, }, - mock.AnythingOfType("v2beta1.Manifest"), + mock.AnythingOfType("v2beta2.Manifest"), ).Return(nil) uri, err := makeURI(test.host, submitManifestPath(dseq)) @@ -550,7 +550,7 @@ func TestRoutePutInvalidManifest(t *testing.T) { DSeq: dseq, }, - mock.AnythingOfType("v2beta1.Manifest"), + mock.AnythingOfType("v2beta2.Manifest"), ).Return(manifestValidation.ErrInvalidManifest) uri, err := makeURI(test.host, submitManifestPath(dseq)) @@ -594,30 +594,30 @@ func mockManifestGroupsForRouterTest(rt *routerTest, leaseID mtypes.LeaseID) { AvailableReplicas: 0, } rt.pcclient.On("LeaseStatus", mock.Anything, leaseID).Return(status, nil) - rt.pcclient.On("GetManifestGroup", mock.Anything, leaseID).Return(true, v2beta1.ManifestGroup{ + rt.pcclient.On("GetManifestGroup", mock.Anything, leaseID).Return(true, v2beta2.ManifestGroup{ Name: testGroupName, - Services: []v2beta1.ManifestService{{ + Services: []v2beta2.ManifestService{{ Name: testServiceName, Image: testImageName, Args: nil, Env: nil, - Resources: v2beta1.ResourceUnits{ + Resources: v2beta2.ResourceUnits{ CPU: 1000, Memory: "3333", - Storage: []v2beta1.ManifestServiceStorage{{ + Storage: []v2beta2.ManifestServiceStorage{{ Name: "", Size: "4444", }}, }, Count: 1, - Expose: []v2beta1.ManifestServiceExpose{{ + Expose: []v2beta2.ManifestServiceExpose{{ Port: 8080, ExternalPort: 80, Proto: "TCP", Service: testServiceName, Global: true, Hosts: []string{"hello.localhost"}, - HTTPOptions: v2beta1.ManifestServiceExposeHTTPOptions{ + HTTPOptions: v2beta2.ManifestServiceExposeHTTPOptions{ MaxBodySize: 1, ReadTimeout: 2, SendTimeout: 3, diff --git a/gateway/rest/server.go b/gateway/rest/server.go index cc5b24012..9c549de21 100644 --- a/gateway/rest/server.go +++ b/gateway/rest/server.go @@ -11,7 +11,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/tendermint/tendermint/libs/log" - ctypes "github.com/akash-network/node/x/cert/types/v1beta2" + ctypes "github.com/akash-network/akash-api/go/node/cert/v1beta3" "github.com/akash-network/provider" "github.com/akash-network/provider/cluster/operatorclients" diff --git a/gateway/rest/types.go b/gateway/rest/types.go index 80ad356e5..abdd138fe 100644 --- a/gateway/rest/types.go +++ b/gateway/rest/types.go @@ -1,7 +1,7 @@ package rest import ( - cltypes "github.com/akash-network/provider/cluster/types/v1beta2" + cltypes "github.com/akash-network/provider/cluster/types/v1beta3" ) type LeasedIPStatus struct { diff --git a/gateway/utils/utils.go b/gateway/utils/utils.go index cb34a87af..e030e4c69 100644 --- a/gateway/utils/utils.go +++ b/gateway/utils/utils.go @@ -6,10 +6,11 @@ import ( "crypto/x509" "time" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/pkg/errors" - ctypes "github.com/akash-network/node/x/cert/types/v1beta2" + sdk "github.com/cosmos/cosmos-sdk/types" + + ctypes "github.com/akash-network/akash-api/go/node/cert/v1beta3" ) func NewServerTLSConfig(ctx context.Context, certs []tls.Certificate, cquery ctypes.QueryClient) (*tls.Config, error) { diff --git a/go.mod b/go.mod index 3fccb9b2c..143290b61 100644 --- a/go.mod +++ b/go.mod @@ -3,102 +3,133 @@ module github.com/akash-network/provider go 1.18 require ( - github.com/akash-network/node v0.22.0 + github.com/akash-network/akash-api v0.0.10 + github.com/akash-network/node v0.23.0-rc4 github.com/avast/retry-go v3.0.0+incompatible github.com/boz/go-lifecycle v0.1.1-0.20190620234137-5139c86739b8 - github.com/cosmos/cosmos-sdk v0.45.9 + github.com/cosmos/cosmos-sdk v0.45.15 github.com/cskr/pubsub v1.0.2 github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f github.com/go-kit/kit v0.12.0 github.com/go-logr/logr v1.2.3 - github.com/go-logr/zapr v1.2.0 + github.com/go-logr/zapr v1.2.3 github.com/golang-jwt/jwt/v4 v4.4.2 + github.com/google/uuid v1.3.0 github.com/gorilla/context v1.1.1 github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 - github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 + github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.12.2 - github.com/prometheus/common v0.34.0 - github.com/rook/rook v1.9.7 - github.com/satori/go.uuid v1.2.0 + github.com/prometheus/client_golang v1.14.0 + github.com/prometheus/common v0.37.0 + github.com/rook/rook v1.11.1 github.com/shopspring/decimal v1.3.1 - github.com/spf13/cobra v1.5.0 + github.com/spf13/cobra v1.6.1 github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.12.0 - github.com/stretchr/testify v1.8.0 - github.com/tendermint/tendermint v0.34.21 - go.uber.org/zap v1.21.0 - golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 + github.com/spf13/viper v1.15.0 + github.com/stretchr/testify v1.8.2 + github.com/tendermint/tendermint v0.34.27 + go.uber.org/zap v1.24.0 + golang.org/x/sync v0.1.0 gopkg.in/yaml.v3 v3.0.1 - k8s.io/api v0.24.2 - k8s.io/apimachinery v0.24.2 - k8s.io/client-go v0.24.2 - k8s.io/code-generator v0.24.2 + k8s.io/api v0.26.1 + k8s.io/apimachinery v0.26.1 + k8s.io/client-go v0.26.1 + k8s.io/code-generator v0.26.1 k8s.io/kubectl v0.24.2 k8s.io/metrics v0.24.2 sigs.k8s.io/kind v0.17.0 ) +replace ( + // use cosmos fork of keyring + github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 + + github.com/cosmos/ledger-cosmos-go => github.com/akash-network/ledger-go/cosmos v0.14.3 + + // Fix upstream GHSA-h395-qcrw-5vmq vulnerability. + // TODO Remove it: https://github.com/cosmos/cosmos-sdk/issues/10409 + github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.8.1 + + github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 + github.com/tendermint/tendermint => github.com/akash-network/cometbft v0.34.27-akash + + github.com/zondax/hid => github.com/troian/hid v0.13.2 + + github.com/zondax/ledger-go => github.com/akash-network/ledger-go v0.14.3 + +//google.golang.org/grpc => google.golang.org/grpc v1.33.2 +) + require ( - cloud.google.com/go/kms v1.4.0 // indirect - cloud.google.com/go/monitoring v1.5.0 // indirect - filippo.io/edwards25519 v1.0.0-beta.2 // indirect - github.com/99designs/keyring v1.1.6 // indirect + cosmossdk.io/api v0.2.6 // indirect + cosmossdk.io/core v0.5.1 // indirect + cosmossdk.io/depinject v1.0.0-alpha.3 // indirect + filippo.io/edwards25519 v1.0.0 // indirect + github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect + github.com/99designs/keyring v1.2.1 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect - github.com/BurntSushi/toml v1.2.0 // indirect + github.com/BurntSushi/toml v1.2.1 // indirect github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect - github.com/DataDog/zstd v1.4.5 // indirect - github.com/PuerkitoBio/purell v1.1.1 // indirect - github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect + github.com/DataDog/zstd v1.5.0 // indirect + github.com/HdrHistogram/hdrhistogram-go v1.1.2 // indirect github.com/Workiva/go-datastructures v1.0.53 // indirect github.com/alessio/shellescape v1.4.1 // indirect - github.com/armon/go-metrics v0.4.0 // indirect + github.com/armon/go-metrics v0.4.1 // indirect github.com/armon/go-radix v1.0.0 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bgentry/speakeasy v0.1.0 // indirect - github.com/blang/semver v3.5.1+incompatible // indirect - github.com/btcsuite/btcd v0.22.1 // indirect + github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect + github.com/blang/semver/v4 v4.0.0 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/cenkalti/backoff/v3 v3.2.2 // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect - github.com/coinbase/rosetta-sdk-go v0.7.0 // indirect - github.com/confio/ics23/go v0.7.0 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cockroachdb/errors v1.9.1 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/pebble v0.0.0-20220817183557-09c6e030a677 // indirect + github.com/cockroachdb/redact v1.1.3 // indirect + github.com/coinbase/rosetta-sdk-go v0.7.9 // indirect + github.com/cometbft/cometbft-db v0.7.0 // indirect + github.com/confio/ics23/go v0.9.0 // indirect github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf // indirect - github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect + github.com/coreos/pkg v0.0.0-20220810130054-c7d1c02cb6cf // indirect github.com/cosmos/btcutil v1.0.4 // indirect + github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32 // indirect + github.com/cosmos/cosmos-proto v1.0.0-beta.1 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gorocksdb v1.2.0 // indirect - github.com/cosmos/iavl v0.19.3 // indirect - github.com/cosmos/ibc-go/v3 v3.1.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.11.1 // indirect + github.com/cosmos/iavl v0.19.5 // indirect + github.com/cosmos/ibc-go/v3 v3.4.0 // indirect + github.com/cosmos/ledger-cosmos-go v0.12.2 // indirect github.com/creachadair/taskgroup v0.3.2 // indirect - github.com/danieljoos/wincred v1.1.0 // indirect + github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/dgraph-io/badger/v2 v2.2007.2 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect + github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.0.3 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/dustin/go-humanize v1.0.0 // indirect - github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b // indirect - github.com/emicklei/go-restful v2.10.0+incompatible // indirect - github.com/evanphx/json-patch v4.12.0+incompatible // indirect + github.com/dvsekhvalnov/jose2go v1.5.0 // indirect + github.com/emicklei/go-restful/v3 v3.10.0 // indirect + github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/fatih/color v1.13.0 // indirect github.com/felixge/httpsnoop v1.0.2 // indirect - github.com/fsnotify/fsnotify v1.5.4 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/getsentry/sentry-go v0.17.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect - github.com/go-openapi/jsonreference v0.19.5 // indirect - github.com/go-openapi/swag v0.19.14 // indirect + github.com/go-openapi/jsonreference v0.20.0 // indirect + github.com/go-openapi/swag v0.22.3 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/gateway v1.1.0 // indirect github.com/gogo/protobuf v1.3.3 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/google/btree v1.0.1 // indirect - github.com/google/gnostic v0.5.7-v3refs // indirect - github.com/google/go-cmp v0.5.8 // indirect + github.com/google/btree v1.1.2 // indirect + github.com/google/gnostic v0.6.9 // indirect + github.com/google/go-cmp v0.5.9 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/orderedcode v0.0.1 // indirect github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2 // indirect @@ -110,47 +141,50 @@ require ( github.com/gtank/ristretto255 v0.1.2 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-hclog v1.2.0 // indirect + github.com/hashicorp/go-hclog v1.3.1 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-plugin v1.4.3 // indirect - github.com/hashicorp/go-retryablehttp v0.7.0 // indirect + github.com/hashicorp/go-plugin v1.4.5 // indirect + github.com/hashicorp/go-retryablehttp v0.7.1 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-secure-stdlib/mlock v0.1.2 // indirect - github.com/hashicorp/go-secure-stdlib/parseutil v0.1.3 // indirect + github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-sockaddr v1.0.2 // indirect - github.com/hashicorp/go-uuid v1.0.2 // indirect + github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/golang-lru v0.5.4 // indirect - github.com/hashicorp/hcl v1.0.1-vault-3 // indirect - github.com/hashicorp/vault v1.10.0 // indirect - github.com/hashicorp/vault/api v1.4.1 // indirect - github.com/hashicorp/vault/sdk v0.4.2-0.20220321211954-d7083ad326db // indirect - github.com/hashicorp/yamux v0.0.0-20211028200310-0bc27b27de87 // indirect - github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 // indirect + github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect + github.com/hashicorp/vault v1.12.2 // indirect + github.com/hashicorp/vault/api v1.8.2 // indirect + github.com/hashicorp/vault/api/auth/approle v0.3.0 // indirect + github.com/hashicorp/vault/sdk v0.6.1-0.20221102145943-1e9b0a1225c3 // indirect + github.com/hashicorp/yamux v0.1.1 // indirect + github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect github.com/imdario/mergo v0.3.13 // indirect github.com/improbable-eng/grpc-web v0.14.1 // indirect - github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/jmhodges/levigo v1.0.1-0.20191019112844-b572e7f4cdac // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d // indirect - github.com/klauspost/compress v1.15.9 // indirect - github.com/kube-object-storage/lib-bucket-provisioner v0.0.0-20220420154035-5eb5ff03d30a // indirect + github.com/klauspost/compress v1.15.11 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/kube-object-storage/lib-bucket-provisioner v0.0.0-20221122204822-d1a8c34382f1 // indirect github.com/lib/pq v1.10.6 // indirect - github.com/libopenstorage/secrets v0.0.0-20210709082113-dde442ea20ec // indirect + github.com/libopenstorage/secrets v0.0.0-20220823020833-2ecadaf59d8a // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/magiconair/properties v1.8.6 // indirect - github.com/mailru/easyjson v0.7.6 // indirect - github.com/mattn/go-colorable v0.1.12 // indirect - github.com/mattn/go-isatty v0.0.14 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect - github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643 // indirect + github.com/linxGnu/grocksdb v1.7.10 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.16 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect + github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/mitchellh/go-testing-interface v1.14.0 // indirect + github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/go-wordwrap v1.0.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect @@ -162,80 +196,67 @@ require ( github.com/oklog/run v1.1.0 // indirect github.com/openshift/api v0.0.0-20210105115604-44119421ec6b // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.2 // indirect + github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/procfs v0.7.3 // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/procfs v0.8.0 // indirect github.com/rakyll/statik v0.1.7 // indirect - github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect + github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/regen-network/cosmos-proto v0.3.1 // indirect + github.com/rogpeppe/go-internal v1.9.0 // indirect github.com/rs/cors v1.8.2 // indirect github.com/rs/zerolog v1.27.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect - github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa // indirect - github.com/spf13/afero v1.8.2 // indirect + github.com/sasha-s/go-deadlock v0.3.1 // indirect + github.com/sirupsen/logrus v1.9.0 // indirect + github.com/spf13/afero v1.9.3 // indirect github.com/spf13/cast v1.5.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/stretchr/objx v0.4.0 // indirect - github.com/subosito/gotenv v1.4.0 // indirect - github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca // indirect - github.com/tendermint/btcd v0.1.1 // indirect - github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 // indirect + github.com/stretchr/objx v0.5.0 // indirect + github.com/subosito/gotenv v1.4.2 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect + github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tendermint/tm-db v0.6.7 // indirect - github.com/zondax/hid v0.9.0 // indirect - github.com/zondax/ledger-go v0.12.2 // indirect + github.com/tidwall/btree v1.5.0 // indirect + github.com/zondax/hid v0.9.1 // indirect + github.com/zondax/ledger-go v0.14.1 // indirect go.etcd.io/bbolt v1.3.6 // indirect - go.uber.org/atomic v1.9.0 // indirect + go.step.sm/crypto v0.26.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.8.0 // indirect - golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e // indirect - golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/net v0.0.0-20220726230323-06994584191e // indirect - golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 // indirect - golang.org/x/sys v0.0.0-20220727055044-e65921a090b8 // indirect - golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect - golang.org/x/text v0.3.7 // indirect - golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect - golang.org/x/tools v0.1.12 // indirect + golang.org/x/crypto v0.6.0 // indirect + golang.org/x/exp v0.0.0-20221019170559-20944726eadf // indirect + golang.org/x/mod v0.7.0 // indirect + golang.org/x/net v0.7.0 // indirect + golang.org/x/oauth2 v0.5.0 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/term v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect + golang.org/x/time v0.3.0 // indirect + golang.org/x/tools v0.4.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b // indirect - google.golang.org/grpc v1.48.0 // indirect - google.golang.org/protobuf v1.28.0 // indirect + google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc // indirect + google.golang.org/grpc v1.53.0 // indirect + google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 // indirect gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/ini.v1 v1.66.6 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - k8s.io/gengo v0.0.0-20211129171323-c02415ce4185 // indirect - k8s.io/klog/v2 v2.60.1 // indirect - k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42 // indirect - k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 // indirect + k8s.io/gengo v0.0.0-20220902162205-c0856e24416d // indirect + k8s.io/klog/v2 v2.80.1 // indirect + k8s.io/kube-openapi v0.0.0-20221110221610-a28e98eb7c70 // indirect + k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect nhooyr.io/websocket v1.8.6 // indirect - sigs.k8s.io/controller-runtime v0.11.2 // indirect - sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect + sigs.k8s.io/controller-runtime v0.14.1 // indirect + sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect ) -replace ( - github.com/99designs/keyring => github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 - - // dragonberry patch - github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 - github.com/cosmos/ledger-cosmos-go => github.com/akash-network/ledger-go/cosmos v0.14.0 - - github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 - github.com/tendermint/tendermint => github.com/akash-network/tendermint v0.34.21-akash.2 - - github.com/zondax/hid => github.com/troian/hid v0.11.0 - github.com/zondax/ledger-go => github.com/akash-network/ledger-go v0.14.0 - - google.golang.org/grpc => google.golang.org/grpc v1.33.2 -) - // these replaces required for rook to work replace ( github.com/googleapis/gnostic => github.com/googleapis/gnostic v0.4.1 diff --git a/go.sum b/go.sum index 214b62459..726e188f8 100644 --- a/go.sum +++ b/go.sum @@ -3,6 +3,7 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts= +cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= @@ -23,36 +24,22 @@ cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPT cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= -cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= -cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= -cloud.google.com/go v0.100.2 h1:t9Iw5QH5v4XtlEQaCtUY7x6sCABps8sW0acw7e2WQ6Y= -cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go v0.105.0 h1:DNtEKRBAAzeS4KyIory52wWHuClNaXJ5x1F7xa4q+5Y= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= -cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= -cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= -cloud.google.com/go/compute v1.6.1 h1:2sMmt8prCn7DPaG4Pmh0N3Inmc8cT8ae5k1M6VJ9Wqc= +cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= +cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/iam v0.1.0 h1:W2vbGCrE3Z7J/x3WXLxxGl9LMSB2uhsAA7Ss/6u/qRY= -cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= -cloud.google.com/go/kms v1.4.0 h1:iElbfoE61VeLhnZcGOltqL8HIly8Nhbe5t6JlH9GXjo= -cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= -cloud.google.com/go/monitoring v1.5.0 h1:ZltYv8e69fJVga7RTthUBGdx4+Pwz6GRF1V3zylERl4= -cloud.google.com/go/monitoring v1.5.0/go.mod h1:/o9y8NYX5j91JjD/JvGLYbi86kL11OjyJXq2XziLJu4= +cloud.google.com/go/iam v0.8.0 h1:E2osAkZzxI/+8pZcxVLcDtAQx/u+hZXVryUaYQ5O0Kk= +cloud.google.com/go/kms v1.8.0 h1:VrJLOsMRzW7IqTTYn+OYupqF3iKSE060Nrn+PECrYjg= +cloud.google.com/go/monitoring v1.8.0 h1:c9riaGSPQ4dUKWB+M1Fl0N+iLxstMbCktdEwYSPGDvA= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -64,15 +51,28 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= code.cloudfoundry.org/gofileutils v0.0.0-20170111115228-4d0c80011a0f/go.mod h1:sk5LnIjB/nIEU7yP5sDQExVm62wu0pBh3yrElngUisI= +collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= +cosmossdk.io/api v0.2.6 h1:AoNwaLLapcLsphhMK6+o0kZl+D6MMUaHVqSdwinASGU= +cosmossdk.io/api v0.2.6/go.mod h1:u/d+GAxil0nWpl1XnQL8nkziQDIWuBDhv8VnDm/s6dI= +cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= +cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= +cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= +cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0-beta.2 h1:/BZRNzm8N4K4eWfK28dL4yescorxtO7YG1yun8fy+pI= -filippo.io/edwards25519 v1.0.0-beta.2/go.mod h1:X+pm78QAUPtFLi1z9PYIlS/bdDnvbCOGKtZ+ACWEf7o= +filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= +filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= +filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= git.apache.org/thrift.git v0.12.0/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= -github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= -github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= +git.sr.ht/~sircmpwn/getopt v0.0.0-20191230200459-23622cc906b3/go.mod h1:wMEGFFFNuPos7vHmWXfszqImLppbc0wEhh6JBfJIUgw= +git.sr.ht/~sircmpwn/go-bare v0.0.0-20210406120253-ab86bc2846d9/go.mod h1:BVJwbDfVjCjoFiKrhkei6NdGcZYpkDkdyCdg1ukytRA= +github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= +github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= +github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/Azure/azure-sdk-for-go v36.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v61.4.0+incompatible h1:BF2Pm3aQWIa6q9KmxyF1JYKYXtVw67vtvu2Wd54NGuY= -github.com/Azure/azure-storage-blob-go v0.7.0/go.mod h1:f9YQKtsG1nMisotuTPpO0tjNuEjKRYAcJU8/ydDI++4= +github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU= +github.com/Azure/azure-sdk-for-go/sdk/azcore v0.21.1/go.mod h1:fBF9PQNqB8scdgpZ3ufzaLntG0AG7C1WjPMsiFOmfHM= +github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3/go.mod h1:KLF4gFr6DcKFZwSuH8w8yEK6DpFl3LP5rhdvAb7Yz5I= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0/go.mod h1:tPaiy8S5bQ+S5sOiDlINkp7+Ef339+Nz5L5XO+cnOHo= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= @@ -83,18 +83,17 @@ github.com/Azure/go-autorest/autorest v0.9.2/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+B github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= -github.com/Azure/go-autorest/autorest v0.11.24 h1:1fIGgHKqVm54KIPT+q8Zmd1QlVsmHqeUGso5qm2BqqE= +github.com/Azure/go-autorest/autorest v0.11.28 h1:ndAExarwr5Y+GaHE6VCaY1kyS/HwwGGyuimVhWsHOEM= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= github.com/Azure/go-autorest/autorest/adal v0.6.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= github.com/Azure/go-autorest/autorest/adal v0.7.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= -github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= -github.com/Azure/go-autorest/autorest/adal v0.9.18 h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ= +github.com/Azure/go-autorest/autorest/adal v0.9.20 h1:gJ3E98kMpFB1MFqQCvA1yFab8vthOeD4VlFRQULxahg= github.com/Azure/go-autorest/autorest/azure/auth v0.4.0/go.mod h1:Oo5cRhLvZteXzI2itUm5ziqsoIxRkzrt3t61FeZaS18= -github.com/Azure/go-autorest/autorest/azure/auth v0.5.11 h1:P6bYXFoao05z5uhOQzbC3Qd8JqF3jUoocoTeIxkp2cA= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.12 h1:wkAZRgT/pn8HhFyzfe9UnqOjJYqlembgCTi72Bm/xKk= github.com/Azure/go-autorest/autorest/azure/cli v0.3.0/go.mod h1:rNYMNAefZMRowqCV0cVhr/YDW5dD7afFq9nXAXL4ykE= github.com/Azure/go-autorest/autorest/azure/cli v0.4.5 h1:0W/yGmFdTIT77fvdlGZ0LMISoLHFJ7Tx4U0yeB+uFs4= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= @@ -119,21 +118,30 @@ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUM github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.0.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0= -github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= +github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= +github.com/CloudyKit/fastprinter v0.0.0-20170127035650-74b38d55f37a/go.mod h1:EFZQ978U7x8IRnstaskI3IysnWY5Ao3QgZUKOXlsAdw= +github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= +github.com/CloudyKit/jet v2.1.3-0.20180809161101-62edd43e4f88+incompatible/go.mod h1:HPYO+50pSWkPoj9Q/eq0aRGByCL6ScRlUmiEX5Zgm+w= +github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/DataDog/zstd v1.4.4/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= -github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/DataDog/zstd v1.5.0 h1:+K/VEwIAaPcHiMtQvpLD4lqW7f0Gk3xdYZmI1hD+CXo= +github.com/DataDog/zstd v1.5.0/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= +github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/IBM/keyprotect-go-client v0.5.1/go.mod h1:5TwDM/4FRJq1ZOlwQL1xFahLWQ3TveR88VmL1u3njyI= github.com/Jeffail/gabs v1.1.1 h1:V0uzR08Hj22EX8+8QMhyI9sX2hwRu+/RJhJUmnwda/E= github.com/Jeffail/gabs v1.1.1/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= +github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= +github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= @@ -141,7 +149,7 @@ github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF0 github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= github.com/Microsoft/go-winio v0.4.13/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= -github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= +github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= @@ -151,18 +159,16 @@ github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/SAP/go-hdb v0.14.1/go.mod h1:7fdQLVC2lER3urZLjZCm0AuMQfApof92n3aylBPEkMo= github.com/Sectorbob/mlab-ns2 v0.0.0-20171030222938-d3aa0c295a8a/go.mod h1:D73UAuEPckrDorYZdtlCu2ySOLuPB5W4rhIkmmc/XbI= +github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= -github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= -github.com/VictoriaMetrics/fastcache v1.5.7/go.mod h1:ptDBkNMQI4RtmVo8VS/XwRY6RoTu1dAWCbrk+6WsEM8= +github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/Workiva/go-datastructures v1.0.53 h1:J6Y/52yX10Xc5JjXmGtWoSSxs3mZnGSaq37xZZh7Yig= @@ -173,14 +179,19 @@ github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/akash-network/ledger-go v0.14.0 h1:yuPlcC3QQYGE2wf/5FZQXXfw68kWO8srbadx2NU/vEU= -github.com/akash-network/ledger-go v0.14.0/go.mod h1:/VvYUunOmwkxig4LjNaSfvMSEyVs3UcaMgr78zL96ZA= -github.com/akash-network/ledger-go/cosmos v0.14.0 h1:vzgQ268KgvwKQBPSYvDp1To6eLJCeYYVf1OE68izTxc= -github.com/akash-network/ledger-go/cosmos v0.14.0/go.mod h1:6GB6QT+mWZkfAY/GkMSq6BRt0KWse8aBj39G8WFimPQ= -github.com/akash-network/node v0.22.0 h1:T4MZwJpDjyDJdYQU/aEb+jLbiXKNFr73oK8gM5xSUaU= -github.com/akash-network/node v0.22.0/go.mod h1:oVlRWnpGjmqBCOPTe8xWqkmbGz22+LCv0NmgmswBv/Q= -github.com/akash-network/tendermint v0.34.21-akash.2 h1:+DeMSHmnOy9twepL9/8cy5Mhig7fhIgvzZDzLJ8+oO8= -github.com/akash-network/tendermint v0.34.21-akash.2/go.mod h1:XDvfg6U7grcFTDx7VkzxnhazQ/bspGJAn4DZ6DcLLjQ= +github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/akash-network/akash-api v0.0.10 h1:tminfU9G5vE1ZutlFEUdcifUJvlg5lkT+F0OWytNMSM= +github.com/akash-network/akash-api v0.0.10/go.mod h1:e1QqkOFwxHKf88I3U5bPOmREdfHHHX2bY27ZZOFnTX4= +github.com/akash-network/cometbft v0.34.27-akash h1:V1dApDOr8Ee7BJzYyQ7Z9VBtrAul4+baMeA6C49dje0= +github.com/akash-network/cometbft v0.34.27-akash/go.mod h1:BcCbhKv7ieM0KEddnYXvQZR+pZykTKReJJYf7YC7qhw= +github.com/akash-network/ledger-go v0.14.3 h1:LCEFkTfgGA2xFMN2CtiKvXKE7dh0QSM77PJHCpSkaAo= +github.com/akash-network/ledger-go v0.14.3/go.mod h1:NfsjfFvno9Kaq6mfpsKz4sqjnAVVEsVsnBJfKB4ueAs= +github.com/akash-network/ledger-go/cosmos v0.14.3 h1:bEI9jLHM+Lm55idi4RfJlDez4/rVJs7E1MT0U2whYqI= +github.com/akash-network/ledger-go/cosmos v0.14.3/go.mod h1:SjAfheQTE4rWk0ir+wjbOWxwj8nc8E4AZ08NdsvYG24= +github.com/akash-network/node v0.23.0-rc4 h1:m/amTj/EgjVm07GLWTn6IFleszNY58+LOp8rKnJeY+A= +github.com/akash-network/node v0.23.0-rc4/go.mod h1:5+/CzyGXd0xv/QfIg1ps75NTwbK/QlO458riQPjiVxs= +github.com/alecthomas/participle/v2 v2.0.0-alpha7 h1:cK4vjj0VSgb3lN1nuKA5F7dw+1s1pWBe5bx7nNCnN+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -189,16 +200,16 @@ github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk5 github.com/alessio/shellescape v1.4.1 h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0= github.com/alessio/shellescape v1.4.1/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190412020505-60e2075261b6/go.mod h1:T9M45xf79ahXVelWoOBmH0y4aC1t5kXO5BxwyakgIGA= -github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190620160927-9418d7b0cd0f h1:oRD16bhpKNAanfcDDVU+J0NXqsgHIvGbbe/sy+r6Rs0= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190620160927-9418d7b0cd0f/go.mod h1:myCDvQSzCW+wB1WAlocEru4wMGJxy+vlxHdhegi1CDQ= +github.com/aliyun/alibaba-cloud-sdk-go v1.61.1499 h1:P2FUu1/xkj4abuHcqdRQO9ZAYc9hSWG5c5gifsU/Ogc= github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apple/foundationdb/bindings/go v0.0.0-20190411004307-cd5c9d91fad2/go.mod h1:OMVSB21p9+xQUIqlGizHPZfjK+SHws1ht+ZytVDoz9U= -github.com/aristanetworks/goarista v0.0.0-20170210015632-ea17b1a17847/go.mod h1:D/tb0zPVXnP7fmsLZjtdUhSsumbK/ij54UXjjVgMGxQ= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= @@ -206,8 +217,8 @@ github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQh github.com/armon/go-metrics v0.3.0/go.mod h1:zXjbSimjXTd7vOpY8B0/2LpvNvDoXBuplAD+gJD3GYs= github.com/armon/go-metrics v0.3.1/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-metrics v0.3.9/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= -github.com/armon/go-metrics v0.4.0 h1:yCQqn7dwca4ITXb+CbubHmedzaQYHhNhrEXLYUeEe8Q= -github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= +github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-proxyproto v0.0.0-20190211145416-68259f75880e/go.mod h1:QmP9hvJ91BbJmGVGSbutW19IC0Q9phDCLGaomwTJbgU= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= @@ -217,16 +228,26 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkY github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY= +github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0= github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.25.41/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.25.48/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.40.45 h1:QN1nsY27ssD/JmW4s83qmSb+uL6DG4GmCDzjmJB4xUI= +github.com/aws/aws-sdk-go v1.44.210 h1:/cqRMHSSgzLEKILIDGwhaX2hiIpyRurw7MRy6aaSufg= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= +github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= +github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= +github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8= +github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4= +github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= +github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= +github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= +github.com/axiomhq/hyperloglog v0.0.0-20220105174342-98591331716a h1:eqjiAL3qooftPm8b9C1GsSSRcmlw7iOva8vdBTmV2PY= +github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= @@ -235,34 +256,41 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= +github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boz/go-lifecycle v0.1.1-0.20190620234137-5139c86739b8 h1:0SsyL78bVw6RwFKVKFHv8kdREXxuGbQKDlo7FVy7Zss= github.com/boz/go-lifecycle v0.1.1-0.20190620234137-5139c86739b8/go.mod h1:zdagAUMcC2C0OmQkBlJZFV77uF4GCVaGphAexGi7oho= github.com/briankassouf/jose v0.9.2-0.20180619214549-d2569464773f/go.mod h1:HQhVmdUf7dBNwIIdBTivnCDxcf6IZY3/zrb+uKSJz6Y= -github.com/btcsuite/btcd v0.0.0-20171128150713-2e60448ffcc6/go.mod h1:Dmm/EzmjnCiweXmzRIAiUWCInVmPgjkzgv5k4tVyXiQ= github.com/btcsuite/btcd v0.0.0-20190315201642-aa6e0f35703c/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= -github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= +github.com/btcsuite/btcd v0.21.0-beta.0.20201114000516-e9c7a5ac6401/go.mod h1:Sv4JPQ3/M+teHz9Bo5jBpkNcP0x6r7rdihlNL/7tTAs= github.com/btcsuite/btcd v0.22.1 h1:CnwP9LM/M9xuRrGSCGeMVs9iv09uMqwsVX7EeIpgV2c= github.com/btcsuite/btcd v0.22.1/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y= +github.com/btcsuite/btcd/btcec/v2 v2.1.2/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= +github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= +github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= -github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce h1:YtWJF7RHm2pYCvA5t0RPmAaLUhREsKuKd+SLhxFbFeQ= +github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= @@ -270,22 +298,26 @@ github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= +github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/cenkalti/backoff/v3 v3.2.2 h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M= github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= +github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/centrify/cloud-golang-sdk v0.0.0-20190214225812-119110094d0f/go.mod h1:C0rtzmGXgN78pYR0tGJFhtHgkbAs0lIbHwkB81VxDQE= github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/chrismalek/oktasdk-go v0.0.0-20181212195951-3430665dfaa0 h1:CWU8piLyqoi9qXEUwzOh5KFKGgmSU5ZhktJyYcq6ryQ= github.com/chrismalek/oktasdk-go v0.0.0-20181212195951-3430665dfaa0/go.mod h1:5d8DqS60xkj9k3aXfL3+mXBH0DPYO0FQjcKosxl+b/Q= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= @@ -295,16 +327,48 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D github.com/circonus-labs/circonusllhist v0.1.3 h1:TJH+oke8D16535+jHExHj4nQvzlZrj7ug5D7I/orNUA= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= -github.com/cloudflare/cloudflare-go v0.10.2-0.20190916151808-a80f83b9add9/go.mod h1:1MxXX1Ux4x6mqPmjkUgTP1CdXIBXKX7T+Jk9Gxrmx+U= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304= github.com/cloudfoundry-community/go-cfclient v0.0.0-20190201205600-f136f9222381/go.mod h1:e5+USP2j8Le2M0Jo3qKPFnNhuo1wueU4nWHCXBOfQ14= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= +github.com/cockroachdb/apd/v3 v3.1.0 h1:MK3Ow7LH0W8zkd5GMKA1PvS9qG3bWFI95WaVNfyZJ/w= github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/datadriven v1.0.0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4= +github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.6.1/go.mod h1:tm6FTP5G81vwJ5lC0SizQo374JNCOPrHyXGitRJoDqM= +github.com/cockroachdb/errors v1.8.1/go.mod h1:qGwQn6JmZ+oMjuLwjWzUNqblqk0xl4CVV3SQbGwK7Ac= +github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= +github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= +github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v0.0.0-20220817183557-09c6e030a677 h1:qbb/AE938DFhOajUYh9+OXELpSF9KZw2ZivtmW6eX1Q= +github.com/cockroachdb/pebble v0.0.0-20220817183557-09c6e030a677/go.mod h1:890yq1fUb9b6dGNwssgeUO5vQV9qfXnCPxAJhBQfXw0= +github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= +github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= -github.com/coinbase/rosetta-sdk-go v0.7.0 h1:lmTO/JEpCvZgpbkOITL95rA80CPKb5CtMzLaqF2mCNg= -github.com/coinbase/rosetta-sdk-go v0.7.0/go.mod h1:7nD3oBPIiHqhRprqvMgPoGxe/nyq3yftRmpsy29coWE= +github.com/coinbase/kryptology v1.8.0/go.mod h1:RYXOAPdzOGUe3qlSFkMGn58i3xUA8hmxYHksuq+8ciI= +github.com/coinbase/rosetta-sdk-go v0.7.9 h1:lqllBjMnazTjIqYrOGv8h8jxjg9+hJazIGZr9ZvoCcA= +github.com/coinbase/rosetta-sdk-go v0.7.9/go.mod h1:0/knutI7XGVqXmmH4OQD8OckFrbQ8yMsUZTG7FXCR2M= +github.com/cometbft/cometbft-db v0.7.0 h1:uBjbrBx4QzU0zOEnU8KxoDl18dMNgDh+zZRUE0ucsbo= +github.com/cometbft/cometbft-db v0.7.0/go.mod h1:yiKJIm2WKrt6x8Cyxtq9YTEcIMPcEe4XPxhgX59Fzf0= +github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= +github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= +github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= +github.com/consensys/bavard v0.1.8-0.20210915155054-088da2f7f54a/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q= +github.com/consensys/gnark-crypto v0.5.3/go.mod h1:hOdPlWQV1gDLp7faZVeg8Y0iEPFaOUnCc4XeCCk96p0= github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= @@ -324,25 +388,28 @@ github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/coreos/pkg v0.0.0-20220810130054-c7d1c02cb6cf h1:GOPo6vn/vTN+3IwZBvXX0y5doJfSC7My0cdzelyOCsQ= +github.com/coreos/pkg v0.0.0-20220810130054-c7d1c02cb6cf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.4 h1:n7C2ngKXo7UC9gNyMNLbzqz7Asuf+7Qv4gnX/rOdQ44= github.com/cosmos/btcutil v1.0.4/go.mod h1:Ffqc8Hn6TJUdDgHBwIZLtrLQC1KdJ9jGJl/TvgUaxbU= -github.com/cosmos/cosmos-sdk v0.45.9 h1:Z4s1EZL/mfM8uSSZr8WmyEbWp4hqbWVI5sAIFR432KY= -github.com/cosmos/cosmos-sdk v0.45.9/go.mod h1:Z5M4TX7PsHNHlF/1XanI2DIpORQ+Q/st7oaeufEjnvU= -github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 h1:iKclrn3YEOwk4jQHT2ulgzuXyxmzmPczUalMwW4XH9k= -github.com/cosmos/cosmos-sdk/ics23/go v0.8.0/go.mod h1:2a4dBq88TUoqoWAU5eu0lGvpFP3wWDPgdHPargtyw30= +github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32 h1:zlCp9n3uwQieELltZWHRmwPmPaZ8+XoL2Sj+A2YJlr8= +github.com/cosmos/cosmos-db v0.0.0-20221226095112-f3c38ecb5e32/go.mod h1:kwMlEC4wWvB48zAShGKVqboJL6w4zCLesaNQ3YLU2BQ= +github.com/cosmos/cosmos-proto v1.0.0-beta.1 h1:iDL5qh++NoXxG8hSy93FdYJut4XfgbShIocllGaXx/0= +github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= +github.com/cosmos/cosmos-sdk v0.45.15 h1:yyLZ9PylnR1DADf9FYGxnn8t3+Y5K2mMUXNUN38MI5A= +github.com/cosmos/cosmos-sdk v0.45.15/go.mod h1:bScuNwWAP0TZJpUf+SHXRU3xGoUPp+X9nAzfeIXts40= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y= github.com/cosmos/gorocksdb v1.2.0/go.mod h1:aaKvKItm514hKfNJpUJXnnOWeBnk2GL4+Qw9NHizILw= -github.com/cosmos/iavl v0.19.3 h1:cESO0OwTTxQm5rmyESKW+zESheDUYI7CcZDWWDwnuxg= -github.com/cosmos/iavl v0.19.3/go.mod h1:X9PKD3J0iFxdmgNLa7b2LYWdsGd90ToV5cAONApkEPw= -github.com/cosmos/ibc-go/v3 v3.1.0 h1:aVPqkrGBluz6t9+d/sLZIG/zQ9O1KJzVeR4UlL/IFTQ= -github.com/cosmos/ibc-go/v3 v3.1.0/go.mod h1:DbOlOa4yKumaHGKApKkJN90L88PCjSD9ZBdAfL9tT40= -github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 h1:DdzS1m6o/pCqeZ8VOAit/gyATedRgjvkVI+UCrLpyuU= -github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76/go.mod h1:0mkLWIoZuQ7uBoospo5Q9zIpqq6rYCPJDSUdeCJvPM8= +github.com/cosmos/iavl v0.19.5 h1:rGA3hOrgNxgRM5wYcSCxgQBap7fW82WZgY78V9po/iY= +github.com/cosmos/iavl v0.19.5/go.mod h1:X9PKD3J0iFxdmgNLa7b2LYWdsGd90ToV5cAONApkEPw= +github.com/cosmos/ibc-go/v3 v3.4.0 h1:ha3cqEG36pqMWqA1D+kxDWBTZXpeFMd/aZIQF7I0xro= +github.com/cosmos/ibc-go/v3 v3.4.0/go.mod h1:VwB/vWu4ysT5DN2aF78d17LYmx3omSAdq6gpKvM7XRA= +github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= +github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= @@ -356,48 +423,63 @@ github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= -github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U= -github.com/danieljoos/wincred v1.1.0 h1:3RNcEpBg4IhIChZdFRSdlQt1QjCp1sMAPIrOnm7Yf8g= -github.com/danieljoos/wincred v1.1.0/go.mod h1:XYlo+eRTsVA9aHGp7NGjFkPla4m+DCL7hqDjlFjiygg= +github.com/cucumber/common/gherkin/go/v22 v22.0.0 h1:4K8NqptbvdOrjL9DEea6HFjSpbdT9+Q5kgLpmmsHYl0= +github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts= +github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= +github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= +github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= +github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= -github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= +github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= +github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= +github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= github.com/denisenkom/go-mssqldb v0.0.0-20190412130859-3b1d194e553a/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM= github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba h1:p6poVbjHDkKa+wtC8frBMwQtT3BmqGYBjzMwJ63tuR4= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dgraph-io/badger/v2 v2.2007.2 h1:EjjK0KqwaFMlPin1ajhP943VPENHJdEz1KLIegjaI3k= -github.com/dgraph-io/badger/v2 v2.2007.2/go.mod h1:26P/7fbL4kUZVEVKLAKXkBXKOydDmM2p1e+NhhnBCAE= +github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= +github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.0.3 h1:jh22xisGBjrEVnRZ1DVTpBVQm0Xndu8sMl0CWDzSIBI= github.com/dgraph-io/ristretto v0.0.3/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc h1:8WFBn63wegobsYAX0YjD+8suexZDga5CctH4CCTx2+8= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/digitalocean/godo v1.65.0 h1:3SywGJBC18HaYtPQF+T36jYzXBi+a6eIMonSjDll7TA= github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= -github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= +github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= +github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA= +github.com/dop251/goja v0.0.0-20211011172007-d99e4b8cbf48/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= +github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= github.com/dsnet/compress v0.0.1/go.mod h1:Aw8dCMJ7RioblQeTqt88akK31OvO8Dhf5JflhBbQEHo= github.com/dsnet/golib v0.0.0-20171103203638-1ea166775780/go.mod h1:Lj+Z9rebOhdfkVLjJ8T6VcRQv3SXugXy999NBtR9aFY= github.com/duosecurity/duo_api_golang v0.0.0-20190308151101-6c680f768e74 h1:2MIhn2R6oXQbgW5yHfS+d6YqyMfXiu2L55rFZC4UD/M= @@ -405,14 +487,14 @@ github.com/duosecurity/duo_api_golang v0.0.0-20190308151101-6c680f768e74/go.mod github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b h1:HBah4D48ypg3J7Np4N+HY/ZR76fx3HEUGxDU6Uk39oQ= -github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b/go.mod h1:7BvyPhdbLxMXIYTFPLsyJRFMsKmOZnQmzh6Gb+uquuM= -github.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw= +github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= +github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/edsrzf/mmap-go v0.0.0-20160512033002-935e0e8a636c/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= @@ -421,19 +503,29 @@ github.com/elazarl/goproxy v0.0.0-20191011121108-aa519ddbe484/go.mod h1:Ro8st/El github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.10.0+incompatible h1:l6Soi8WCOOVAeCo4W98iBFC6Og7/X8bpRt51oNLZ2C8= -github.com/emicklei/go-restful v2.10.0+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful/v3 v3.10.0 h1:X4gma4HM7hFm6WMeAsTfqA0GOfdNoCzBIkHGoRLGXuM= +github.com/emicklei/go-restful/v3 v3.10.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/ethereum/go-ethereum v1.9.25/go.mod h1:vMkFiYLHI4tgPw4k2j4MHKoovchFE8plZ0M9VMk4/oM= +github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= +github.com/ethereum/go-ethereum v1.10.17/go.mod h1:Lt5WzjM07XlXc95YzrhosmR4J9Ahd6X2wyEV2SvGhk0= github.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= +github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.5.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= @@ -441,11 +533,10 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= +github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.3.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= -github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= @@ -453,7 +544,10 @@ github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o= github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fjl/memsize v0.0.0-20180418122429-ca190fb6ffbc/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4/go.mod h1:T9YF2M40nIgbVgp3rreNmTged+9HrbNTIQf1PsaIiTA= +github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= @@ -466,25 +560,37 @@ github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/ github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= -github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/gammazero/deque v0.0.0-20190130191400-2afb3858e9c7/go.mod h1:GeIq9qoE43YdGnDXURnmKTnGg15pQz4mYkXSTChbneI= github.com/gammazero/workerpool v0.0.0-20190406235159-88d534f22b56/go.mod h1:w9RqFVO2BM3xwWEcAB8Fwp0OviTBBEiRmSBDfbXnd3w= +github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= +github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= +github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= +github.com/getsentry/sentry-go v0.17.0 h1:UustVWnOoDFHBS7IJUB2QK/nB5pap748ZEp0swnQJak= +github.com/getsentry/sentry-go v0.17.0/go.mod h1:B82dxtBvxG0KaPD8/hfSV+VcHD+Lg/xUS4JuQn1P4cM= +github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gin-gonic/gin v1.7.0 h1:jGB9xAJQ12AIGNB4HguylppmDK1Am9ppF7XnGXXJuoU= +github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= +github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= +github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -508,22 +614,26 @@ github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KE github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= -github.com/go-logr/zapr v1.2.0 h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk= github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro= +github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A= +github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4= github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= -github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= +github.com/go-openapi/analysis v0.20.0 h1:UN09o0kNhleunxW7LR+KnltD0YrJ8FF03pSqvAN3Vro= github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-openapi/errors v0.19.9 h1:9SnKdGhiPZHF3ttwFMiCBEb8jQ4IDdrK+5+a0oTygA4= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= @@ -536,46 +646,55 @@ github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3Hfo github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= +github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA= +github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= +github.com/go-openapi/loads v0.20.2 h1:z5p5Xf5wujMxS1y8aP+vxwW5qYT2zdJBbXKmQUG3lcc= github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= +github.com/go-openapi/runtime v0.19.24 h1:TqagMVlRAOTwllE/7hNKx6rQ10O6T8ZzeJdMjSTKaD4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/spec v0.20.3 h1:uH9RQ6vdyPSs2pSy9fL8QPspDF2AMIMPtmK5coSSjtQ= github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= +github.com/go-openapi/strfmt v0.20.0 h1:l2omNtmNbMc39IGptl9BuXBEKcZfS8zjrTsPKTiJiDM= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= +github.com/go-openapi/validate v0.20.2 h1:AhqDegYV3J3iQkMPJSXkvzymHKMTw0BST3RK3hTT4ts= +github.com/go-ozzo/ozzo-validation v3.6.0+incompatible h1:msy24VGS42fKO9K1vLz82/GeYW1cILu7Nuuj1N3BBkE= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= -github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= +github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= +github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= +github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= +github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= +github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= @@ -588,15 +707,27 @@ github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= github.com/gocql/gocql v0.0.0-20190402132108-0e1d5de854df/go.mod h1:4Fw1eo5iaEhDUs8XyuhSVCVy52Jq3L+/3GJgYkwc+/0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= github.com/gogo/gateway v1.1.0 h1:u0SuhL9+Il+UbjM9VIE3ntfRujKbvVpFvNB4HbjeVQ0= github.com/gogo/gateway v1.1.0/go.mod h1:S7rR8FRQyG3QFESeSv4l2WnsyzlCLG0CzBbUUo/mbic= +github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang-jwt/jwt/v4 v4.3.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20180513044358-24b0969c4cb7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -606,6 +737,8 @@ github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= @@ -614,7 +747,6 @@ github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= @@ -638,17 +770,21 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3-0.20201103224600-674baa8c7fc3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= +github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= +github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0= +github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -660,10 +796,8 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-metrics-stackdriver v0.2.0 h1:rbs2sxHAPn2OtUj9JdR/Gij1YKGl0BTVD0augB+HEjE= github.com/google/go-metrics-stackdriver v0.2.0/go.mod h1:KLcPyp3dWJAFD+yHisGlJSZktIsTjb50eB72U2YZ9K0= @@ -678,7 +812,6 @@ github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -693,9 +826,6 @@ github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2 h1:SJ+NtwL6QaZ21U+IrK7d0gGgpjGGvd2kz+FzTHVzdqI= github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2/go.mod h1:Tv1PlzqC9t8wNnpPdctvtSUOPUUg4SHeE6vR1Ir2hmg= @@ -705,13 +835,11 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= -github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= -github.com/googleapis/gax-go/v2 v2.4.0 h1:dS9eYAjhrE2RjmzYw2XAPvcXfmcQLtFEQWn0CR82awk= +github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gophercloud/gophercloud v0.1.0 h1:P/nh25+rzXouhytV2pUHBb65fnds26Ghl8/391+sT5o= @@ -731,13 +859,12 @@ github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+ github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1-0.20190629185528-ae1634f6a989/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= -github.com/graph-gophers/graphql-go v0.0.0-20191115155744-f33e81362277/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= +github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -770,6 +897,7 @@ github.com/hashicorp/consul/sdk v0.4.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPA github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= @@ -787,59 +915,70 @@ github.com/hashicorp/go-hclog v0.10.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39 github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v1.2.0 h1:La19f8d7WIlm4ogzNHB0JGqs5AUDAZ2UfCY4sJXcJdM= -github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v1.3.1 h1:vDwF1DFNZhntP4DAjuTpOw3uEgMUpXh1pB5fW9DqHpo= +github.com/hashicorp/go-hclog v1.3.1/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.1.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-kms-wrapping v0.0.0-20191129225826-634facde9f88/go.mod h1:Pm+Umb/6Gij6ZG534L7QDyvkauaOQWGb+arj9aFjCE0= +github.com/hashicorp/go-kms-wrapping v0.5.1 h1:Ed6Z5gV3LY3J9Ora4cwxVmV8Hyt6CPOTrQoGIPry2Ew= github.com/hashicorp/go-kms-wrapping v0.5.1/go.mod h1:cGIibZmMx9qlxS1pZTUrEgGqA+7u3zJyvVYMhjU2bDs= -github.com/hashicorp/go-kms-wrapping v0.7.0 h1:UBagVJn4nSNOSjjtpkR370VOEBLnGMXfQcIlE/WL/7o= github.com/hashicorp/go-kms-wrapping/entropy v0.1.0 h1:xuTi5ZwjimfpvpL09jDE71smCBRpnF5xfo871BSX4gs= github.com/hashicorp/go-kms-wrapping/entropy v0.1.0/go.mod h1:d1g9WGtAunDNpek8jUIEJnBlbgKS1N2Q61QkHiZyR1g= +github.com/hashicorp/go-kms-wrapping/entropy/v2 v2.0.0 h1:pSjQfW3vPtrOTcasTUKgCTQT7OGPPTTMVRrOfU6FJD8= +github.com/hashicorp/go-kms-wrapping/entropy/v2 v2.0.0/go.mod h1:xvb32K2keAc+R8DSFG2IwDcydK9DBQE+fGA5fsw6hSk= +github.com/hashicorp/go-kms-wrapping/v2 v2.0.5 h1:rOFDv+3k05mnW0oaDLffhVUwg03Csn0mvfO98Wdd2bE= +github.com/hashicorp/go-kms-wrapping/wrappers/aead/v2 v2.0.4 h1:ws2CPDuXMKwaBb2z/duBCdnB9pSxlN2nuDZWXcVj6RU= +github.com/hashicorp/go-kms-wrapping/wrappers/alicloudkms/v2 v2.0.1 h1:ydUCtmr8f9F+mHZ1iCsvzqFTXqNVpewX3s9zcYipMKI= +github.com/hashicorp/go-kms-wrapping/wrappers/awskms/v2 v2.0.1 h1:WxpTuafkDjdeeu0Xtk9y3m9YAJhfFMb8+y6eTnxvV8A= +github.com/hashicorp/go-kms-wrapping/wrappers/azurekeyvault/v2 v2.0.1 h1:6joKpqCFveaNMEwC3qna67usws6DjdxqfCuQEHSM0aM= +github.com/hashicorp/go-kms-wrapping/wrappers/gcpckms/v2 v2.0.1 h1:+paf/3ompzaXe07BdxkV1vTnqvhwtmZPE4yQnMPTThI= +github.com/hashicorp/go-kms-wrapping/wrappers/ocikms/v2 v2.0.0 h1:FnWV2E0NLj+yYdhToUQjU81ayCMgURiL2WbJ0V7u/XY= +github.com/hashicorp/go-kms-wrapping/wrappers/transit/v2 v2.0.1 h1:72zlIBTJd2pvYmINqotpvcI4ZXLxhRq2cVPTuqv0xqY= github.com/hashicorp/go-memdb v1.0.2/go.mod h1:I6dKdmYhZqU0RJSheVEWgTNWdVQH5QvTgIUQ0t/t32M= -github.com/hashicorp/go-memdb v1.3.2 h1:RBKHOsnSszpU6vxq80LzC2BaQjuuvoyaQbkLTf7V7g8= +github.com/hashicorp/go-memdb v1.3.3 h1:oGfEWrFuxtIUF3W2q/Jzt6G85TrMk9ey6XfYLvVe1Wo= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-msgpack v1.1.5 h1:9byZdVjKTe5mce63pRVNP1L7UAmdHOTEMGehn6KvJWs= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.0.0/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= -github.com/hashicorp/go-plugin v1.4.3 h1:DXmvivbWD5qdiBts9TpBC7BYL1Aia5sxbRgQB+v6UZM= github.com/hashicorp/go-plugin v1.4.3/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= +github.com/hashicorp/go-plugin v1.4.5 h1:oTE/oQR4eghggRg8VY7PAz3dr++VwDNBGCcOfIvHpBo= +github.com/hashicorp/go-plugin v1.4.5/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= github.com/hashicorp/go-raftchunking v0.6.3-0.20191002164813-7e9e8525653a h1:FmnBDwGwlTgugDGbVxwV8UavqSMACbGrUpfc98yFLR4= github.com/hashicorp/go-raftchunking v0.6.3-0.20191002164813-7e9e8525653a/go.mod h1:xbXnmKqX9/+RhPkJ4zrEx4738HacP72aaUPlT2RZ4sU= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.6.2/go.mod h1:gEx6HMUGxYYhJScX7W1Il64m6cc2C1mDaW3NQ9sY1FY= github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= -github.com/hashicorp/go-retryablehttp v0.7.0 h1:eu1EI/mbirUgP5C8hVsTNaGZreBDlYiwC1FZWkvQPQ4= -github.com/hashicorp/go-retryablehttp v0.7.0/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-retryablehttp v0.7.1 h1:sUiuQAnLlbvmExtFQs72iFW/HXeUn8Z1aJLQ4LJJbTQ= +github.com/hashicorp/go-retryablehttp v0.7.1/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-secure-stdlib/awsutil v0.1.5 h1:TkCWKqk1psjvUV7WktmZiRoZ1a9vw048AVnk/YbrzgY= +github.com/hashicorp/go-secure-stdlib/awsutil v0.1.6 h1:W9WN8p6moV1fjKLkeqEgkAMu5rauy9QeYDAmIaPuuiA= github.com/hashicorp/go-secure-stdlib/base62 v0.1.1/go.mod h1:EdWO6czbmthiwZ3/PUsDV+UD1D5IRU4ActiaWGwt0Yw= github.com/hashicorp/go-secure-stdlib/base62 v0.1.2 h1:ET4pqyjiGmY09R5y+rSd70J2w45CtbWDNvGqWp/R3Ng= github.com/hashicorp/go-secure-stdlib/mlock v0.1.1/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= github.com/hashicorp/go-secure-stdlib/mlock v0.1.2 h1:p4AKXPPS24tO8Wc8i1gLvSKdmkiSY5xuju57czJ/IJQ= github.com/hashicorp/go-secure-stdlib/mlock v0.1.2/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.3 h1:geBw3SBrxQq+buvbf4K+Qltv1gjaXJxy8asD4CjGYow= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.3/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.6/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 h1:UpiO20jno/eV1eVZcxqWnUohyKRe1g8FPV/xH1s/2qs= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= github.com/hashicorp/go-secure-stdlib/password v0.1.1 h1:6JzmBqXprakgFEHwBgdchsjaA9x3GyjdI568bXKxa60= github.com/hashicorp/go-secure-stdlib/password v0.1.1/go.mod h1:9hH302QllNwu1o2TGYtSk8I8kTAN0ca1EHpwhm5Mmzo= github.com/hashicorp/go-secure-stdlib/reloadutil v0.1.1 h1:SMGUnbpAcat8rIKHkBPjfv81yC46a8eCNZ2hsR2l1EI= github.com/hashicorp/go-secure-stdlib/strutil v0.1.1/go.mod h1:gKOamz3EwoIoJq7mlMIRBpVTAUn8qPCrEclOKKWhD3U= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= -github.com/hashicorp/go-secure-stdlib/tlsutil v0.1.1 h1:Yc026VyMyIpq1UWRnakHRG01U8fJm+nEfEmjoAb00n8= github.com/hashicorp/go-secure-stdlib/tlsutil v0.1.1/go.mod h1:l8slYwnJA26yBz+ErHpp2IRCLr0vuOMGBORIz4rRiAs= +github.com/hashicorp/go-secure-stdlib/tlsutil v0.1.2 h1:phcbL8urUzF/kxA/Oj6awENaRwfWsjP59GW7u2qlDyY= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= @@ -847,8 +986,9 @@ github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdv github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.2-0.20191001231223-f32f5fe8d6a8/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= +github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= @@ -858,11 +998,13 @@ github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= +github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/hcl v1.0.1-vault-3 h1:V95v5KSTu6DB5huDSKiq4uAfILEuNigK/+qPET6H/Mg= -github.com/hashicorp/hcl v1.0.1-vault-3/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= +github.com/hashicorp/hcp-sdk-go v0.22.0 h1:LWkLOkJFYWSojBM3IkwvYK6nrwrL+p4Fw8zEaoCQG10= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/mdns v1.0.4 h1:sY0CMhFmjIPDMlTB+HfymFHCaYLhgifZ0QhjaYKD/UQ= @@ -871,18 +1013,18 @@ github.com/hashicorp/memberlist v0.1.4/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2p github.com/hashicorp/nomad/api v0.0.0-20191220223628-edc62acd919d/go.mod h1:WKCL+tLVhN1D+APwH3JiTRZoxcdwRk86bWu1LVCUPaE= github.com/hashicorp/raft v1.0.1/go.mod h1:DVSAWItjLjTOkVbSpWQ0j0kUADIvDaCtBxIcbNAQLkI= github.com/hashicorp/raft v1.1.2-0.20191002163536-9c6bd3e3eb17/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8= -github.com/hashicorp/raft v1.3.3 h1:Xr6DSHC5cIM8kzxu+IgoT/+MeNeUNeWin3ie6nlSrMg= -github.com/hashicorp/raft-autopilot v0.1.3 h1:Y+5jWKTFABJhCrpVwGpGjti2LzwQSzivoqd2wM6JWGw= +github.com/hashicorp/raft v1.3.10 h1:LR5QZX1VQd0DFWZfeCwWawyeKfpS/Tm1yjnJIY5X4Tw= +github.com/hashicorp/raft-autopilot v0.1.6 h1:C1q3RNF2FfXNZfHWbvVAu0QixaQK8K5pX4O5lh+9z4I= github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea h1:xykPFhrBAS2J0VBzVa5e80b5ZtYuNQtgXjN40qBZlD4= github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk= github.com/hashicorp/raft-boltdb/v2 v2.0.0-20210421194847-a7e34179d62c h1:oiKun9QlrOz5yQxMZJ3tf1kWtFYuKSJzxzEDxDPevj4= github.com/hashicorp/raft-snapshot v1.0.2-0.20190827162939-8117efcc5aab/go.mod h1:5sL9eUn72lH5DzsFIJ9jaysITbHksSSszImWSOTC8Ic= -github.com/hashicorp/raft-snapshot v1.0.3 h1:lTgBBGMFcuKBTwHqWZ4r0TLzNsqo/OByCga/kM6F0uM= +github.com/hashicorp/raft-snapshot v1.0.4 h1:EuDuayAJPdiDmVk1ygTDnG2zDzrs0/6/yBuma1IYSow= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/serf v0.8.3/go.mod h1:UpNcs7fFbpKIyZaUuSW6EPiH+eZC7OuyFD+wc1oal+k= github.com/hashicorp/vault v1.4.2/go.mod h1:500fLOj7p92Ys4X265LizqF78MzmHJUf1jV1zNJt060= -github.com/hashicorp/vault v1.10.0 h1:XBPRddaIcUCC8zdlXlQjWefa4sa9ULa0xPGYexZwrLs= -github.com/hashicorp/vault v1.10.0/go.mod h1:lYEGcRPf642TSYqkwpE7QVBhSs/vzyVb7W08bLOJ95Y= +github.com/hashicorp/vault v1.12.2 h1:PwyIICn7BPEK3WwttT9JS/raCDQfAR1EvgeC4t1VfUw= +github.com/hashicorp/vault v1.12.2/go.mod h1:8vvin/hC1qj3wIiW2TDS5nwgmkXYMf6H1Qje69OI/mw= github.com/hashicorp/vault-plugin-auth-alicloud v0.5.5/go.mod h1:sQ+VNwPQlemgXHXikYH6onfH9gPwDZ1GUVRLz0ZvHx8= github.com/hashicorp/vault-plugin-auth-azure v0.5.6-0.20200422235613-1b5c70f9ef68/go.mod h1:RCVBsf8AJndh4c6iGZtvVZFui9SG0Bj9fnF0SodNIkw= github.com/hashicorp/vault-plugin-auth-centrify v0.5.5/go.mod h1:GfRoy7NHsuR/ogmZtbExdJXUwbfwcxPrS9xzkyy2J/c= @@ -908,9 +1050,13 @@ github.com/hashicorp/vault/api v1.0.5-0.20190730042357-746c0b111519/go.mod h1:i9 github.com/hashicorp/vault/api v1.0.5-0.20191122173911-80fcc7907c78/go.mod h1:Uf8LaHyrYsgVgHzO2tMZKhqRGlL3UJ6XaSwW2EA1Iqo= github.com/hashicorp/vault/api v1.0.5-0.20200215224050-f6547fa8e820/go.mod h1:3f12BMfgDGjTsTtIUj+ZKZwSobQpZtYGFIEehOv5z1o= github.com/hashicorp/vault/api v1.0.5-0.20200317185738-82f498082f02/go.mod h1:3f12BMfgDGjTsTtIUj+ZKZwSobQpZtYGFIEehOv5z1o= -github.com/hashicorp/vault/api v1.0.5-0.20200902155336-f9d5ce5a171a/go.mod h1:R3Umvhlxi2TN7Ex2hzOowyeNb+SfbVWI973N+ctaFMk= -github.com/hashicorp/vault/api v1.4.1 h1:mWLfPT0RhxBitjKr6swieCEP2v5pp/M//t70S3kMLRo= -github.com/hashicorp/vault/api v1.4.1/go.mod h1:LkMdrZnWNrFaQyYYazWVn7KshilfDidgVBq6YiTq/bM= +github.com/hashicorp/vault/api v1.3.0/go.mod h1:EabNQLI0VWbWoGlA+oBLC8PXmR9D60aUVgQGvangFWQ= +github.com/hashicorp/vault/api v1.8.0/go.mod h1:uJrw6D3y9Rv7hhmS17JQC50jbPDAZdjZoTtrCCxxs7E= +github.com/hashicorp/vault/api v1.8.2 h1:C7OL9YtOtwQbTKI9ogB0A1wffRbCN+rH/LLCHO3d8HM= +github.com/hashicorp/vault/api v1.8.2/go.mod h1:ML8aYzBIhY5m1MD1B2Q0JV89cC85YVH4t5kBaZiyVaE= +github.com/hashicorp/vault/api/auth/approle v0.1.1/go.mod h1:mHOLgh//xDx4dpqXoq6tS8Ob0FoCFWLU2ibJ26Lfmag= +github.com/hashicorp/vault/api/auth/approle v0.3.0 h1:Ib0oCNXsCq/QZhPYtXPzJEbGS5WR/KoZf8c84QoFdkU= +github.com/hashicorp/vault/api/auth/approle v0.3.0/go.mod h1:hm51TbjzUkPO0Y17wkrpwOpvyyMRpXJNueTHiG04t3k= github.com/hashicorp/vault/sdk v0.1.8/go.mod h1:tHZfc6St71twLizWNHvnnbiGFo1aq0eD2jGPLtP8kAU= github.com/hashicorp/vault/sdk v0.1.14-0.20190730042320-0dc007d98cc8/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= github.com/hashicorp/vault/sdk v0.1.14-0.20191108161836-82f2b5571044/go.mod h1:PcekaFGiPJyHnFy+NZhP6ll650zEw51Ag7g/YEa+EOU= @@ -920,23 +1066,26 @@ github.com/hashicorp/vault/sdk v0.1.14-0.20200305172021-03a3749f220d/go.mod h1:P github.com/hashicorp/vault/sdk v0.1.14-0.20200317185738-82f498082f02/go.mod h1:WX57W2PwkrOPQ6rVQk+dy5/htHIaB4aBM70EwKThu10= github.com/hashicorp/vault/sdk v0.1.14-0.20200427170607-03332aaf8d18/go.mod h1:WX57W2PwkrOPQ6rVQk+dy5/htHIaB4aBM70EwKThu10= github.com/hashicorp/vault/sdk v0.1.14-0.20200429182704-29fce8f27ce4/go.mod h1:WX57W2PwkrOPQ6rVQk+dy5/htHIaB4aBM70EwKThu10= -github.com/hashicorp/vault/sdk v0.1.14-0.20200519221838-e0cfd64bc267/go.mod h1:WX57W2PwkrOPQ6rVQk+dy5/htHIaB4aBM70EwKThu10= -github.com/hashicorp/vault/sdk v0.4.1/go.mod h1:aZ3fNuL5VNydQk8GcLJ2TV8YCRVvyaakYkhZRoVuhj0= -github.com/hashicorp/vault/sdk v0.4.2-0.20220321211954-d7083ad326db h1:eDO/Oxh1HKoCHL6IBOmu/6sAaEtp1hcp3sAqeOWYqTM= -github.com/hashicorp/vault/sdk v0.4.2-0.20220321211954-d7083ad326db/go.mod h1:aZ3fNuL5VNydQk8GcLJ2TV8YCRVvyaakYkhZRoVuhj0= +github.com/hashicorp/vault/sdk v0.3.0/go.mod h1:aZ3fNuL5VNydQk8GcLJ2TV8YCRVvyaakYkhZRoVuhj0= +github.com/hashicorp/vault/sdk v0.6.0/go.mod h1:+DRpzoXIdMvKc88R4qxr+edwy/RvH5QK8itmxLiDHLc= +github.com/hashicorp/vault/sdk v0.6.1-0.20221102145943-1e9b0a1225c3 h1:Wf6EUjtmzkNcbK2fKPJYyX5146C75EzmfMFXgtFilQ8= +github.com/hashicorp/vault/sdk v0.6.1-0.20221102145943-1e9b0a1225c3/go.mod h1:h25xhm657j/WX0QYIK43fGeEzaQ4zG/A55vRe+09Q2U= github.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443 h1:O/pT5C1Q3mVXMyuqg7yuAWUg/jMZR1/0QTzTRdNR6Uw= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/hashicorp/yamux v0.0.0-20211028200310-0bc27b27de87 h1:xixZ2bWeofWV68J+x6AzmKuVM/JWCQwkWm6GW/MUR6I= -github.com/hashicorp/yamux v0.0.0-20211028200310-0bc27b27de87/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= -github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 h1:uUjLpLt6bVvZ72SQc/B4dXcPBw4Vgd7soowdRl52qEM= -github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87/go.mod h1:XGsKKeXxeRr95aEOgipvluMPlgjr7dGlk9ZTWOjcUcg= -github.com/holiman/uint256 v1.1.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= +github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= +github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 h1:aSVUgRRRtOrZOC1fYmY9gV0e9z/Iu+xNVSASWjsuyGU= +github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3/go.mod h1:5PC6ZNPde8bBqU/ewGZig35+UIZtw9Ytxez8/q5ZyFE= +github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= +github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= +github.com/huandu/xstrings v1.3.3 h1:/Gcsuc1x8JVbJ9/rlye4xZnVAbEkGauT8lbebqcQws4= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= +github.com/huin/goupnp v1.0.3-0.20220313090229-ca81a64b4204/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= +github.com/hydrogen18/memlistener v0.0.0-20141126152155-54553eb933fb/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= +github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -944,16 +1093,34 @@ github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= +github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/improbable-eng/grpc-web v0.14.1 h1:NrN4PY71A6tAz2sKDvC5JCauENWp0ykG8Oq1H3cpFvw= github.com/improbable-eng/grpc-web v0.14.1/go.mod h1:zEjGHa8DAlkoOXmswrNvhUGEYQA9UI7DhrGeHR1DMGU= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= github.com/influxdata/influxdb v0.0.0-20190411212539-d24b7ba8c4c4/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= -github.com/influxdata/influxdb v1.2.3-0.20180221223340-01288bdb0883/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= +github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= +github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= +github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= +github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= +github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= +github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= +github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= +github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= +github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= +github.com/iris-contrib/i18n v0.0.0-20171121225848-987a633949d0/go.mod h1:pMCz62A0xJL6I+umB2YTlFRwWXaDFA0jy+5HzGiJjqI= +github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= +github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= +github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= github.com/jackc/pgx v3.3.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= -github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jcmturner/aescts v1.0.1/go.mod h1:k9gJoDUf1GH5r2IBtBjwjDCoLELYxOcEhitdP8RL7qQ= github.com/jcmturner/dnsutils v1.0.1/go.mod h1:tqMo38L01jO8AKxT0S9OQVlGZu3dkEt+z5CA+LOhwB0= github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= @@ -969,9 +1136,11 @@ github.com/jefferai/jsonx v1.0.0/go.mod h1:OGmqmi2tTeI/PS+qQfBDToLHHJIy/RMp24fPo github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= -github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b h1:izTof8BKh/nE1wrKOrloNA5q4odOarjf+Xpe+4qow98= +github.com/jhump/protoreflect v1.13.1-0.20220928232736-101791cb1b4c h1:XImQJfpJLmGEEd8ll5yPVyL/aEvmgGHW4WYTyNseLOM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmhodges/levigo v1.0.1-0.20191019112844-b572e7f4cdac h1:GcJkaxD5Wy/Ucn+L0USlpbGJy9O6+7r0nBI7ftJ7Uu0= github.com/jmhodges/levigo v1.0.1-0.20191019112844-b572e7f4cdac/go.mod h1:dM7ihgFM8Do6WGIfOXWPgpJ+4bKGR/4ZkYh8HKDdFy4= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -994,26 +1163,49 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.1.1-0.20170430222011-975b5c4c7c21/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= +github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= +github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/karalabe/usb v0.0.2/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= +github.com/kataras/golog v0.0.9/go.mod h1:12HJgwBIZFNGL0EJnMRhmvGA0PQGx8VFwrZtM4CqbAk= +github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= +github.com/kataras/iris/v12 v12.0.1/go.mod h1:udK4vLQKkdDqMGJJVd/msuMtN6hpYJhg/lSzuxjhO+U= +github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= +github.com/kataras/neffos v0.0.10/go.mod h1:ZYmJC07hQPW67eKuzlfY7SO3bC0mw83A3j6im82hfqw= +github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= +github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0= +github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= +github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= github.com/kelseyhightower/envconfig v1.3.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= +github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= github.com/keybase/go-crypto v0.0.0-20190403132359-d65b6b94177f h1:Gsc9mVHLRqBjMgdQCghN9NObCcRncDqxJvBvEaIIQEo= github.com/keybase/go-crypto v0.0.0-20190403132359-d65b6b94177f/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= -github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d h1:Z+RDyXzjKE0i2sTjZ/b1uxiGtPhFy34Ou/Tk0qwN0kM= -github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d/go.mod h1:JJNrCn9otv/2QP4D7SMJBgaleKpOf66PnW6F5WGNRIc= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= +github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= +github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= @@ -1021,18 +1213,26 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kube-object-storage/lib-bucket-provisioner v0.0.0-20220420154035-5eb5ff03d30a h1:r6PDQVhv10v5Q3F6FifbQ8287Cmy4ka+/k25Iqz/8XQ= -github.com/kube-object-storage/lib-bucket-provisioner v0.0.0-20220420154035-5eb5ff03d30a/go.mod h1:my+EVjOJLeQ9lUR9uVkxRvNNkhO2saSGIgzV8GZT9HY= +github.com/kube-object-storage/lib-bucket-provisioner v0.0.0-20221122204822-d1a8c34382f1 h1:dQEHhTfi+bSIOSViQrKY9PqJvZenD6tFz+3lPzux58o= +github.com/kube-object-storage/lib-bucket-provisioner v0.0.0-20221122204822-d1a8c34382f1/go.mod h1:my+EVjOJLeQ9lUR9uVkxRvNNkhO2saSGIgzV8GZT9HY= github.com/kubernetes-csi/external-snapshotter/client/v4 v4.0.0/go.mod h1:YBCo4DoEeDndqvAn6eeu0vWM7QdXmHEeI9cFWplmBys= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= +github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= +github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.6 h1:jbk+ZieJ0D7EVGJYpL9QTz7/YW6UHbmdnZWYyK5cdBs= github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= @@ -1040,8 +1240,8 @@ github.com/libopenstorage/autopilot-api v0.6.1-0.20210128210103-5fbb67948648/go. github.com/libopenstorage/external-storage v0.20.4-openstorage-rc3/go.mod h1:nffpoeodwwp+wwngmBGbLBCd7TZ9GxHLtxKoaLRW6K4= github.com/libopenstorage/openstorage v8.0.0+incompatible/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= github.com/libopenstorage/operator v0.0.0-20200725001727-48d03e197117/go.mod h1:Qh+VXOB6hj60VmlgsmY+R1w+dFuHK246UueM4SAqZG0= -github.com/libopenstorage/secrets v0.0.0-20210709082113-dde442ea20ec h1:ezv9ybzCRb86E8aMgG7/GcNSRU/72D0BVEhkNjnCEz8= -github.com/libopenstorage/secrets v0.0.0-20210709082113-dde442ea20ec/go.mod h1:gE8rSd6lwLNXNbiW3DrRZjFMs+y4fDHy/6uiOO9cdzY= +github.com/libopenstorage/secrets v0.0.0-20220823020833-2ecadaf59d8a h1:dHCYranrn+6LzONAnhB3YPHBpMz4vP1IN8BsZNaY+IY= +github.com/libopenstorage/secrets v0.0.0-20220823020833-2ecadaf59d8a/go.mod h1:JqaGrr4zerBaTqX04dajFE14AHcDDrxvCq8nZ5/r4AU= github.com/libopenstorage/stork v1.3.0-beta1.0.20200630005842-9255e7a98775/go.mod h1:qBSzYTJVHlOMg5RINNiHD1kBzlasnrc2uKLPZLgu1Qs= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= @@ -1049,56 +1249,73 @@ github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9 github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/linode/linodego v0.7.1 h1:4WZmMpSA2NRwlPZcc0+4Gyn7rr99Evk9bnr0B3gXRKE= +github.com/linxGnu/grocksdb v1.7.10 h1:dz7RY7GnFUA+GJO6jodyxgkUeGMEkPp3ikt9hAcNGEw= +github.com/linxGnu/grocksdb v1.7.10/go.mod h1:0hTf+iA+GOr0jDX4CgIYyJZxqOH9XlBh6KVj8+zmF34= github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= github.com/lucasjones/reggen v0.0.0-20180717132126-cdb49ff09d77/go.mod h1:5ELEyG+X8f+meRWHuqUOewBOhvHkl7M76pdGEansxW4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= -github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/martini-contrib/render v0.0.0-20150707142108-ec18f8345a11/go.mod h1:Ah2dBMoxZEqk118as2T4u4fjfXarE0pPnMJaArZQZsI= +github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= -github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.5-0.20180830101745-3fb116b82035/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-shellwords v1.0.5/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions v1.0.2 h1:hAHbPm5IJGijwng3PWk09JkG9WeqChjprR5s9bBZ+OM= +github.com/matttproud/golang_protobuf_extensions v1.0.2/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/mediocregopher/mediocre-go-lib v0.0.0-20181029021733-cb65787f37ed/go.mod h1:dSsfyI2zABAdhcbvkXqgxOxrCsbYeHCPgrZkku60dSg= +github.com/mediocregopher/radix/v3 v3.3.0/go.mod h1:EmfVyvspXz1uZEyPBMyGK+kjWiKQGvsUt6O3Pj+LDCQ= +github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= github.com/mholt/archiver v3.1.1+incompatible/go.mod h1:Dh2dOXnSdiLxRiPoVfIr/fI1TwETms9B8CTWfeh7ROU= github.com/michaelklishin/rabbit-hole v0.0.0-20191008194146-93d9988f0cd5/go.mod h1:+pmbihVqjC3GPdfWv1V2TnRSuVvwrWLKfEP/MZVB/Wc= +github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.43 h1:JKfpVSCB84vrAmHzyrsxB5NAr5kLoMXZArPSw7Qlgyg= -github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643 h1:hLDRPB66XQT/8+wG9WsDpiCvZf1yKO7sz7scAjSlBa0= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= +github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94= +github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= @@ -1111,8 +1328,8 @@ github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-testing-interface v1.14.0 h1:/x0XQ6h+3U3nAyk1yx+bHPURrKa9sVVvYbuqZ7pIAtI= -github.com/mitchellh/go-testing-interface v1.14.0/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= +github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= +github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= @@ -1120,13 +1337,13 @@ github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1D github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v0.0.0-20190430161007-f252a8fd71c8/go.mod h1:k4XwG94++jLVsSiTxo7qdIfXA9pj9EAeo0QsNNJOLZ8= +github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= @@ -1134,8 +1351,9 @@ github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= -github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae h1:O4SWKdcHVCvYqyDV+9CJA1fcDN2L11Bule0iFy3YlAI= +github.com/moby/term v0.0.0-20220808134915-39b0c02b01ae/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -1143,9 +1361,12 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/mongodb/go-client-mongodb-atlas v0.1.2/go.mod h1:LS8O0YLkA+sbtOb3fZLF10yY3tJM+1xATXMJ3oU35LU= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= +github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= @@ -1163,37 +1384,43 @@ github.com/natefinch/atomic v0.0.0-20150920032501-a62ce929ffcc/go.mod h1:1rLVY/D github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= +github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms= github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= -github.com/neilotoole/errgroup v0.1.5/go.mod h1:Q2nLGf+594h0CLBs/Mbg6qOr7GtqDK7C2S41udRnToE= +github.com/neilotoole/errgroup v0.1.6/go.mod h1:Q2nLGf+594h0CLBs/Mbg6qOr7GtqDK7C2S41udRnToE= github.com/nicolai86/scaleway-sdk v1.10.2-0.20180628010248-798f60e20bb2 h1:BQ1HW7hr4IVovMwWg0E0PYcyW8CzqDcVmaew9cujU4s= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nwaples/rardecode v1.0.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= +github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/okta/okta-sdk-golang v1.0.1 h1:1DGm5+h2JvfdHz07yVVM7+LgUVSwxnk+6RoLUOB6CwI= github.com/okta/okta-sdk-golang v1.0.1/go.mod h1:8k//sN2mFTq8Ayo90DqGbcumCkSmYjF0+2zkIbZysec= +github.com/okta/okta-sdk-golang/v2 v2.12.1 h1:U+smE7trkHSZO8Mval3Ow85dbxawO+pMAr692VZq9gM= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.2-0.20190409134802-7e037d187b0c/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.15.0 h1:1V1NfVQR87RtWAgp1lv9JZJ5Jap+XFGKPi00andXGi4= github.com/onsi/ginkgo v1.15.0/go.mod h1:hF8qUzuuC8DJGygJH3726JnCZX4MYbRB8yFfISqnKUg= -github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo/v2 v2.6.0 h1:9t9b9vRUbFq3C4qKFCGkVuq/fIHji802N1nrtkh1mNc= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= @@ -1204,15 +1431,15 @@ github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48= -github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE= +github.com/onsi/gomega v1.24.1 h1:KORJXNNTzJXzu4ScJWssJfJMnJ+2QJqhoQSRwNlze9E= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 h1:rc3tiVYb5z54aKaDfakKn0dDjIyPpTtszkjuMzyt7ec= +github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= +github.com/opencontainers/runc v1.1.4 h1:nRCz/8sKg6K6jgYAFLDlXzPeITBZJyX28DBVhWD+5dg= github.com/openshift/api v0.0.0-20210105115604-44119421ec6b h1:9wG43AJGupRUUAAF/GN2CtQgVlo+BzdIlmsTwUlIATE= github.com/openshift/api v0.0.0-20210105115604-44119421ec6b/go.mod h1:aqU5Cq+kqKKPbDMqxo9FojgDeSpNJI7iuskjXjtojDg= github.com/openshift/build-machinery-go v0.0.0-20200917070002-f171684f77ab/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= @@ -1220,6 +1447,7 @@ github.com/openshift/client-go v0.0.0-20210112165513-ebc401615f47/go.mod h1:u7NR github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.3/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= @@ -1229,6 +1457,7 @@ github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= github.com/oracle/oci-go-sdk v12.5.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888= github.com/oracle/oci-go-sdk v13.1.0+incompatible h1:inwbT0b/mMbnTfzYoW2xcU1cCMIlU6Fz973at5phRXM= +github.com/oracle/oci-go-sdk/v60 v60.0.0 h1:EJAWjEi4SY5Raha6iUzq4LTQ0uM5YFw/wat/L1ehIEM= github.com/ory/dockertest v3.3.4+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= @@ -1242,7 +1471,7 @@ github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144T github.com/patrickmn/go-cache v0.0.0-20180815053127-5633e0862627/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/pborman/uuid v0.0.0-20170112150404-1b00554d8222/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34= +github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= github.com/pborman/uuid v0.0.0-20170612153648-e790cca94e6c/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= @@ -1250,13 +1479,16 @@ github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.2 h1:+jQXlF3scKIcSEKkdHzXhCTDLPFi5r1wnK6yPS+49Gw= -github.com/pelletier/go-toml/v2 v2.0.2/go.mod h1:MovirKjgVRESsAvNZlAjtFwV867yGuwRkXbG66OzopI= +github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= +github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= +github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= +github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -1265,7 +1497,10 @@ github.com/pierrec/lz4 v2.2.6+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pires/go-proxyproto v0.6.1 h1:EBupykFmo22SDjv4fQVQd2J9NOoLPmyZA/15ldOGkPw= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -1273,6 +1508,7 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= +github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -1283,6 +1519,7 @@ github.com/portworx/talisman v0.0.0-20191007232806-837747f38224/go.mod h1:OjpMH9 github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.1/go.mod h1:6gapUrK/U1TAN7ciCoNRIdVC5sbdBTUh1DKN0g6uH7E= github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/pquerna/otp v1.2.1-0.20191009055518-468c2dd2b58d h1:PinQItctnaL2LtkaSM678+ZLLy5TajwOeXzWvYC7tII= @@ -1301,29 +1538,31 @@ github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3O github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= -github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.34.0 h1:RBmGO9d/FVjqHT0yUGQwBJhkwKV+wPCn7KGpvfab0uE= -github.com/prometheus/common v0.34.0/go.mod h1:gB3sOl7P0TvJabZpLY5uQMpUqRCPPCyRLCZYc7JZTNE= +github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -1335,34 +1574,38 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rboyer/safeio v0.2.1 h1:05xhhdRNAdS3apYm7JRjOqngf4xruaW959jmRxGDuSU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ= -github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/regen-network/cosmos-proto v0.3.1 h1:rV7iM4SSFAagvy8RiyhiACbWEGotmqzywPxOvwMdxcg= github.com/regen-network/cosmos-proto v0.3.1/go.mod h1:jO0sVX6a1B36nmE8C9xBFXpNwWejXC7QqCOnH3O0+YM= +github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= github.com/renier/xmlrpc v0.0.0-20170708154548-ce4a1a486c03 h1:Wdi9nwnhFNAlseAOekn6B5G/+GMtks9UKbvRU/CMM/o= +github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.2 h1:aIihoIOHCiLZHxyoNQ+ABL4NKhFTgKLBdMLyEAh98m0= -github.com/rook/rook v1.9.7 h1:kAZTajactZPYrfbuOpJ5E2jmy7+T2FcVpm9Bkia1+nI= -github.com/rook/rook v1.9.7/go.mod h1:4t1U+RJ4rbmv0IdCRsxXPY3UM49dEf4DZLwfVsxWjaw= -github.com/rs/cors v0.0.0-20160617231935-a62a804a8a00/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rook/rook v1.11.1 h1:23GWgK/S+IrtKKbou5e0VAxHNriDxSWZLhHyV92vNIw= +github.com/rook/rook v1.11.1/go.mod h1:MPltNTZtf8DmhJjAxsdgYmJaJmFcq/CHadTm2DMPPiM= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/rs/xhandler v0.0.0-20160618193221-ed27b6fd6521/go.mod h1:RvLn4FgxWubrpZHtQLnOf6EwhN2hEMusxZOhcW9H3UQ= github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= @@ -1375,18 +1618,22 @@ github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkB github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa h1:0U2s5loxrTy6/VgfVoLuVLFJcURKLH49ie0zSch7gh4= -github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= -github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= +github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= +github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= +github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= +github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sethvargo/go-limiter v0.7.2 h1:FgC4N7RMpV5gMrUdda15FaFTkQ/L4fEqM7seXMs4oO8= github.com/shirou/gopsutil v2.19.9+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/shirou/gopsutil v2.20.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/shirou/gopsutil v3.21.5+incompatible h1:OloQyEerMi7JUrXiNzy8wQ5XN+baemxSl12QgIzt0jc= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil/v3 v3.22.6 h1:FnHOFOh+cYAM0C30P+zysPISzlknLC5Z1G4EAElznfQ= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= @@ -1398,6 +1645,8 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/smallstep/assert v0.0.0-20200723003110-82e2b9b3b262 h1:unQFBIznI+VYD1/1fApl1A+9VcBk+9dcqGfnePY87LY= github.com/smartystreets/assertions v0.0.0-20180725160413-e900ae048470/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= @@ -1406,14 +1655,15 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9 github.com/softlayer/softlayer-go v0.0.0-20180806151055-260589d94c7d h1:bVQRCxQvfjNUeRqaY/uT0tFuvuFY0ulgnczuR684Xic= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= +github.com/sony/gobreaker v0.4.2-0.20210216022020-dd874f9dd33b h1:br+bPNZsJWKicw/5rALEo67QHs5weyD5tf8WST+4sJ0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo= -github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= +github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= +github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= @@ -1423,8 +1673,8 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= -github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= -github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= +github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= +github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -1437,11 +1687,9 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= -github.com/spf13/viper v1.12.0 h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ= -github.com/spf13/viper v1.12.0/go.mod h1:b6COn30jlNxbm/V2IqWiNWkJ+vZNiMNksliPCiuKtSI= +github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= +github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= -github.com/steakknife/bloomfilter v0.0.0-20180922174646-6819c0d2a570/go.mod h1:8OR4w3TdeIHIh1g6EMY5p0gVNOovcWC+1vpc7naMuAw= -github.com/steakknife/hamming v0.0.0-20180906055917-c99c65617cd3/go.mod h1:hpGUWaI9xL8pRQCTXQgocU38Qw1g0Us7n5PxxTwTCYU= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= @@ -1449,8 +1697,10 @@ github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5J github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -1459,65 +1709,89 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/subosito/gotenv v1.4.0 h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs= -github.com/subosito/gotenv v1.4.0/go.mod h1:mZd6rFysKEcUhUHXJk0C/08wAgyDBFuwEYL7vWWGaGo= -github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca h1:Ld/zXl5t4+D69SiV4JoN7kkfvJdOWlPpfxrzxpLMoUk= -github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= +github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= +github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= +github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/tencentcloud/tencentcloud-sdk-go v3.0.171+incompatible h1:K3fcS92NS8cRntIdu8Uqy2ZSePvX73nNhOkKuPGJLXQ= -github.com/tendermint/btcd v0.1.1 h1:0VcxPfflS2zZ3RiOAHkBiFUcPvbtRj5O7zHmcJWHV7s= -github.com/tendermint/btcd v0.1.1/go.mod h1:DC6/m53jtQzr/NFmMNEu0rxf18/ktVoVtMrnDD5pN+U= -github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RMWx1aInLzndwxKalgi5rTqgfXxOxbEI= -github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15/go.mod h1:z4YtwM70uOnk8h0pjJYlj3zdYwi9l03By6iAIF5j/Pk= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= github.com/tendermint/tm-db v0.6.7 h1:fE00Cbl0jayAoqlExN6oyQJ7fR/ZtoVOmvPJ//+shu8= github.com/tendermint/tm-db v0.6.7/go.mod h1:byQDzFkZV1syXr/ReXS808NxA2xvyuuVgXOJ/088L6I= -github.com/tidwall/gjson v1.6.7/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= -github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= +github.com/tidwall/btree v1.5.0 h1:iV0yVY/frd7r6qGBXfEYs7DH0gTDgrKTrDjS7xt/IyQ= +github.com/tidwall/btree v1.5.0/go.mod h1:LGm8L/DZjPLmeWGjv5kFrY8dL4uVhMmzmmLYmsObdKE= +github.com/tidwall/gjson v1.12.1/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.14.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/sjson v1.1.4/go.mod h1:wXpKXu8CtDjKAZ+3DrKY5ROCorDFahq8l0tey/Lx1fg= +github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.4/go.mod h1:098SZ494YoMWPmMO6ct4dcFnqxwj9r/gF0Etp19pSNM= +github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tinylib/msgp v1.1.5/go.mod h1:eQsjooMTnV42mHu917E26IogZ2930nFyBQdofk10Udg= -github.com/tklauser/go-sysconf v0.3.9 h1:JeUVdAOWhhxVcU6Eqr/ATFHgXk/mmiItdKeJPev3vTo= -github.com/tklauser/numcpus v0.3.0 h1:ILuRUQBtssgnxw0XXIjKUC56fgnOrFoQQ/4+DeU2biQ= +github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= +github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= +github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= +github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/troian/hid v0.11.0 h1:g6flpECGJoCH1BPHAzrmDeHoxVT37iivAtSKGA2RxAw= -github.com/troian/hid v0.11.0/go.mod h1:n6adloQ1876oEXZr6fFsthy4FDHxwJhh7QYQspm30Ds= +github.com/troian/hid v0.13.2 h1:O7PWZQm5YGyg0nVvknFVLVrNTPillz4ZXvxJOtoyteE= +github.com/troian/hid v0.13.2/go.mod h1:n6adloQ1876oEXZr6fFsthy4FDHxwJhh7QYQspm30Ds= github.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= github.com/tyler-smith/go-bip39 v1.0.2/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= -github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo= +github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= +github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vmihailenco/msgpack/v5 v5.1.4/go.mod h1:C5gboKD0TJPqWDTVTtrQNfRbiBwHZGo8UTqP/9/XvLI= -github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/vmware/govmomi v0.18.0 h1:f7QxSmP7meCtoAmiKZogvVbLInT+CZx6Px6K5rYsJZo= -github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees= +github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= github.com/ybbus/jsonrpc v2.1.2+incompatible/go.mod h1:XJrh1eMSzdIYFbM08flv0wp5G35eRniyeGut1z+LSiE= +github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= +github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= +github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= @@ -1533,6 +1807,7 @@ go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qL go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.2.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mongodb.org/mongo-driver v1.7.3 h1:G4l/eYY9VrQAK/AUgkV0koQKzQnyddnWxrd/Etf0jIs= go.opencensus.io v0.19.1/go.mod h1:gug0GbSHa8Pafr0d2urOSgoXHZ6x/RUlaiT0d9pqb4A= go.opencensus.io v0.19.2/go.mod h1:NO/8qkisMZLZ1FCsKNqtJPwc8/TaclWyY0B6wcYNg9M= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -1543,8 +1818,8 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= @@ -1557,15 +1832,17 @@ go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4 go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= +go.step.sm/crypto v0.26.0 h1:mWie6FVOkhwJtyOA1EFCOZntx5e2cbM3FfwALu2goY0= +go.step.sm/crypto v0.26.0/go.mod h1:4pUEuZ+4OAf2f70RgW5oRv/rJudibcAAWQg5prC3DT8= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= +go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= @@ -1577,8 +1854,8 @@ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= -go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8= -go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1600,6 +1877,7 @@ golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -1609,18 +1887,22 @@ golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= @@ -1629,10 +1911,14 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= +golang.org/x/exp v0.0.0-20200513190911-00229845015e/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= +golang.org/x/exp v0.0.0-20221019170559-20944726eadf h1:nFVjjKDgNY37+ZSYCJmtYf7tOlfQswHqplG2eosjOMg= +golang.org/x/exp v0.0.0-20221019170559-20944726eadf/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1647,20 +1933,18 @@ golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20200801112145-973feb4309de/go.mod h1:skQtrUTUwhdJvXM/2KKJzY8pDgNr9I/FOMqDVRPBUS4= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191209134235-331c550502dd/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1668,7 +1952,6 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1680,6 +1963,7 @@ golang.org/x/net v0.0.0-20190206173232-65e2d4e15006/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1704,12 +1988,11 @@ golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -1717,19 +2000,21 @@ golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220726230323-06994584191e h1:wOQNKh1uuDGRnmgF0jDxh7ctgGy/3P4rYWQRVJD4/Yg= -golang.org/x/net v0.0.0-20220726230323-06994584191e/go.mod h1:AaygXjzTFtRAg2ttMY5RMuhpJ3cNnI0XpyFJD1iQRSM= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190130055435-99b60b757ec1/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1747,14 +2032,11 @@ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 h1:OSnWWcOd/CtWQC2cYSBgbTSJv3ciqd8r54ySIW2y3RE= -golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1766,10 +2048,11 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1797,6 +2080,7 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1810,6 +2094,7 @@ golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1831,9 +2116,8 @@ golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1847,41 +2131,42 @@ golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210909193231-528a39cd75f3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220727055044-e65921a090b8 h1:dyU22nBWzrmTQxtNrr4dzVOvaw35nUYE279vF9UmsI8= -golang.org/x/sys v0.0.0-20220727055044-e65921a090b8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1892,8 +2177,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1901,17 +2187,25 @@ golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181219222714-6e267b5cc78e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -1939,7 +2233,7 @@ golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117012304-6edc0a871e69/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1971,14 +2265,12 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1986,6 +2278,14 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T gomodules.xyz/jsonpatch/v2 v2.0.1/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY= gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= +gonum.org/v1/gonum v0.8.2 h1:CCXrcPKiGGotvnN6jfUsKk4rRqm7q09/YbKb5xCEvtM= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.0.0-20181220000619-583d854617af/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.2.0/go.mod h1:IfRCZScioGtypHNTlz3gFk67J8uePVW7uDTBzXuIkhU= google.golang.org/api v0.3.0/go.mod h1:IuvZyQh8jgscv8qWfQ4ABd8m7hEudgBFM/EdhA3BnXw= @@ -2014,21 +2314,7 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= -google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= -google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= -google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= -google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= -google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= -google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= -google.golang.org/api v0.81.0 h1:o8WF5AvfidafWbFjsRyupxyEQJNUWxLZJCK5NXrxZZ8= +google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -2041,6 +2327,7 @@ google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181219182458-5a97ab628bfb/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= @@ -2052,6 +2339,7 @@ google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190513181449-d00d292a067c/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -2059,6 +2347,7 @@ google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= @@ -2094,41 +2383,48 @@ google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= -google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b h1:SfSkJugek6xm7lWywqth4r2iTrYLpD8lOj1nMIIhMNM= -google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= -google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc h1:ijGwO+0vL2hJt5gaygqP2j6PfflOBrRot0IczKbmtio= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= +google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -2142,8 +2438,9 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 h1:KR8+MyP7/qOlV+8Af01LtjL04bu7on42eVsxT4EyBQk= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -2152,6 +2449,7 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= @@ -2162,9 +2460,10 @@ gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.66.6 h1:LATuAqN/shcYAOkv3wl2L4rkaKqkcgTBQjOyYDvcPKI= -gopkg.in/ini.v1 v1.66.6/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= gopkg.in/ldap.v3 v3.0.3/go.mod h1:oxD7NyBuxchC+SgJDE1Q5Od05eGt29SDQVBmV+HYbzw= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= @@ -2195,6 +2494,7 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -2204,8 +2504,9 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= +gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20180920025451-e3ad64cb4ed3/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -2214,6 +2515,7 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= k8s.io/api v0.0.0-20190409021203-6e4e0e4f393b/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= k8s.io/api v0.0.0-20190409092523-d687e77c8ae9/go.mod h1:FQEUn50aaytlU65qqBn/w+5ugllHwrBzKm7DzbnXdzE= k8s.io/api v0.18.3/go.mod h1:UOaMwERbqJMfeeeHc8XJKawj4P9TgDRnViIqqBeH2QA= @@ -2223,12 +2525,13 @@ k8s.io/api v0.20.0/go.mod h1:HyLC5l5eoS/ygQYl1BXBgFzWNlkHiAuyNAbevIn+FKg= k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= k8s.io/api v0.23.5/go.mod h1:Na4XuKng8PXJ2JsploYYrivXrINeTaycCGcYgF91Xm8= -k8s.io/api v0.24.2 h1:g518dPU/L7VRLxWfcadQn2OnsiGWVOadTLpdnqgY2OI= k8s.io/api v0.24.2/go.mod h1:AHqbSkTm6YrQ0ObxjO3Pmp/ubFF/KuM7jU+3khoBsOg= +k8s.io/api v0.26.1 h1:f+SWYiPd/GsiWwVRz+NbFyCgvv75Pk9NK6dlkZgpCRQ= +k8s.io/api v0.26.1/go.mod h1:xd/GBNgR0f707+ATNyPmQ1oyKSgndzXij81FzWGsejg= k8s.io/apiextensions-apiserver v0.0.0-20190409022649-727a075fdec8/go.mod h1:IxkesAMoaCRoLrPJdZNZUQp9NfZnzqaVzLhb2VEQzXE= k8s.io/apiextensions-apiserver v0.18.3/go.mod h1:TMsNGs7DYpMXd+8MOCX8KzPOCx8fnZMoIGB24m03+JE= k8s.io/apiextensions-apiserver v0.20.1/go.mod h1:ntnrZV+6a3dB504qwC5PN/Yg9PBiDNt1EVqbW2kORVk= -k8s.io/apiextensions-apiserver v0.23.5 h1:5SKzdXyvIJKu+zbfPc3kCbWpbxi+O+zdmAJBm26UJqI= +k8s.io/apiextensions-apiserver v0.26.0 h1:Gy93Xo1eg2ZIkNX/8vy5xviVSxwQulsnUdQ00nEdpDo= k8s.io/apimachinery v0.0.0-20190404173353-6a84e37a896d/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= k8s.io/apimachinery v0.0.0-20190409092423-760d1845f48b/go.mod h1:FW86P8YXVLsbuplGMZeb20J3jYHscrDqw4jELaFJvRU= k8s.io/apimachinery v0.18.3/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko= @@ -2238,8 +2541,9 @@ k8s.io/apimachinery v0.20.0/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRp k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= k8s.io/apimachinery v0.23.5/go.mod h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM= -k8s.io/apimachinery v0.24.2 h1:5QlH9SL2C8KMcrNJPor+LbXVTaZRReml7svPEh4OKDM= k8s.io/apimachinery v0.24.2/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= +k8s.io/apimachinery v0.26.1 h1:8EZ/eGJL+hY/MYCNwhmDzVqq2lPl3N3Bo8rvweJwXUQ= +k8s.io/apimachinery v0.26.1/go.mod h1:tnPmbONNJ7ByJNz9+n9kMjNP8ON+1qoAIIC70lztu74= k8s.io/apiserver v0.18.3/go.mod h1:tHQRmthRPLUtwqsOnJJMoI8SW3lnoReZeE861lH8vUw= k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= k8s.io/cli-runtime v0.24.2/go.mod h1:1LIhKL2RblkhfG4v5lZEt7FtgFG5mVb8wqv5lE9m5qY= @@ -2250,18 +2554,20 @@ k8s.io/client-go v0.20.0/go.mod h1:4KWh/g+Ocd8KkCwKF8vUNnmqgv+EVnQDK4MBF4oB5tY= k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= k8s.io/client-go v0.23.5/go.mod h1:flkeinTO1CirYgzMPRWxUCnV0G4Fbu2vLhYCObnt/r4= -k8s.io/client-go v0.24.2 h1:CoXFSf8if+bLEbinDqN9ePIDGzcLtqhfd6jpfnwGOFA= k8s.io/client-go v0.24.2/go.mod h1:zg4Xaoo+umDsfCWr4fCnmLEtQXyCNXCvJuSsglNcV30= +k8s.io/client-go v0.26.1 h1:87CXzYJnAMGaa/IDDfRdhTzxk/wzGZ+/HUQpqgVSZXU= +k8s.io/client-go v0.26.1/go.mod h1:IWNSglg+rQ3OcvDkhY6+QLeasV4OYHDjdqeWkDQZwGE= k8s.io/code-generator v0.18.3/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c= k8s.io/code-generator v0.19.0/go.mod h1:moqLn7w0t9cMs4+5CQyxnfA/HV8MF6aAVENF+WZZhgk= k8s.io/code-generator v0.20.0/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbWHJg= k8s.io/code-generator v0.20.1/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbWHJg= -k8s.io/code-generator v0.24.2 h1:EGeRWzJrpwi6T6CvoNl0spM6fnAnOdCr0rz7H4NU1rk= k8s.io/code-generator v0.24.2/go.mod h1:dpVhs00hTuTdTY6jvVxvTFCk6gSMrtfRydbhZwHI15w= +k8s.io/code-generator v0.26.1 h1:dusFDsnNSKlMFYhzIM0jAO1OlnTN5WYwQQ+Ai12IIlo= +k8s.io/code-generator v0.26.1/go.mod h1:OMoJ5Dqx1wgaQzKgc+ZWaZPfGjdRq/Y3WubFrZmeI3I= k8s.io/component-base v0.18.3/go.mod h1:bp5GzGR0aGkYEfTj+eTY0AN/vXTgkJdQXjNTTVUaa3k= k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= -k8s.io/component-base v0.24.2 h1:kwpQdoSfbcH+8MPN4tALtajLDfSfYxBDYlXobNWI6OU= k8s.io/component-base v0.24.2/go.mod h1:ucHwW76dajvQ9B7+zecZAP3BVqvrHoOxm8olHEg0nmM= +k8s.io/component-base v0.26.1 h1:4ahudpeQXHZL5kko+iDHqLj/FSGAEUnSVO0EBbgDd+4= k8s.io/component-helpers v0.24.2/go.mod h1:TRQPBQKfmqkmV6c0HAmUs8cXVNYYYLsXy4zu8eODi9g= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= @@ -2269,8 +2575,9 @@ k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8 k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -k8s.io/gengo v0.0.0-20211129171323-c02415ce4185 h1:TT1WdmqqXareKxZ/oNXEUSwKlLiHzPMyB0t8BaFeBYI= k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20220902162205-c0856e24416d h1:U9tB195lKdzwqicbJvyJeOXV7Klv+wNAWENRnXEGi08= +k8s.io/gengo v0.0.0-20220902162205-c0856e24416d/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v0.0.0-20190306015804-8e90cee79f82/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= @@ -2279,8 +2586,9 @@ k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/klog/v2 v2.60.1 h1:VW25q3bZx9uE3vvdL6M8ezOX79vA2Aq1nEWLqNQclHc= k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4= +k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20180731170545-e3762e86a74c/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= k8s.io/kube-openapi v0.0.0-20190228160746-b3a7cee44a30/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc= k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= @@ -2288,8 +2596,9 @@ k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk= -k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42 h1:Gii5eqf+GmIEwGNKQYQClCayuJCe2/4fZUvF7VG99sU= k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk= +k8s.io/kube-openapi v0.0.0-20221110221610-a28e98eb7c70 h1:zfqQc1V6/ZgGpvrOVvr62OjiqQX4lZjfznK34NQwkqw= +k8s.io/kube-openapi v0.0.0-20221110221610-a28e98eb7c70/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4= k8s.io/kubectl v0.24.2 h1:+RfQVhth8akUmIc2Ge8krMl/pt66V7210ka3RE/p0J4= k8s.io/kubectl v0.24.2/go.mod h1:+HIFJc0bA6Tzu5O/YcuUt45APAxnNL8LeMuXwoiGsPg= k8s.io/metrics v0.24.2 h1:3lgEq973VGPWAEaT9VI/p0XmI0R5kJgb/r9Ufr5fz8k= @@ -2300,22 +2609,27 @@ k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/ k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 h1:HNSDgDCrr/6Ly3WEGKZftiE7IY19Vz2GdbOCyI4qqhc= k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 h1:KTgPnR10d5zhztWptI952TNtt/4u5h3IzDXkdIMuo2Y= +k8s.io/utils v0.0.0-20221128185143-99ec85e7a448/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= layeh.com/radius v0.0.0-20190322222518-890bc1058917/go.mod h1:fywZKyu//X7iRzaxLgPWsvc0L26IUpVvE/aeIL2JtIQ= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +pgregory.net/rapid v0.5.3 h1:163N50IHFqr1phZens4FQOdPgfJscR7a562mjQqeo4M= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/controller-runtime v0.2.2/go.mod h1:9dyohw3ZtoXQuV1e766PHUn+cmrRCIcBh6XIMFNMZ+I= -sigs.k8s.io/controller-runtime v0.11.2 h1:H5GTxQl0Mc9UjRJhORusqfJCIjBO8UtUxGggCwL1rLA= -sigs.k8s.io/controller-runtime v0.11.2/go.mod h1:P6QCzrEjLaZGqHsfd+os7JQ+WFZhvB8MRFsn4dWF7O4= +sigs.k8s.io/controller-runtime v0.14.1 h1:vThDes9pzg0Y+UbCPY3Wj34CGIYPgdmspPm2GIpxpzM= +sigs.k8s.io/controller-runtime v0.14.1/go.mod h1:GaRkrY8a7UZF0kqFFbUKG7n9ICiTY5T55P1RiE3UZlU= sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6/go.mod h1:p4QtZmO4uMYipTQNzagwnNoseA6OxSUutVw05NhYDRs= -sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 h1:kDi4JBNAsJWfz1aEXhO8Jg87JJaPNLh5tIzYHgStQ9Y= sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY= +sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= +sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kind v0.17.0 h1:CScmGz/wX66puA06Gj8OZb76Wmk7JIjgWf5JDvY7msM= sigs.k8s.io/kind v0.17.0/go.mod h1:Qqp8AiwOlMZmJWs37Hgs31xcbiYXjtXlRBSftcnZXQk= sigs.k8s.io/kustomize/api v0.11.4/go.mod h1:k+8RsqYbgpkIrJ4p9jcdPqe8DprLxFUUO0yNOq8C+xI= @@ -2326,8 +2640,9 @@ sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.2.1 h1:bKCqE9GvQ5tiVHn5rfn1r+yao3aLQEaLzkkmAkf+A6Y= sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= +sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= +sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= sigs.k8s.io/testing_frameworks v0.1.1/go.mod h1:VVBKrHmJ6Ekkfz284YKhQePcdycOzNH9qL6ht1zEr/U= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/integration/e2e_test.go b/integration/e2e_test.go index 6572b3611..a702cf839 100644 --- a/integration/e2e_test.go +++ b/integration/e2e_test.go @@ -39,13 +39,13 @@ import ( clitestutil "github.com/akash-network/node/testutil/cli" ccli "github.com/akash-network/node/x/cert/client/cli" deploycli "github.com/akash-network/node/x/deployment/client/cli" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" mcli "github.com/akash-network/node/x/market/client/cli" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/node/x/provider/client/cli" - types "github.com/akash-network/node/x/provider/types/v1beta2" + types "github.com/akash-network/akash-api/go/node/provider/v1beta3" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" providerCmd "github.com/akash-network/provider/cmd/provider-services/cmd" gwrest "github.com/akash-network/provider/gateway/rest" akashclient "github.com/akash-network/provider/pkg/client/clientset/versioned" @@ -495,7 +495,7 @@ func (s *IntegrationTestSuite) TearDownSuite() { s.Require().NoError(err) const ns = "lease" propagation := metav1.DeletePropagationForeground - err = ac.AkashV2beta1().ProviderHosts(ns).DeleteCollection(s.ctx, metav1.DeleteOptions{ + err = ac.AkashV2beta2().ProviderHosts(ns).DeleteCollection(s.ctx, metav1.DeleteOptions{ TypeMeta: metav1.TypeMeta{}, GracePeriodSeconds: nil, Preconditions: nil, diff --git a/integration/escrow_monitor_test.go b/integration/escrow_monitor_test.go index 3098a8cc6..663029100 100644 --- a/integration/escrow_monitor_test.go +++ b/integration/escrow_monitor_test.go @@ -12,9 +12,9 @@ import ( clitestutil "github.com/akash-network/node/testutil/cli" deploycli "github.com/akash-network/node/x/deployment/client/cli" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" mcli "github.com/akash-network/node/x/market/client/cli" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" providerCmd "github.com/akash-network/provider/cmd/provider-services/cmd" ptestutil "github.com/akash-network/provider/testutil/provider" diff --git a/integration/persistentstorage_test.go b/integration/persistentstorage_test.go index 017028d09..f5ae98649 100644 --- a/integration/persistentstorage_test.go +++ b/integration/persistentstorage_test.go @@ -12,13 +12,13 @@ import ( "time" "github.com/cosmos/cosmos-sdk/client/flags" - uuid "github.com/satori/go.uuid" + "github.com/google/uuid" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" clitestutil "github.com/akash-network/node/testutil/cli" deploycli "github.com/akash-network/node/x/deployment/client/cli" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" mcli "github.com/akash-network/node/x/market/client/cli" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" ptestutil "github.com/akash-network/provider/testutil/provider" ) @@ -99,7 +99,7 @@ func (s *E2EPersistentStorageDefault) TestDefaultStorageClass() { s.Require().NoError(err) s.Require().Equal(`default`, string(bodyData)) - testData := uuid.NewV4() + testData := uuid.New() // Hit the endpoint to read a key in redis, foo appURL = fmt.Sprintf("http://%s:%s/SET/value", s.appHost, s.appPort) @@ -200,7 +200,7 @@ func (s *E2EPersistentStorageBeta2) TestDedicatedStorageClass() { bodyData, err := io.ReadAll(httpResp.Body) s.Require().NoError(err) s.Require().Equal(`default`, string(bodyData)) - testData := uuid.NewV4() + testData := uuid.New() // Hit the endpoint to read a key in redis, foo appURL = fmt.Sprintf("http://%s:%s/SET/value", s.appHost, s.appPort) diff --git a/make/codegen.mk b/make/codegen.mk index c53ea89f1..124a0b4f4 100644 --- a/make/codegen.mk +++ b/make/codegen.mk @@ -13,9 +13,9 @@ mocks: $(MOCKERY) modvendor $(MOCKERY) --case=underscore --dir cluster --output cluster/mocks --name Service $(MOCKERY) --case=underscore --dir cluster/kube/metallb --output cluster/mocks --name Client --structname MetalLBClient --filename metallb_client.go $(MOCKERY) --case=underscore --dir cluster/operatorclients --output cluster/mocks --name IPOperatorClient - $(MOCKERY) --case=underscore --dir cluster/types/v1beta2 --output cluster/mocks --name Deployment - $(MOCKERY) --case=underscore --dir cluster/types/v1beta2 --output cluster/mocks --name HostnameServiceClient - $(MOCKERY) --case=underscore --dir cluster/types/v1beta2 --output cluster/mocks --name Reservation + $(MOCKERY) --case=underscore --dir cluster/types/v1beta3 --output cluster/mocks --name Deployment + $(MOCKERY) --case=underscore --dir cluster/types/v1beta3 --output cluster/mocks --name HostnameServiceClient + $(MOCKERY) --case=underscore --dir cluster/types/v1beta3 --output cluster/mocks --name Reservation $(MOCKERY) --case=underscore --dir manifest --output manifest/mocks --name Client $(MOCKERY) --case=underscore --dir manifest --output manifest/mocks --name StatusClient @@ -23,7 +23,8 @@ mocks: $(MOCKERY) modvendor kubetypes: $(K8S_GENERATE_GROUPS) GOBIN=$(AP_DEVCACHE_BIN) $(K8S_GENERATE_GROUPS) all \ github.com/akash-network/provider/pkg/client github.com/akash-network/provider/pkg/apis \ - akash.network:v1,v2beta1 + "akash.network:v2beta1,v2beta2" \ + --go-header-file "pkg/apis/boilerplate.go.txt" .PHONY: codegen codegen: generate kubetypes mocks diff --git a/make/init.mk b/make/init.mk index 85a8ba625..7f5e654fd 100644 --- a/make/init.mk +++ b/make/init.mk @@ -23,14 +23,12 @@ ifndef AP_ROOT PATH := $(AP_DEVCACHE_BIN):$(AP_DEVCACHE_NODE_BIN):$(PATH) endif -#vr = $(shell which docker-credential-desktop) -# -#$(error $(vr)) +-include $(AP_ROOT)/.devenv UNAME_OS := $(shell uname -s) UNAME_OS_LOWER := $(shell uname -s | tr '[:upper:]' '[:lower:]') # uname reports x86_64. rename to amd64 to make it usable by goreleaser -UNAME_ARCH := $(shell uname -m | sed "s/x86_64/amd64/g") +UNAME_ARCH ?= $(shell uname -m | sed "s/x86_64/amd64/g") ifeq (, $(shell which wget)) $(error "No wget in $(PATH), consider installing") @@ -45,6 +43,7 @@ BINS := $(PROVIDER_SERVICES) akash export GO := GO111MODULE=$(GO111MODULE) go GO_MOD_NAME := $(shell go list -m 2>/dev/null) +REPLACED_MODULES := $(shell go list -mod=readonly -m -f '{{ .Replace }}' all 2>/dev/null | grep -v -x -F "" | grep "^/") AKASH_SRC_IS_LOCAL := $(shell $(ROOT_DIR)/script/is_local_gomod.sh "github.com/akash-network/node") AKASH_LOCAL_PATH := $(shell $(GO) list -mod=readonly -m -f '{{ .Replace }}' "github.com/akash-network/node") AKASH_VERSION := $(shell $(GO) list -mod=readonly -m -f '{{ .Version }}' github.com/akash-network/node | cut -c2-) @@ -55,7 +54,7 @@ STATIK_VERSION ?= v0.1.7 GIT_CHGLOG_VERSION ?= v0.15.1 MODVENDOR_VERSION ?= v0.3.0 MOCKERY_VERSION ?= 2.12.1 -K8S_CODE_GEN_VERSION ?= v0.19.3 +K8S_CODE_GEN_VERSION ?= $(shell $(GO) list -mod=readonly -m -f '{{ .Version }}' k8s.io/code-generator) ifeq (0, $(shell which kind &>/dev/null; echo $$?)) KIND_VERSION ?= $(shell kind --version | cut -d" " -f3) @@ -88,12 +87,4 @@ K8S_GO_TO_PROTOBUF := $(AP_DEVCACHE_BIN)/go-to-protobuf NPM := npm GOLANGCI_LINT := $(AP_DEVCACHE_BIN)/golangci-lint -AKASH_BIND_LOCAL ?= - -# if go.mod contains replace for akash on local filesystem -# bind this path to goreleaser -ifeq ($(AKASH_SRC_IS_LOCAL), true) -AKASH_BIND_LOCAL := -v $(AKASH_LOCAL_PATH):$(AKASH_LOCAL_PATH) -endif - include $(AP_ROOT)/make/setup-cache.mk diff --git a/make/mod.mk b/make/mod.mk index cef9ac288..119ea2ec8 100644 --- a/make/mod.mk +++ b/make/mod.mk @@ -13,5 +13,3 @@ modsensure: deps-tidy deps-vendor .PHONY: modvendor modvendor: $(MODVENDOR) modsensure - @echo "vendoring non-go files..." - $(MODVENDOR) -copy="**/*.go.txt **/*.sh" -include=k8s.io/code-generator diff --git a/make/releasing.mk b/make/releasing.mk index d7e810162..e927cd4a4 100644 --- a/make/releasing.mk +++ b/make/releasing.mk @@ -28,6 +28,14 @@ ifeq ($(DETECTED_OS), Darwin) export CGO_CFLAGS=-Wno-deprecated-declarations endif +# if go.mod contains replace for any modules on local filesystem +# mount them into docker during goreleaser build to exactly same path +REPLACED_MODULES := $(shell go list -mod=readonly -m -f '{{ .Replace }}' all 2>/dev/null | grep -v -x -F "" | grep "^/") +ifneq ($(REPLACED_MODULES), ) + GORELEASER_MOUNT_REPLACED := $(foreach mod, $(REPLACED_MODULES), -v $(mod):$(mod)\\) +endif +GORELEASER_MOUNT_REPLACED := $(GORELEASER_MOUNT_REPLACED:\\=) + .PHONY: bins bins: $(BINS) @@ -60,13 +68,14 @@ docker-image: modvendor -e STRIP_FLAGS="$(GORELEASER_STRIP_FLAGS)" \ -e LINKMODE="$(GO_LINKMODE)" \ -e DOCKER_IMAGE=$(RELEASE_DOCKER_IMAGE) \ - -v /var/run/docker.sock:/var/run/docker.sock $(AKASH_BIND_LOCAL) \ + -v /var/run/docker.sock:/var/run/docker.sock \ + $(GORELEASER_MOUNT_REPLACED) \ -v $(shell pwd):/go/src/$(GO_MOD_NAME) \ -w /go/src/$(GO_MOD_NAME) \ $(GORELEASER_IMAGE) \ - -f .goreleaser-docker-$(UNAME_ARCH).yaml \ + -f .goreleaser-docker.yaml \ --debug=$(GORELEASER_DEBUG) \ - --rm-dist \ + --clean \ --skip-validate \ --skip-publish \ --snapshot @@ -90,6 +99,7 @@ release: modvendor gen-changelog -e GORELEASER_CURRENT_TAG="$(RELEASE_TAG)" \ -e DOCKER_IMAGE=$(RELEASE_DOCKER_IMAGE) \ -v /var/run/docker.sock:/var/run/docker.sock \ + $(GORELEASER_MOUNT_REPLACED) \ -v $(shell pwd):/go/src/$(GO_MOD_NAME) \ -w /go/src/$(GO_MOD_NAME)\ $(GORELEASER_IMAGE) \ @@ -97,5 +107,5 @@ release: modvendor gen-changelog $(GORELEASER_SKIP_PUBLISH) \ --skip-validate=$(GORELEASER_SKIP_VALIDATE) \ --debug=$(GORELEASER_DEBUG) \ - --rm-dist \ + --clean \ --release-notes=/go/src/$(GO_MOD_NAME)/.cache/changelog.md diff --git a/make/setup-cache.mk b/make/setup-cache.mk index 96aa93e3c..841a0dfbb 100644 --- a/make/setup-cache.mk +++ b/make/setup-cache.mk @@ -29,7 +29,7 @@ endif ifeq ($(AKASH_SRC_IS_LOCAL), true) akash: @echo "compiling and installing Akash from local sources" - make -C $(AKASH_LOCAL_PATH) akash AKASH=$(AP_DEVCACHE_BIN)/node + make -C $(AKASH_LOCAL_PATH) akash AKASH=$(AP_DEVCACHE_BIN)/akash else $(AKASH_VERSION_FILE): $(AP_DEVCACHE) @echo "Installing akash $(AKASH_VERSION) ..." diff --git a/make/test-integration.mk b/make/test-integration.mk index 60aaae7ee..aa2a0cc65 100644 --- a/make/test-integration.mk +++ b/make/test-integration.mk @@ -34,7 +34,7 @@ test-k8s-integration: # ``` # KUSTOMIZE_INSTALLS=akash-operator-inventory make kind-cluster-setup-e2e # ``` - go test -count=1 -v -tags "$(BUILD_TAGS_K8S_INTEGRATION)" ./pkg/apis/akash.network/v2beta1 + go test -count=1 -v -tags "$(BUILD_TAGS_K8S_INTEGRATION)" ./pkg/apis/akash.network/v2beta2 go test -count=1 -v -tags "$(BUILD_TAGS_K8S_INTEGRATION)" ./cluster/kube diff --git a/manifest/manager.go b/manifest/manager.go index 47523544b..45eabf5ac 100644 --- a/manifest/manager.go +++ b/manifest/manager.go @@ -12,16 +12,15 @@ import ( "github.com/tendermint/tendermint/libs/log" - maniv2beta1 "github.com/akash-network/node/manifest/v2beta1" + maniv2beta1 "github.com/akash-network/akash-api/go/manifest/v2beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/node/pubsub" "github.com/akash-network/node/sdl" sdlutil "github.com/akash-network/node/sdl/util" "github.com/akash-network/node/util/runner" - "github.com/akash-network/node/validation" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - clustertypes "github.com/akash-network/provider/cluster/types/v1beta2" + clustertypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/event" "github.com/akash-network/provider/session" ) @@ -432,11 +431,11 @@ func (m *manager) validateRequest(req manifestRequest) error { return ErrManifestVersion } - if err = validation.ValidateManifest(req.value.Manifest); err != nil { + if err = maniv2beta1.ValidateManifest(req.value.Manifest); err != nil { return err } - if err = validation.ValidateManifestWithDeployment(&req.value.Manifest, m.data.Groups); err != nil { + if err = maniv2beta1.ValidateManifestWithDeployment(&req.value.Manifest, m.data.Groups); err != nil { return err } @@ -469,7 +468,7 @@ func (m *manager) checkHostnamesForManifest(requestManifest maniv2beta1.Manifest continue } - allHostnames = append(allHostnames, sdlutil.AllHostnamesOfManifestGroup(mgroup)...) + allHostnames = append(allHostnames, AllHostnamesOfManifestGroup(mgroup)...) if !m.config.HTTPServicesRequireAtLeastOneHost { continue } diff --git a/manifest/manager_test.go b/manifest/manager_test.go index 32632e7d6..c768d7f55 100644 --- a/manifest/manager_test.go +++ b/manifest/manager_test.go @@ -5,30 +5,26 @@ import ( "testing" "time" - sdlutil "github.com/akash-network/node/sdl/util" - escrowtypes "github.com/akash-network/node/x/escrow/types/v1beta2" - - clustertypes "github.com/akash-network/provider/cluster/types/v1beta2" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" clientMocks "github.com/akash-network/node/client/mocks" "github.com/akash-network/node/pubsub" - "github.com/akash-network/node/sdkutil" - "github.com/akash-network/node/testutil" - + "github.com/akash-network/akash-api/go/sdkutil" "github.com/akash-network/node/sdl" + sdlutil "github.com/akash-network/node/sdl/util" + "github.com/akash-network/node/testutil" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + types "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + escrowtypes "github.com/akash-network/akash-api/go/node/escrow/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + ptypes "github.com/akash-network/akash-api/go/node/provider/v1beta3" "github.com/akash-network/provider/cluster" + clustertypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/event" "github.com/akash-network/provider/session" - - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - types "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" - ptypes "github.com/akash-network/node/x/provider/types/v1beta2" ) type scaffold struct { diff --git a/manifest/mocks/client.go b/manifest/mocks/client.go index 484a14ed0..928cdcbfd 100644 --- a/manifest/mocks/client.go +++ b/manifest/mocks/client.go @@ -9,9 +9,9 @@ import ( testing "testing" - v1beta2 "github.com/akash-network/node/x/deployment/types/v1beta2" + v1beta3 "github.com/akash-network/akash-api/go/node/deployment/v1beta3" - v2beta1 "github.com/akash-network/node/manifest/v2beta1" + v2beta2 "github.com/akash-network/akash-api/go/manifest/v2beta2" ) // Client is an autogenerated mock type for the Client type @@ -20,18 +20,18 @@ type Client struct { } // IsActive provides a mock function with given fields: _a0, _a1 -func (_m *Client) IsActive(_a0 context.Context, _a1 v1beta2.DeploymentID) (bool, error) { +func (_m *Client) IsActive(_a0 context.Context, _a1 v1beta3.DeploymentID) (bool, error) { ret := _m.Called(_a0, _a1) var r0 bool - if rf, ok := ret.Get(0).(func(context.Context, v1beta2.DeploymentID) bool); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.DeploymentID) bool); ok { r0 = rf(_a0, _a1) } else { r0 = ret.Get(0).(bool) } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, v1beta2.DeploymentID) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.DeploymentID) error); ok { r1 = rf(_a0, _a1) } else { r1 = ret.Error(1) @@ -41,11 +41,11 @@ func (_m *Client) IsActive(_a0 context.Context, _a1 v1beta2.DeploymentID) (bool, } // Submit provides a mock function with given fields: _a0, _a1, _a2 -func (_m *Client) Submit(_a0 context.Context, _a1 v1beta2.DeploymentID, _a2 v2beta1.Manifest) error { +func (_m *Client) Submit(_a0 context.Context, _a1 v1beta3.DeploymentID, _a2 v2beta2.Manifest) error { ret := _m.Called(_a0, _a1, _a2) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, v1beta2.DeploymentID, v2beta1.Manifest) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.DeploymentID, v2beta2.Manifest) error); ok { r0 = rf(_a0, _a1, _a2) } else { r0 = ret.Error(0) diff --git a/manifest/parse.go b/manifest/parse.go new file mode 100644 index 000000000..5e4d84784 --- /dev/null +++ b/manifest/parse.go @@ -0,0 +1,28 @@ +package manifest + +import ( + "encoding/base32" + "strings" + + maniv2beta1 "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + "github.com/google/uuid" +) + +func AllHostnamesOfManifestGroup(mgroup maniv2beta1.Group) []string { + allHostnames := make([]string, 0) + for _, service := range mgroup.Services { + for _, expose := range service.Expose { + allHostnames = append(allHostnames, expose.Hosts...) + } + } + + return allHostnames +} + +func IngressHost(lid mtypes.LeaseID, svcName string) string { + uid := uuid.NewSHA1(uuid.NameSpaceDNS, []byte(lid.String()+svcName)) + // MarshalBinary always returns nil + data, _ := uid.MarshalBinary() + return strings.ToLower(base32.HexEncoding.WithPadding(base32.NoPadding).EncodeToString(data)) +} diff --git a/manifest/service.go b/manifest/service.go index 0e6ddf986..3129e8959 100644 --- a/manifest/service.go +++ b/manifest/service.go @@ -5,20 +5,18 @@ import ( "errors" "time" - clustertypes "github.com/akash-network/provider/cluster/types/v1beta2" - "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" "github.com/boz/go-lifecycle" - manifest "github.com/akash-network/node/manifest/v2beta1" - + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" "github.com/akash-network/node/pubsub" dquery "github.com/akash-network/node/x/deployment/query" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + clustertypes "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/event" "github.com/akash-network/provider/session" ) diff --git a/manifest/types.go b/manifest/types.go index d605ad207..486223992 100644 --- a/manifest/types.go +++ b/manifest/types.go @@ -1,9 +1,9 @@ package manifest import ( - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" - maniv2beta1 "github.com/akash-network/node/manifest/v2beta1" + maniv2beta1 "github.com/akash-network/akash-api/go/manifest/v2beta2" ) // Status is the data structure diff --git a/manifest/watchdog.go b/manifest/watchdog.go index d1dc4b4b3..0957f3b90 100644 --- a/manifest/watchdog.go +++ b/manifest/watchdog.go @@ -9,8 +9,8 @@ import ( "github.com/tendermint/tendermint/libs/log" "github.com/akash-network/node/util/runner" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - types "github.com/akash-network/node/x/market/types/v1beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + types "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/session" ) diff --git a/manifest/watchdog_test.go b/manifest/watchdog_test.go index 924241a35..9372611fc 100644 --- a/manifest/watchdog_test.go +++ b/manifest/watchdog_test.go @@ -12,9 +12,9 @@ import ( broadcastmocks "github.com/akash-network/node/client/broadcaster/mocks" clientmocks "github.com/akash-network/node/client/mocks" "github.com/akash-network/node/testutil" - dtypes "github.com/akash-network/node/x/deployment/types/v1beta2" - types "github.com/akash-network/node/x/market/types/v1beta2" - ptypes "github.com/akash-network/node/x/provider/types/v1beta2" + dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3" + types "github.com/akash-network/akash-api/go/node/market/v1beta3" + ptypes "github.com/akash-network/akash-api/go/node/provider/v1beta3" "github.com/akash-network/provider/session" ) diff --git a/mocks/client.go b/mocks/client.go index 2ebee40ac..ab90f9167 100644 --- a/mocks/client.go +++ b/mocks/client.go @@ -15,9 +15,9 @@ import ( testing "testing" - typesv1beta2 "github.com/akash-network/node/x/deployment/types/v1beta2" + v1beta2 "github.com/akash-network/provider/cluster/types/v1beta3" - v1beta2 "github.com/akash-network/provider/cluster/types/v1beta2" + v1beta3 "github.com/akash-network/akash-api/go/node/deployment/v1beta3" ) // Client is an autogenerated mock type for the Client type @@ -113,18 +113,18 @@ func (_m *Client) Status(_a0 context.Context) (*provider.Status, error) { } // Validate provides a mock function with given fields: _a0, _a1 -func (_m *Client) Validate(_a0 context.Context, _a1 typesv1beta2.GroupSpec) (provider.ValidateGroupSpecResult, error) { +func (_m *Client) Validate(_a0 context.Context, _a1 v1beta3.GroupSpec) (provider.ValidateGroupSpecResult, error) { ret := _m.Called(_a0, _a1) var r0 provider.ValidateGroupSpecResult - if rf, ok := ret.Get(0).(func(context.Context, typesv1beta2.GroupSpec) provider.ValidateGroupSpecResult); ok { + if rf, ok := ret.Get(0).(func(context.Context, v1beta3.GroupSpec) provider.ValidateGroupSpecResult); ok { r0 = rf(_a0, _a1) } else { r0 = ret.Get(0).(provider.ValidateGroupSpecResult) } var r1 error - if rf, ok := ret.Get(1).(func(context.Context, typesv1beta2.GroupSpec) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, v1beta3.GroupSpec) error); ok { r1 = rf(_a0, _a1) } else { r1 = ret.Error(1) diff --git a/operator/hostnameoperator/hostname_operator.go b/operator/hostnameoperator/hostname_operator.go index bb76eb779..f0b6eee39 100644 --- a/operator/hostnameoperator/hostname_operator.go +++ b/operator/hostnameoperator/hostname_operator.go @@ -10,9 +10,9 @@ import ( "strings" "time" - manifest "github.com/akash-network/node/manifest/v2beta1" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" sdlutil "github.com/akash-network/node/sdl/util" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" "github.com/spf13/cobra" "github.com/spf13/viper" @@ -22,11 +22,11 @@ import ( "github.com/akash-network/provider/cluster" clusterClient "github.com/akash-network/provider/cluster/kube" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" clusterutil "github.com/akash-network/provider/cluster/util" providerflags "github.com/akash-network/provider/cmd/provider-services/cmd/flags" "github.com/akash-network/provider/operator/operatorcommon" - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) var ( @@ -335,8 +335,8 @@ func locateServiceFromManifest(ctx context.Context, client cluster.Client, lease } if externalPort == uint32(sdlutil.ExposeExternalPort(manifest.ServiceExpose{ - Port: expose.Port, - ExternalPort: expose.ExternalPort, + Port: uint32(expose.Port), + ExternalPort: uint32(expose.ExternalPort), })) { selectedExpose = expose break diff --git a/operator/hostnameoperator/hostname_operator_test.go b/operator/hostnameoperator/hostname_operator_test.go index 941113569..43d24ca3f 100644 --- a/operator/hostnameoperator/hostname_operator_test.go +++ b/operator/hostnameoperator/hostname_operator_test.go @@ -9,16 +9,16 @@ import ( "testing" "time" - "github.com/akash-network/node/testutil" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + "github.com/akash-network/node/testutil" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/cluster/mocks" - cluster "github.com/akash-network/provider/cluster/types/v1beta2" + cluster "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/operator/operatorcommon" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) type testHostnameResourceEv struct { diff --git a/operator/hostnameoperator/hostname_operator_types.go b/operator/hostnameoperator/hostname_operator_types.go index b8adb27e2..9fa47ff19 100644 --- a/operator/hostnameoperator/hostname_operator_types.go +++ b/operator/hostnameoperator/hostname_operator_types.go @@ -3,9 +3,9 @@ package hostnameoperator import ( "time" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" ) type managedHostname struct { diff --git a/operator/inventory/ceph.go b/operator/inventory/ceph.go index c6742b48f..702691838 100644 --- a/operator/inventory/ceph.go +++ b/operator/inventory/ceph.go @@ -19,7 +19,7 @@ import ( "github.com/akash-network/node/util/runner" - akashv2beta1 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + akashv2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) const ( @@ -267,7 +267,7 @@ func (c *ceph) run() error { log.Error(err, "unable to pull ceph status") } - if data, valid := res.Value().([]akashv2beta1.InventoryClusterStorage); valid { + if data, valid := res.Value().([]akashv2beta2.InventoryClusterStorage); valid { r.res = data } @@ -280,8 +280,8 @@ func (c *ceph) run() error { } } -func (c *ceph) scrapeMetrics(ctx context.Context, scs cephStorageClasses, clusters map[string]string) ([]akashv2beta1.InventoryClusterStorage, error) { - var res []akashv2beta1.InventoryClusterStorage +func (c *ceph) scrapeMetrics(ctx context.Context, scs cephStorageClasses, clusters map[string]string) ([]akashv2beta2.InventoryClusterStorage, error) { + var res []akashv2beta2.InventoryClusterStorage dfResults := make(map[string]dfResp, len(clusters)) for clusterID, ns := range clusters { @@ -307,9 +307,9 @@ func (c *ceph) scrapeMetrics(ctx context.Context, scs cephStorageClasses, cluste for _, pool := range df.Pools { if pool.Name == params.pool { - res = append(res, akashv2beta1.InventoryClusterStorage{ + res = append(res, akashv2beta2.InventoryClusterStorage{ Class: class, - ResourcePair: akashv2beta1.ResourcePair{ + ResourcePair: akashv2beta2.ResourcePair{ Allocated: pool.Stats.BytesUsed, Allocatable: pool.Stats.MaxAvail, }, diff --git a/operator/inventory/cmd.go b/operator/inventory/cmd.go index c3388db84..175dbd5d4 100644 --- a/operator/inventory/cmd.go +++ b/operator/inventory/cmd.go @@ -28,7 +28,7 @@ import ( "github.com/akash-network/provider/cluster/kube/clientcommon" providerflags "github.com/akash-network/provider/cmd/provider-services/cmd/flags" cmdutil "github.com/akash-network/provider/cmd/provider-services/cmd/util" - akashv2beta1 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + akashv2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" akashclientset "github.com/akash-network/provider/pkg/client/clientset/versioned" ) @@ -202,17 +202,17 @@ func newRouter(_ logr.Logger, apiTimeout, queryTimeout time.Duration) *mux.Route router.HandleFunc("/inventory", func(w http.ResponseWriter, req *http.Request) { storage := StorageFromCtx(req.Context()) - inv := akashv2beta1.Inventory{ + inv := akashv2beta2.Inventory{ TypeMeta: metav1.TypeMeta{ Kind: "Inventory", - APIVersion: "akash.network/v2beta1", + APIVersion: "akash.network/v2beta2", }, ObjectMeta: metav1.ObjectMeta{ CreationTimestamp: metav1.NewTime(time.Now().UTC()), }, - Spec: akashv2beta1.InventorySpec{}, - Status: akashv2beta1.InventoryStatus{ - State: akashv2beta1.InventoryStatePulled, + Spec: akashv2beta2.InventorySpec{}, + Status: akashv2beta2.InventoryStatus{ + State: akashv2beta2.InventoryStatePulled, }, } @@ -257,7 +257,7 @@ func newRouter(_ logr.Logger, apiTimeout, queryTimeout time.Duration) *mux.Route inv.Status.Messages = append(inv.Status.Messages, res.Error().Error()) } - if inventory, valid := res.Value().([]akashv2beta1.InventoryClusterStorage); valid { + if inventory, valid := res.Value().([]akashv2beta2.InventoryClusterStorage); valid { inv.Spec.Storage = append(inv.Spec.Storage, inventory...) } } diff --git a/operator/inventory/rancher.go b/operator/inventory/rancher.go index 1b3fa52b0..34816fe0f 100644 --- a/operator/inventory/rancher.go +++ b/operator/inventory/rancher.go @@ -14,7 +14,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/watch" - akashv2beta1 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + akashv2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) type rancher struct { @@ -64,7 +64,7 @@ func (c *rancher) run() error { scs := make(rancherStorageClasses) - resources := akashv2beta1.ResourcePair{ + resources := akashv2beta2.ResourcePair{ Allocatable: math.MaxUint64, } @@ -190,13 +190,13 @@ func (c *rancher) run() error { var resp resp if pvSynced { - var res []akashv2beta1.InventoryClusterStorage + var res []akashv2beta2.InventoryClusterStorage for class, params := range scs { if params.isRancher && params.isAkashManaged { - res = append(res, akashv2beta1.InventoryClusterStorage{ + res = append(res, akashv2beta2.InventoryClusterStorage{ Class: class, - ResourcePair: akashv2beta1.ResourcePair{ + ResourcePair: akashv2beta2.ResourcePair{ Allocated: params.allocated, Allocatable: resources.Allocatable, }, diff --git a/operator/inventory/types.go b/operator/inventory/types.go index 889764e05..33ef48b96 100644 --- a/operator/inventory/types.go +++ b/operator/inventory/types.go @@ -14,7 +14,7 @@ import ( "k8s.io/client-go/tools/cache" providerflags "github.com/akash-network/provider/cmd/provider-services/cmd/flags" - akashv2beta1 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + akashv2beta1 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" ) const ( @@ -84,7 +84,7 @@ type Watcher interface { } type RemotePodCommandExecutor interface { - ExecWithOptions(options rookexec.ExecOptions) (string, string, error) + ExecWithOptions(ctx context.Context, options rookexec.ExecOptions) (string, string, error) ExecCommandInContainerWithFullOutput(ctx context.Context, appLabel, containerName, namespace string, cmd ...string) (string, string, error) // ExecCommandInContainerWithFullOutputWithTimeout uses 15s hard-coded timeout ExecCommandInContainerWithFullOutputWithTimeout(ctx context.Context, appLabel, containerName, namespace string, cmd ...string) (string, string, error) @@ -99,7 +99,7 @@ func NewRemotePodCommandExecutor(restcfg *rest.Config, clientset *kubernetes.Cli func InformKubeObjects(ctx context.Context, pubsub *pubsub.PubSub, informer cache.SharedIndexInformer, topic string) { ErrGroupFromCtx(ctx).Go(func() error { - informer.AddEventHandler(cache.ResourceEventHandlerFuncs{ + _, err := informer.AddEventHandler(cache.ResourceEventHandlerFuncs{ AddFunc: func(obj interface{}) { pubsub.Pub(watch.Event{ Type: watch.Added, @@ -120,6 +120,11 @@ func InformKubeObjects(ctx context.Context, pubsub *pubsub.PubSub, informer cach }, }) + if err != nil { + LogFromCtx(ctx).Error(err, "couldn't register event handlers") + return nil + } + informer.Run(ctx.Done()) return nil }) diff --git a/operator/ipoperator/ip_operator.go b/operator/ipoperator/ip_operator.go index 7c3df109f..68ecdd656 100644 --- a/operator/ipoperator/ip_operator.go +++ b/operator/ipoperator/ip_operator.go @@ -22,13 +22,13 @@ import ( kubeErrors "k8s.io/apimachinery/pkg/api/errors" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" "github.com/akash-network/provider/cluster" clusterClient "github.com/akash-network/provider/cluster/kube" "github.com/akash-network/provider/cluster/kube/metallb" - "github.com/akash-network/provider/cluster/types/v1beta2" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" + "github.com/akash-network/provider/cluster/types/v1beta3" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" clusterutil "github.com/akash-network/provider/cluster/util" providerflags "github.com/akash-network/provider/cmd/provider-services/cmd/flags" ipoptypes "github.com/akash-network/provider/operator/ipoperator/types" diff --git a/operator/ipoperator/ip_operator_test.go b/operator/ipoperator/ip_operator_test.go index 5aff9c64b..bd3fbb32c 100644 --- a/operator/ipoperator/ip_operator_test.go +++ b/operator/ipoperator/ip_operator_test.go @@ -5,16 +5,17 @@ import ( "testing" "time" - manifest "github.com/akash-network/node/manifest/v2beta1" - "github.com/akash-network/node/testutil" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" kubeErrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime/schema" + manifest "github.com/akash-network/akash-api/go/manifest/v2beta2" + "github.com/akash-network/node/testutil" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + "github.com/akash-network/provider/cluster/mocks" - "github.com/akash-network/provider/cluster/types/v1beta2" + "github.com/akash-network/provider/cluster/types/v1beta3" "github.com/akash-network/provider/operator/operatorcommon" ) diff --git a/operator/ipoperator/ip_operator_types.go b/operator/ipoperator/ip_operator_types.go index a5d83e244..1182139fb 100644 --- a/operator/ipoperator/ip_operator_types.go +++ b/operator/ipoperator/ip_operator_types.go @@ -5,10 +5,10 @@ import ( "sync/atomic" "time" - "github.com/akash-network/node/manifest/v2beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" - "github.com/akash-network/provider/cluster/types/v1beta2" + "github.com/akash-network/provider/cluster/types/v1beta3" ) /* @@ -23,7 +23,7 @@ type managedIP struct { presentExternalPort uint32 presentPort uint32 lastChangedAt time.Time - presentProtocol v2beta1.ServiceProtocol + presentProtocol v2beta2.ServiceProtocol } type barrier struct { diff --git a/operator/ipoperator/types/delete_reservation_request.go b/operator/ipoperator/types/delete_reservation_request.go index 8c0efa0e0..c71562ec7 100644 --- a/operator/ipoperator/types/delete_reservation_request.go +++ b/operator/ipoperator/types/delete_reservation_request.go @@ -1,7 +1,7 @@ package types import ( - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" ) type IPReservationDelete struct { diff --git a/operator/ipoperator/types/reservation_request.go b/operator/ipoperator/types/reservation_request.go index 17e51c838..c29772988 100644 --- a/operator/ipoperator/types/reservation_request.go +++ b/operator/ipoperator/types/reservation_request.go @@ -1,6 +1,6 @@ package types -import mtypes "github.com/akash-network/node/x/market/types/v1beta2" +import mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" type IPReservationRequest struct { OrderID mtypes.OrderID diff --git a/operator/operatorcommon/ignore_list.go b/operator/operatorcommon/ignore_list.go index 27c0824e7..70a56cd80 100644 --- a/operator/operatorcommon/ignore_list.go +++ b/operator/operatorcommon/ignore_list.go @@ -6,7 +6,7 @@ import ( "fmt" "time" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" clusterutil "github.com/akash-network/provider/cluster/util" ) diff --git a/pkg/apis/akash.network/crd.yaml b/pkg/apis/akash.network/crd.yaml index bd62490ad..baac8b460 100644 --- a/pkg/apis/akash.network/crd.yaml +++ b/pkg/apis/akash.network/crd.yaml @@ -15,9 +15,142 @@ spec: shortNames: - mani versions: - - name: v2beta1 + - name: v2beta2 served: true storage: true + schema: + openAPIV3Schema: + type: object + properties: + spec: + type: object + properties: + lease_id: + type: object + properties: + owner: + type: string + dseq: + type: string + format: uint64 + gseq: + type: integer + oseq: + type: integer + provider: + type: string + group: + type: object + properties: + name: + type: string + services: + type: array + items: + type: object + properties: + name: + type: string + image: + type: string + command: + type: array + items: + type: string + args: + type: array + items: + type: string + env: + type: array + items: + type: string + unit: + type: object + properties: + cpu: + type: number + format: uint32 + memory: + type: string + format: uint64 + gpu: + type: number + format: uint32 + storage: + type: array + items: + type: object + properties: + size: + type: string + format: uint64 + name: + type: string + count: + type: number + format: uint64 + expose: + type: array + items: + type: object + properties: + endpoint_sequence_number: + type: number + format: uint32 + ip: + type: string + port: + type: integer + format: uint16 + external_port: + type: integer + format: uint16 + proto: + type: string + service: + type: string + global: + type: boolean + http_options: + type: object + properties: + max_body_size: + type: integer + read_timeout: + type: integer + send_timeout: + type: integer + next_tries: + type: integer + next_timeout: + type: integer + next_cases: + type: array + items: + type: string + hosts: + type: array + items: + type: string + params: + type: object + nullable: true + properties: + storage: + type: array + items: + type: object + properties: + name: + type: string + readOnly: + type: boolean + mount: + type: string + - name: v2beta1 + served: true + storage: false schema: openAPIV3Schema: type: object @@ -170,7 +303,7 @@ spec: - ph # list of versions supported by this CustomResourceDefinition versions: - - name: v2beta1 + - name: v2beta2 # Each version can be enabled/disabled by Served flag. served: true # One and only one version must be marked as the storage version. @@ -198,6 +331,34 @@ spec: type: integer oseq: type: integer + - name: v2beta1 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: false + schema: + openAPIV3Schema: + type: object + properties: + spec: + type: object + properties: + service_name: + type: string + external_port: + type: integer + hostname: + type: string + owner: + type: string + provider: + type: string + dseq: + type: integer + gseq: + type: integer + oseq: + type: integer --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition @@ -213,7 +374,7 @@ spec: scope: Namespaced # list of versions supported by this CustomResourceDefinition versions: - - name: v2beta1 + - name: v2beta2 # Each version can be enabled/disabled by Served flag. served: true # One and only one version must be marked as the storage version. @@ -249,6 +410,42 @@ spec: type: string sharing_key: type: string + - name: v2beta1 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: false + schema: + openAPIV3Schema: + type: object + properties: + spec: + type: object + properties: + lease_id: + type: object + properties: + owner: + type: string + dseq: + type: string + format: uint64 + gseq: + type: integer + oseq: + type: integer + provider: + type: string + service_name: + type: string + port: + type: integer + external_port: + type: integer + protocol: + type: string + sharing_key: + type: string names: # plural name to be used in the URL: /apis/// plural: providerleasedips diff --git a/pkg/apis/akash.network/v1/doc.go b/pkg/apis/akash.network/v1/doc.go deleted file mode 100644 index 18edee2d5..000000000 --- a/pkg/apis/akash.network/v1/doc.go +++ /dev/null @@ -1,24 +0,0 @@ -// +k8s:deepcopy-gen=package -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true -// +groupName=akash.network - -// Package v1 is the initial version of types which integrate with the Kubernetes API. -// -// Contains the Stack Definition Language(pkg: github.com/akash-network/node/sdl) Manifest -// declarations which are written to Kubernetes CRDs for storage. -// -// Manifest { -// ManifestSpec { -// k8s.TypeMeta -// LeaseID -// ManifestGroup -// k8s.TypeMeta -// Name -// []*ManifestService -// ManifestService analogous to a running container. -// ManifestStatus -// State -// Message -// } -package v1 diff --git a/pkg/apis/akash.network/v1/zz_generated.deepcopy.go b/pkg/apis/akash.network/v1/zz_generated.deepcopy.go deleted file mode 100644 index c660105d7..000000000 --- a/pkg/apis/akash.network/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,346 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LeaseID) DeepCopyInto(out *LeaseID) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseID. -func (in *LeaseID) DeepCopy() *LeaseID { - if in == nil { - return nil - } - out := new(LeaseID) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Manifest) DeepCopyInto(out *Manifest) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Manifest. -func (in *Manifest) DeepCopy() *Manifest { - if in == nil { - return nil - } - out := new(Manifest) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Manifest) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ManifestGroup) DeepCopyInto(out *ManifestGroup) { - *out = *in - if in.Services != nil { - in, out := &in.Services, &out.Services - *out = make([]ManifestService, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestGroup. -func (in *ManifestGroup) DeepCopy() *ManifestGroup { - if in == nil { - return nil - } - out := new(ManifestGroup) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ManifestList) DeepCopyInto(out *ManifestList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Manifest, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestList. -func (in *ManifestList) DeepCopy() *ManifestList { - if in == nil { - return nil - } - out := new(ManifestList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ManifestList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ManifestService) DeepCopyInto(out *ManifestService) { - *out = *in - if in.Args != nil { - in, out := &in.Args, &out.Args - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]string, len(*in)) - copy(*out, *in) - } - out.Resources = in.Resources - if in.Expose != nil { - in, out := &in.Expose, &out.Expose - *out = make([]ManifestServiceExpose, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestService. -func (in *ManifestService) DeepCopy() *ManifestService { - if in == nil { - return nil - } - out := new(ManifestService) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ManifestServiceExpose) DeepCopyInto(out *ManifestServiceExpose) { - *out = *in - if in.Hosts != nil { - in, out := &in.Hosts, &out.Hosts - *out = make([]string, len(*in)) - copy(*out, *in) - } - in.HTTPOptions.DeepCopyInto(&out.HTTPOptions) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestServiceExpose. -func (in *ManifestServiceExpose) DeepCopy() *ManifestServiceExpose { - if in == nil { - return nil - } - out := new(ManifestServiceExpose) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ManifestServiceExposeHTTPOptions) DeepCopyInto(out *ManifestServiceExposeHTTPOptions) { - *out = *in - if in.NextCases != nil { - in, out := &in.NextCases, &out.NextCases - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestServiceExposeHTTPOptions. -func (in *ManifestServiceExposeHTTPOptions) DeepCopy() *ManifestServiceExposeHTTPOptions { - if in == nil { - return nil - } - out := new(ManifestServiceExposeHTTPOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ManifestSpec) DeepCopyInto(out *ManifestSpec) { - *out = *in - out.LeaseID = in.LeaseID - in.Group.DeepCopyInto(&out.Group) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestSpec. -func (in *ManifestSpec) DeepCopy() *ManifestSpec { - if in == nil { - return nil - } - out := new(ManifestSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ManifestStatus) DeepCopyInto(out *ManifestStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestStatus. -func (in *ManifestStatus) DeepCopy() *ManifestStatus { - if in == nil { - return nil - } - out := new(ManifestStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProviderHost) DeepCopyInto(out *ProviderHost) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - out.Status = in.Status - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderHost. -func (in *ProviderHost) DeepCopy() *ProviderHost { - if in == nil { - return nil - } - out := new(ProviderHost) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ProviderHost) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProviderHostList) DeepCopyInto(out *ProviderHostList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ProviderHost, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderHostList. -func (in *ProviderHostList) DeepCopy() *ProviderHostList { - if in == nil { - return nil - } - out := new(ProviderHostList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ProviderHostList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProviderHostSpec) DeepCopyInto(out *ProviderHostSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderHostSpec. -func (in *ProviderHostSpec) DeepCopy() *ProviderHostSpec { - if in == nil { - return nil - } - out := new(ProviderHostSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProviderHostStatus) DeepCopyInto(out *ProviderHostStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderHostStatus. -func (in *ProviderHostStatus) DeepCopy() *ProviderHostStatus { - if in == nil { - return nil - } - out := new(ProviderHostStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceUnits) DeepCopyInto(out *ResourceUnits) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceUnits. -func (in *ResourceUnits) DeepCopy() *ResourceUnits { - if in == nil { - return nil - } - out := new(ResourceUnits) - in.DeepCopyInto(out) - return out -} diff --git a/pkg/apis/akash.network/v2beta1/migrate/manifest.go b/pkg/apis/akash.network/v2beta1/migrate/manifest.go deleted file mode 100644 index 5dff4e8c6..000000000 --- a/pkg/apis/akash.network/v2beta1/migrate/manifest.go +++ /dev/null @@ -1,97 +0,0 @@ -package migrate - -import ( - "github.com/akash-network/provider/pkg/apis/akash.network/v1" - "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" -) - -func ManifestSpecFromV1(from v1.ManifestSpec) v2beta1.ManifestSpec { - to := v2beta1.ManifestSpec{ - LeaseID: LeaseIDFromV1(from.LeaseID), - Group: ManifestGroupFromV1(from.Group), - } - - return to -} - -func LeaseIDFromV1(from v1.LeaseID) v2beta1.LeaseID { - return v2beta1.LeaseID{ - Owner: from.Owner, - DSeq: from.DSeq, - GSeq: from.GSeq, - OSeq: from.OSeq, - Provider: from.Provider, - } -} - -func ManifestGroupFromV1(from v1.ManifestGroup) v2beta1.ManifestGroup { - to := v2beta1.ManifestGroup{ - Name: from.Name, - Services: ManifestServiceFromV1(from.Services), - } - - return to -} - -func ManifestServiceFromV1(from []v1.ManifestService) []v2beta1.ManifestService { - to := make([]v2beta1.ManifestService, 0, len(from)) - - for _, oldSvc := range from { - svc := v2beta1.ManifestService{ - Name: oldSvc.Name, - Image: oldSvc.Image, - Count: oldSvc.Count, - Args: oldSvc.Args, - Env: oldSvc.Env, - Expose: ManifestServiceExposeFromV1(oldSvc.Expose), - Resources: ManifestResourceUnitsFromV1(oldSvc.Resources), - Params: nil, // v1 does not have params section, so nil - } - - to = append(to, svc) - } - - return to -} - -func ManifestServiceExposeFromV1(from []v1.ManifestServiceExpose) []v2beta1.ManifestServiceExpose { - to := make([]v2beta1.ManifestServiceExpose, 0, len(from)) - - for _, oldExpose := range from { - expose := v2beta1.ManifestServiceExpose{ - Port: oldExpose.Port, - ExternalPort: oldExpose.ExternalPort, - Proto: oldExpose.Proto, - Service: oldExpose.Service, - Global: oldExpose.Global, - Hosts: oldExpose.Hosts, - HTTPOptions: v2beta1.ManifestServiceExposeHTTPOptions{ - MaxBodySize: oldExpose.HTTPOptions.MaxBodySize, - ReadTimeout: oldExpose.HTTPOptions.ReadTimeout, - SendTimeout: oldExpose.HTTPOptions.SendTimeout, - NextTries: oldExpose.HTTPOptions.NextTries, - NextTimeout: oldExpose.HTTPOptions.NextTimeout, - NextCases: oldExpose.HTTPOptions.NextCases, - }, - } - - to = append(to, expose) - } - - return to -} - -func ManifestResourceUnitsFromV1(from v1.ResourceUnits) v2beta1.ResourceUnits { - to := v2beta1.ResourceUnits{ - CPU: from.CPU, - Memory: from.Memory, - Storage: []v2beta1.ManifestServiceStorage{ - { - Name: "default", - Size: from.Storage, - }, - }, - } - - return to -} diff --git a/pkg/apis/akash.network/v2beta1/migrate/provider_host.go b/pkg/apis/akash.network/v2beta1/migrate/provider_host.go deleted file mode 100644 index 7f1ec5185..000000000 --- a/pkg/apis/akash.network/v2beta1/migrate/provider_host.go +++ /dev/null @@ -1,21 +0,0 @@ -package migrate - -import ( - v1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" - "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" -) - -func ProviderHostsSpecFromV1(from v1.ProviderHostSpec) v2beta1.ProviderHostSpec { - to := v2beta1.ProviderHostSpec{ - Owner: from.Owner, - Provider: from.Provider, - Hostname: from.Hostname, - Dseq: from.Dseq, - Gseq: from.Gseq, - Oseq: from.Oseq, - ServiceName: from.ServiceName, - ExternalPort: from.ExternalPort, - } - - return to -} diff --git a/pkg/apis/akash.network/v2beta1/types.go b/pkg/apis/akash.network/v2beta1/types.go index 92614222b..7139e07df 100644 --- a/pkg/apis/akash.network/v2beta1/types.go +++ b/pkg/apis/akash.network/v2beta1/types.go @@ -4,18 +4,17 @@ import ( "math" "strconv" - ctypes "github.com/akash-network/provider/cluster/types/v1beta2" - clusterutil "github.com/akash-network/provider/cluster/util" - "github.com/pkg/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" sdk "github.com/cosmos/cosmos-sdk/types" - types "github.com/akash-network/node/types/v1beta2" - mtypes "github.com/akash-network/node/x/market/types/v1beta2" + maniv2beta1 "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" - maniv2beta1 "github.com/akash-network/node/manifest/v2beta1" + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" + clusterutil "github.com/akash-network/provider/cluster/util" ) // +genclient @@ -329,8 +328,8 @@ func (mse ManifestServiceExpose) toAkash() (maniv2beta1.ServiceExpose, error) { return maniv2beta1.ServiceExpose{}, err } return maniv2beta1.ServiceExpose{ - Port: mse.Port, - ExternalPort: mse.ExternalPort, + Port: uint32(mse.Port), + ExternalPort: uint32(mse.ExternalPort), Proto: proto, Service: mse.Service, Global: mse.Global, @@ -357,8 +356,8 @@ func (mse ManifestServiceExpose) DetermineExposedExternalPort() uint16 { func manifestServiceExposeFromAkash(amse maniv2beta1.ServiceExpose) ManifestServiceExpose { return ManifestServiceExpose{ - Port: amse.Port, - ExternalPort: amse.ExternalPort, + Port: uint16(amse.Port), + ExternalPort: uint16(amse.ExternalPort), Proto: amse.Proto.ToString(), Service: amse.Service, Global: amse.Global, diff --git a/pkg/apis/akash.network/v2beta1/zz_generated.deepcopy.go b/pkg/apis/akash.network/v2beta1/zz_generated.deepcopy.go index 440d51aed..f264f2841 100644 --- a/pkg/apis/akash.network/v2beta1/zz_generated.deepcopy.go +++ b/pkg/apis/akash.network/v2beta1/zz_generated.deepcopy.go @@ -2,7 +2,7 @@ // +build !ignore_autogenerated /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -341,6 +341,11 @@ func (in *ManifestList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ManifestService) DeepCopyInto(out *ManifestService) { *out = *in + if in.Command != nil { + in, out := &in.Command, &out.Command + *out = make([]string, len(*in)) + copy(*out, *in) + } if in.Args != nil { in, out := &in.Args, &out.Args *out = make([]string, len(*in)) diff --git a/pkg/apis/akash.network/v2beta2/doc.go b/pkg/apis/akash.network/v2beta2/doc.go new file mode 100644 index 000000000..58b538c61 --- /dev/null +++ b/pkg/apis/akash.network/v2beta2/doc.go @@ -0,0 +1,6 @@ +// +k8s:deepcopy-gen=package,register +// +k8s:defaulter-gen=TypeMeta +// +k8s:openapi-gen=true +// +groupName=akash.network + +package v2beta2 diff --git a/pkg/apis/akash.network/v2beta1/k8s_integration_test.go b/pkg/apis/akash.network/v2beta2/k8s_integration_test.go similarity index 94% rename from pkg/apis/akash.network/v2beta1/k8s_integration_test.go rename to pkg/apis/akash.network/v2beta2/k8s_integration_test.go index c86dc55c3..809b8deef 100644 --- a/pkg/apis/akash.network/v2beta1/k8s_integration_test.go +++ b/pkg/apis/akash.network/v2beta2/k8s_integration_test.go @@ -1,7 +1,7 @@ //go:build k8s_integration // +build k8s_integration -package v2beta1_test +package v2beta2_test import ( "context" @@ -22,9 +22,9 @@ import ( atestutil "github.com/akash-network/node/testutil" clusterutil "github.com/akash-network/provider/cluster/util" - crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + crd "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" akashclient "github.com/akash-network/provider/pkg/client/clientset/versioned" - mtestutil "github.com/akash-network/provider/testutil/manifest" + mtestutil "github.com/akash-network/provider/testutil/manifest/v2beta2" ) func TestWriteRead(t *testing.T) { @@ -48,7 +48,7 @@ func TestWriteRead(t *testing.T) { require.NoError(t, err, spec.Name) // save to k8s - obj, err := client.AkashV2beta1().Manifests(ns).Create(ctx, kmani, metav1.CreateOptions{}) + obj, err := client.AkashV2beta2().Manifests(ns).Create(ctx, kmani, metav1.CreateOptions{}) require.NoError(t, err, spec.Name) // ensure created CRD has correct name diff --git a/pkg/apis/akash.network/v2beta2/migrate/manifest.go b/pkg/apis/akash.network/v2beta2/migrate/manifest.go new file mode 100644 index 000000000..6546d65c3 --- /dev/null +++ b/pkg/apis/akash.network/v2beta2/migrate/manifest.go @@ -0,0 +1,97 @@ +package migrate + +// import ( +// "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" +// "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" +// ) +// +// func ManifestSpecFromV1(from v1.ManifestSpec) v2beta1.ManifestSpec { +// to := v2beta1.ManifestSpec{ +// LeaseID: LeaseIDFromV1(from.LeaseID), +// Group: ManifestGroupFromV1(from.Group), +// } +// +// return to +// } +// +// func LeaseIDFromV1(from v1.LeaseID) v2beta1.LeaseID { +// return v2beta1.LeaseID{ +// Owner: from.Owner, +// DSeq: from.DSeq, +// GSeq: from.GSeq, +// OSeq: from.OSeq, +// Provider: from.Provider, +// } +// } +// +// func ManifestGroupFromV1(from v1.ManifestGroup) v2beta1.ManifestGroup { +// to := v2beta1.ManifestGroup{ +// Name: from.Name, +// Services: ManifestServiceFromV1(from.Services), +// } +// +// return to +// } +// +// func ManifestServiceFromV1(from []v1.ManifestService) []v2beta1.ManifestService { +// to := make([]v2beta1.ManifestService, 0, len(from)) +// +// for _, oldSvc := range from { +// svc := v2beta1.ManifestService{ +// Name: oldSvc.Name, +// Image: oldSvc.Image, +// Count: oldSvc.Count, +// Args: oldSvc.Args, +// Env: oldSvc.Env, +// Expose: ManifestServiceExposeFromV1(oldSvc.Expose), +// Resources: ManifestResourceUnitsFromV1(oldSvc.Resources), +// Params: nil, // v1 does not have params section, so nil +// } +// +// to = append(to, svc) +// } +// +// return to +// } +// +// func ManifestServiceExposeFromV1(from []v1.ManifestServiceExpose) []v2beta1.ManifestServiceExpose { +// to := make([]v2beta1.ManifestServiceExpose, 0, len(from)) +// +// for _, oldExpose := range from { +// expose := v2beta1.ManifestServiceExpose{ +// Port: oldExpose.Port, +// ExternalPort: oldExpose.ExternalPort, +// Proto: oldExpose.Proto, +// Service: oldExpose.Service, +// Global: oldExpose.Global, +// Hosts: oldExpose.Hosts, +// HTTPOptions: v2beta1.ManifestServiceExposeHTTPOptions{ +// MaxBodySize: oldExpose.HTTPOptions.MaxBodySize, +// ReadTimeout: oldExpose.HTTPOptions.ReadTimeout, +// SendTimeout: oldExpose.HTTPOptions.SendTimeout, +// NextTries: oldExpose.HTTPOptions.NextTries, +// NextTimeout: oldExpose.HTTPOptions.NextTimeout, +// NextCases: oldExpose.HTTPOptions.NextCases, +// }, +// } +// +// to = append(to, expose) +// } +// +// return to +// } +// +// func ManifestResourceUnitsFromV1(from v1.ResourceUnits) v2beta1.ResourceUnits { +// to := v2beta1.ResourceUnits{ +// CPU: from.CPU, +// Memory: from.Memory, +// Storage: []v2beta1.ManifestServiceStorage{ +// { +// Name: "default", +// Size: from.Storage, +// }, +// }, +// } +// +// return to +// } diff --git a/pkg/apis/akash.network/v2beta2/migrate/provider_host.go b/pkg/apis/akash.network/v2beta2/migrate/provider_host.go new file mode 100644 index 000000000..94016e078 --- /dev/null +++ b/pkg/apis/akash.network/v2beta2/migrate/provider_host.go @@ -0,0 +1,21 @@ +package migrate + +// import ( +// v1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" +// "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" +// ) +// +// func ProviderHostsSpecFromV1(from v1.ProviderHostSpec) v2beta1.ProviderHostSpec { +// to := v2beta1.ProviderHostSpec{ +// Owner: from.Owner, +// Provider: from.Provider, +// Hostname: from.Hostname, +// Dseq: from.Dseq, +// Gseq: from.Gseq, +// Oseq: from.Oseq, +// ServiceName: from.ServiceName, +// ExternalPort: from.ExternalPort, +// } +// +// return to +// } diff --git a/pkg/apis/akash.network/v1/register.go b/pkg/apis/akash.network/v2beta2/register.go similarity index 79% rename from pkg/apis/akash.network/v1/register.go rename to pkg/apis/akash.network/v2beta2/register.go index 94642d97e..26cab2471 100644 --- a/pkg/apis/akash.network/v1/register.go +++ b/pkg/apis/akash.network/v2beta2/register.go @@ -1,4 +1,4 @@ -package v1 +package v2beta2 import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -8,7 +8,7 @@ import ( const ( crdGroup = "akash.network" - crdVersion = "v1" + crdVersion = "v2beta2" ) var ( @@ -26,10 +26,19 @@ func addKnownTypes(scheme *runtime.Scheme) error { &Manifest{}, &ManifestList{}, ) + scheme.AddKnownTypes(SchemeGroupVersion, + &InventoryRequest{}, + &InventoryRequestList{}, + &Inventory{}, + &InventoryList{}, + ) scheme.AddKnownTypes(SchemeGroupVersion, &ProviderHost{}, &ProviderHostList{}) + scheme.AddKnownTypes(SchemeGroupVersion, + &ProviderLeasedIP{}, + &ProviderLeasedIPList{}) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil } diff --git a/pkg/apis/akash.network/v1/types.go b/pkg/apis/akash.network/v2beta2/types.go similarity index 51% rename from pkg/apis/akash.network/v1/types.go rename to pkg/apis/akash.network/v2beta2/types.go index ad84529ee..599df5ad3 100644 --- a/pkg/apis/akash.network/v1/types.go +++ b/pkg/apis/akash.network/v2beta2/types.go @@ -1,23 +1,20 @@ -package v1 +package v2beta2 import ( - "fmt" "math" "strconv" - "github.com/akash-network/node/x/market/types/v1beta2/migrate" - - ctypes "github.com/akash-network/provider/cluster/types/v1beta1" - clusterutil "github.com/akash-network/provider/cluster/util" - "github.com/pkg/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" sdk "github.com/cosmos/cosmos-sdk/types" - manifest "github.com/akash-network/node/manifest/v1" - types "github.com/akash-network/node/types/v1beta1" - mtypes "github.com/akash-network/node/x/market/types/v1beta1" + maniv2beta2 "github.com/akash-network/akash-api/go/manifest/v2beta2" + mtypes "github.com/akash-network/akash-api/go/node/market/v1beta3" + types "github.com/akash-network/akash-api/go/node/types/v1beta3" + + ctypes "github.com/akash-network/provider/cluster/types/v1beta3" + clusterutil "github.com/akash-network/provider/cluster/util" ) // +genclient @@ -45,8 +42,8 @@ type ManifestSpec struct { } // Deployment returns the cluster.Deployment that the saved manifest represents. -func (m Manifest) Deployment() (ctypes.Deployment, error) { - lid, err := m.Spec.LeaseID.toAkash() +func (m *Manifest) Deployment() (ctypes.Deployment, error) { + lid, err := m.Spec.LeaseID.ToAkash() if err != nil { return nil, err } @@ -60,19 +57,19 @@ func (m Manifest) Deployment() (ctypes.Deployment, error) { type deployment struct { lid mtypes.LeaseID - group manifest.Group + group maniv2beta2.Group } func (d deployment) LeaseID() mtypes.LeaseID { return d.lid } -func (d deployment) ManifestGroup() manifest.Group { +func (d deployment) ManifestGroup() maniv2beta2.Group { return d.group } -// NewManifest creates new manifest with provided details. Returns error incase of failure. -func NewManifest(ns string, lid mtypes.LeaseID, mgroup *manifest.Group) (*Manifest, error) { +// NewManifest creates new manifest with provided details. Returns error in case of failure. +func NewManifest(ns string, lid mtypes.LeaseID, mgroup *maniv2beta2.Group) (*Manifest, error) { group, err := manifestGroupFromAkash(mgroup) if err != nil { return nil, err @@ -81,15 +78,15 @@ func NewManifest(ns string, lid mtypes.LeaseID, mgroup *manifest.Group) (*Manife return &Manifest{ TypeMeta: metav1.TypeMeta{ Kind: "Manifest", - APIVersion: "akash.network/v1", + APIVersion: "akash.network/v2beta2", }, ObjectMeta: metav1.ObjectMeta{ - Name: clusterutil.LeaseIDToNamespace(migrate.LeaseIDToV1beta1(lid)), + Name: clusterutil.LeaseIDToNamespace(lid), Namespace: ns, }, Spec: ManifestSpec{ Group: group, - LeaseID: leaseIDFromAkash(lid), + LeaseID: LeaseIDFromAkash(lid), }, }, nil } @@ -104,7 +101,7 @@ type LeaseID struct { } // ToAkash returns LeaseID from LeaseID details -func (id LeaseID) toAkash() (mtypes.LeaseID, error) { +func (id LeaseID) ToAkash() (mtypes.LeaseID, error) { owner, err := sdk.AccAddressFromBech32(id.Owner) if err != nil { return mtypes.LeaseID{}, err @@ -130,7 +127,7 @@ func (id LeaseID) toAkash() (mtypes.LeaseID, error) { } // LeaseIDFromAkash returns LeaseID instance from akash -func leaseIDFromAkash(id mtypes.LeaseID) LeaseID { +func LeaseIDFromAkash(id mtypes.LeaseID) LeaseID { return LeaseID{ Owner: id.Owner, DSeq: strconv.FormatUint(id.DSeq, 10), @@ -148,11 +145,11 @@ type ManifestGroup struct { Services []ManifestService `json:"services,omitempty"` } -// ToAkash returns akash group details formatted from manifest group -func (m ManifestGroup) toAkash() (manifest.Group, error) { - am := manifest.Group{ +// toAkash returns akash group details formatted from manifest group +func (m *ManifestGroup) toAkash() (maniv2beta2.Group, error) { + am := maniv2beta2.Group{ Name: m.Name, - Services: make([]manifest.Service, 0, len(m.Services)), + Services: make([]maniv2beta2.Service, 0, len(m.Services)), } for _, svc := range m.Services { @@ -167,7 +164,7 @@ func (m ManifestGroup) toAkash() (manifest.Group, error) { } // ManifestGroupFromAkash returns manifest group instance from akash group -func manifestGroupFromAkash(m *manifest.Group) (ManifestGroup, error) { +func manifestGroupFromAkash(m *maniv2beta2.Group) (ManifestGroup, error) { ma := ManifestGroup{ Name: m.Name, Services: make([]ManifestService, 0, len(m.Services)), @@ -185,14 +182,25 @@ func manifestGroupFromAkash(m *manifest.Group) (ManifestGroup, error) { return ma, nil } +type ManifestStorageParams struct { + Name string `json:"name" yaml:"name"` + Mount string `json:"mount" yaml:"mount"` + ReadOnly bool `json:"readOnly" yaml:"readOnly"` +} + +type ManifestServiceParams struct { + Storage []ManifestStorageParams `json:"storage,omitempty"` +} + // ManifestService stores name, image, args, env, unit, count and expose list of service type ManifestService struct { // Service name Name string `json:"name,omitempty"` // Docker image - Image string `json:"image,omitempty"` - Args []string `json:"args,omitempty"` - Env []string `json:"env,omitempty"` + Image string `json:"image,omitempty"` + Command []string `json:"command,omitempty"` + Args []string `json:"args,omitempty"` + Env []string `json:"env,omitempty"` // Resource requirements // in current version of CRD it is named as unit Resources ResourceUnits `json:"unit"` @@ -200,36 +208,60 @@ type ManifestService struct { Count uint32 `json:"count,omitempty"` // Overlay Network Links Expose []ManifestServiceExpose `json:"expose,omitempty"` + // Miscellaneous service parameters + Params *ManifestServiceParams `json:"params,omitempty"` } -func (ms ManifestService) toAkash() (manifest.Service, error) { +func (ms *ManifestService) toAkash() (maniv2beta2.Service, error) { res, err := ms.Resources.toAkash() if err != nil { - return manifest.Service{}, err + return maniv2beta2.Service{}, err } - ams := &manifest.Service{ + ams := &maniv2beta2.Service{ Name: ms.Name, Image: ms.Image, + Command: ms.Command, Args: ms.Args, Env: ms.Env, Resources: res, Count: ms.Count, - Expose: make([]manifest.ServiceExpose, 0, len(ms.Expose)), + Expose: make([]maniv2beta2.ServiceExpose, 0, len(ms.Expose)), } for _, expose := range ms.Expose { value, err := expose.toAkash() if err != nil { - return manifest.Service{}, err + return maniv2beta2.Service{}, err } ams.Expose = append(ams.Expose, value) + + if len(value.IP) != 0 { + res.Endpoints = append(res.Endpoints, types.Endpoint{ + Kind: types.Endpoint_LEASED_IP, + SequenceNumber: value.EndpointSequenceNumber, + }) + } + } + + if ms.Params != nil { + ams.Params = &maniv2beta2.ServiceParams{ + Storage: make([]maniv2beta2.StorageParams, 0, len(ms.Params.Storage)), + } + + for _, storage := range ms.Params.Storage { + ams.Params.Storage = append(ams.Params.Storage, maniv2beta2.StorageParams{ + Name: storage.Name, + Mount: storage.Mount, + ReadOnly: storage.ReadOnly, + }) + } } return *ams, nil } -func manifestServiceFromAkash(ams manifest.Service) (ManifestService, error) { +func manifestServiceFromAkash(ams maniv2beta2.Service) (ManifestService, error) { resources, err := resourceUnitsFromAkash(ams.Resources) if err != nil { return ManifestService{}, err @@ -238,6 +270,7 @@ func manifestServiceFromAkash(ams manifest.Service) (ManifestService, error) { ms := ManifestService{ Name: ams.Name, Image: ams.Image, + Command: ams.Command, Args: ams.Args, Env: ams.Env, Resources: resources, @@ -249,19 +282,34 @@ func manifestServiceFromAkash(ams manifest.Service) (ManifestService, error) { ms.Expose = append(ms.Expose, manifestServiceExposeFromAkash(expose)) } + if ams.Params != nil { + ms.Params = &ManifestServiceParams{ + Storage: make([]ManifestStorageParams, 0, len(ams.Params.Storage)), + } + + for _, storage := range ams.Params.Storage { + ms.Params.Storage = append(ms.Params.Storage, ManifestStorageParams{ + Name: storage.Name, + Mount: storage.Mount, + ReadOnly: storage.ReadOnly, + }) + } + } + return ms, nil } // ManifestServiceExpose stores exposed ports and accepted hosts details type ManifestServiceExpose struct { - Port uint16 `json:"port,omitempty"` - ExternalPort uint16 `json:"external_port,omitempty"` - Proto string `json:"proto,omitempty"` - Service string `json:"service,omitempty"` - Global bool `json:"global,omitempty"` - // accepted hostnames - Hosts []string `json:"hosts,omitempty"` - HTTPOptions ManifestServiceExposeHTTPOptions `json:"http_options,omitempty"` + Port uint16 `json:"port,omitempty"` + ExternalPort uint16 `json:"external_port,omitempty"` + Proto string `json:"proto,omitempty"` + Service string `json:"service,omitempty"` + Global bool `json:"global,omitempty"` + Hosts []string `json:"hosts,omitempty"` + HTTPOptions ManifestServiceExposeHTTPOptions `json:"http_options,omitempty"` + IP string `json:"ip,omitempty"` + EndpointSequenceNumber uint32 `json:"endpoint_sequence_number"` } type ManifestServiceExposeHTTPOptions struct { @@ -273,30 +321,48 @@ type ManifestServiceExposeHTTPOptions struct { NextCases []string `json:"next_cases,omitempty"` } -func (mse ManifestServiceExpose) toAkash() (manifest.ServiceExpose, error) { - proto, err := manifest.ParseServiceProtocol(mse.Proto) +func (mse ManifestServiceExpose) toAkash() (maniv2beta2.ServiceExpose, error) { + proto, err := maniv2beta2.ParseServiceProtocol(mse.Proto) if err != nil { - fmt.Printf("foobar: %q\n", mse.Proto) - return manifest.ServiceExpose{}, err + return maniv2beta2.ServiceExpose{}, err } - return manifest.ServiceExpose{ - Port: mse.Port, - ExternalPort: mse.ExternalPort, - Proto: proto, - Service: mse.Service, - Global: mse.Global, - Hosts: mse.Hosts, + return maniv2beta2.ServiceExpose{ + Port: uint32(mse.Port), + ExternalPort: uint32(mse.ExternalPort), + Proto: proto, + Service: mse.Service, + Global: mse.Global, + Hosts: mse.Hosts, + EndpointSequenceNumber: mse.EndpointSequenceNumber, + IP: mse.IP, + HTTPOptions: maniv2beta2.ServiceExposeHTTPOptions{ + MaxBodySize: mse.HTTPOptions.MaxBodySize, + ReadTimeout: mse.HTTPOptions.ReadTimeout, + SendTimeout: mse.HTTPOptions.SendTimeout, + NextTries: mse.HTTPOptions.NextTries, + NextTimeout: mse.HTTPOptions.NextTimeout, + NextCases: mse.HTTPOptions.NextCases, + }, }, nil } -func manifestServiceExposeFromAkash(amse manifest.ServiceExpose) ManifestServiceExpose { +func (mse ManifestServiceExpose) DetermineExposedExternalPort() uint16 { + if mse.ExternalPort == 0 { + return mse.Port + } + return mse.ExternalPort +} + +func manifestServiceExposeFromAkash(amse maniv2beta2.ServiceExpose) ManifestServiceExpose { return ManifestServiceExpose{ - Port: amse.Port, - ExternalPort: amse.ExternalPort, - Proto: amse.Proto.ToString(), - Service: amse.Service, - Global: amse.Global, - Hosts: amse.Hosts, + Port: uint16(amse.Port), + ExternalPort: uint16(amse.ExternalPort), + Proto: amse.Proto.ToString(), + Service: amse.Service, + Global: amse.Global, + Hosts: amse.Hosts, + IP: amse.IP, + EndpointSequenceNumber: amse.EndpointSequenceNumber, HTTPOptions: ManifestServiceExposeHTTPOptions{ MaxBodySize: amse.HTTPOptions.MaxBodySize, ReadTimeout: amse.HTTPOptions.ReadTimeout, @@ -308,11 +374,17 @@ func manifestServiceExposeFromAkash(amse manifest.ServiceExpose) ManifestService } } +type ManifestServiceStorage struct { + Name string `json:"name"` + Size string `json:"size"` +} + // ResourceUnits stores cpu, memory and storage details type ResourceUnits struct { - CPU uint32 `json:"cpu,omitempty"` - Memory string `json:"memory,omitempty"` - Storage string `json:"storage,omitempty"` + CPU uint32 `json:"cpu,omitempty"` + Memory string `json:"memory,omitempty"` + Storage []ManifestServiceStorage `json:"storage,omitempty"` + GPU uint32 `json:"gpu,omitempty"` } func (ru ResourceUnits) toAkash() (types.ResourceUnits, error) { @@ -320,21 +392,31 @@ func (ru ResourceUnits) toAkash() (types.ResourceUnits, error) { if err != nil { return types.ResourceUnits{}, err } - storage, err := strconv.ParseUint(ru.Storage, 10, 64) - if err != nil { - return types.ResourceUnits{}, err + + storage := make([]types.Storage, 0, len(ru.Storage)) + for _, st := range ru.Storage { + size, err := strconv.ParseUint(st.Size, 10, 64) + if err != nil { + return types.ResourceUnits{}, err + } + + storage = append(storage, types.Storage{ + Name: st.Name, + Quantity: types.NewResourceValue(size), + }) } return types.ResourceUnits{ CPU: &types.CPU{ Units: types.NewResourceValue(uint64(ru.CPU)), }, + GPU: &types.GPU{ + Units: types.NewResourceValue(uint64(ru.GPU)), + }, Memory: &types.Memory{ Quantity: types.NewResourceValue(memory), }, - Storage: &types.Storage{ - Quantity: types.NewResourceValue(storage), - }, + Storage: storage, }, nil } @@ -350,16 +432,27 @@ func resourceUnitsFromAkash(aru types.ResourceUnits) (ResourceUnits, error) { res.Memory = strconv.FormatUint(aru.Memory.Quantity.Value(), 10) } - if aru.Storage != nil { - res.Storage = strconv.FormatUint(aru.Storage.Quantity.Value(), 10) + if aru.GPU != nil { + // todo boundary check + if aru.GPU.Units.Value() > math.MaxUint32 { + return ResourceUnits{}, errors.New("k8s api: gpu units value overflows uint32") + } + res.GPU = uint32(aru.GPU.Units.Value()) + } + + res.Storage = make([]ManifestServiceStorage, 0, len(aru.Storage)) + for _, storage := range aru.Storage { + res.Storage = append(res.Storage, ManifestServiceStorage{ + Name: storage.Name, + Size: strconv.FormatUint(storage.Quantity.Value(), 10), + }) } return res, nil } -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - // ManifestList stores metadata and items list of manifest +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object type ManifestList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` @@ -368,7 +461,6 @@ type ManifestList struct { // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - type ProviderHost struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata"` @@ -394,9 +486,39 @@ type ProviderHostSpec struct { } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - type ProviderHostList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []ProviderHost `json:"items"` } + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +type ProviderLeasedIP struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata"` + + Spec ProviderLeasedIPSpec `json:"spec,omitempty"` + Status ProviderLeasedIPStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +type ProviderLeasedIPList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata"` + Items []ProviderLeasedIP `json:"items"` +} + +type ProviderLeasedIPStatus struct { + State string `json:"state,omitempty"` + Message string `json:"message,omitempty"` +} + +type ProviderLeasedIPSpec struct { + LeaseID LeaseID `json:"lease_id"` + ServiceName string `json:"service_name"` + Port uint32 `json:"port"` + ExternalPort uint32 `json:"external_port"` + SharingKey string `json:"sharing_key"` + Protocol string `json:"protocol"` +} diff --git a/pkg/apis/akash.network/v2beta2/types_inventory.go b/pkg/apis/akash.network/v2beta2/types_inventory.go new file mode 100644 index 000000000..a8a32bcaf --- /dev/null +++ b/pkg/apis/akash.network/v2beta2/types_inventory.go @@ -0,0 +1,80 @@ +package v2beta2 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +type InventoryState string + +const ( + InventoryStatePulled = InventoryState("PULLED") + InventoryStateError = InventoryState("ERROR") +) + +// InventoryRequest +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +type InventoryRequest struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata"` + + Spec InventoryRequestSpec `json:"spec,omitempty"` + Status InventoryRequestStatus `json:"status,omitempty"` +} + +type InventoryRequestSpec struct { + Name string `json:"name"` +} + +type InventoryRequestStatus struct { + State string `json:"state,omitempty"` + Message string `json:"message,omitempty"` +} + +// InventoryRequestList stores metadata and items list of storage class states +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +type InventoryRequestList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata"` + Items []InventoryRequest `json:"items"` +} + +// Inventory +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +type Inventory struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata"` + + Spec InventorySpec `json:"spec,omitempty"` + Status InventoryStatus `json:"status,omitempty"` +} + +// InventoryList stores metadata and items list of storage class states +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +type InventoryList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata"` + Items []Inventory `json:"items"` +} + +type InventoryStatus struct { + State InventoryState `json:"state,omitempty"` + Messages []string `json:"message,omitempty"` +} + +type InventoryClusterStorage struct { + Class string `json:"class,omitempty"` + ResourcePair `json:",inline"` +} + +type InventorySpec struct { + Storage []InventoryClusterStorage `json:"storage"` +} + +type ResourcePair struct { + Allocatable uint64 `json:"allocatable"` + Allocated uint64 `json:"allocated"` +} diff --git a/pkg/apis/akash.network/v2beta1/types_test.go b/pkg/apis/akash.network/v2beta2/types_test.go similarity index 87% rename from pkg/apis/akash.network/v2beta1/types_test.go rename to pkg/apis/akash.network/v2beta2/types_test.go index a22f3287d..74116cb6b 100644 --- a/pkg/apis/akash.network/v2beta1/types_test.go +++ b/pkg/apis/akash.network/v2beta2/types_test.go @@ -1,4 +1,4 @@ -package v2beta1 +package v2beta2 import ( "testing" @@ -8,7 +8,7 @@ import ( atestutil "github.com/akash-network/node/testutil" - mtestutil "github.com/akash-network/provider/testutil/manifest" + mtestutil "github.com/akash-network/provider/testutil/manifest/v2beta2" ) func Test_Manifest_encoding(t *testing.T) { diff --git a/pkg/apis/akash.network/v2beta2/zz_generated.deepcopy.go b/pkg/apis/akash.network/v2beta2/zz_generated.deepcopy.go new file mode 100644 index 000000000..d5538e404 --- /dev/null +++ b/pkg/apis/akash.network/v2beta2/zz_generated.deepcopy.go @@ -0,0 +1,737 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v2beta2 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Inventory) DeepCopyInto(out *Inventory) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Inventory. +func (in *Inventory) DeepCopy() *Inventory { + if in == nil { + return nil + } + out := new(Inventory) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Inventory) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InventoryClusterStorage) DeepCopyInto(out *InventoryClusterStorage) { + *out = *in + out.ResourcePair = in.ResourcePair + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InventoryClusterStorage. +func (in *InventoryClusterStorage) DeepCopy() *InventoryClusterStorage { + if in == nil { + return nil + } + out := new(InventoryClusterStorage) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InventoryList) DeepCopyInto(out *InventoryList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Inventory, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InventoryList. +func (in *InventoryList) DeepCopy() *InventoryList { + if in == nil { + return nil + } + out := new(InventoryList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InventoryList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InventoryRequest) DeepCopyInto(out *InventoryRequest) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Spec = in.Spec + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InventoryRequest. +func (in *InventoryRequest) DeepCopy() *InventoryRequest { + if in == nil { + return nil + } + out := new(InventoryRequest) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InventoryRequest) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InventoryRequestList) DeepCopyInto(out *InventoryRequestList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InventoryRequest, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InventoryRequestList. +func (in *InventoryRequestList) DeepCopy() *InventoryRequestList { + if in == nil { + return nil + } + out := new(InventoryRequestList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InventoryRequestList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InventoryRequestSpec) DeepCopyInto(out *InventoryRequestSpec) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InventoryRequestSpec. +func (in *InventoryRequestSpec) DeepCopy() *InventoryRequestSpec { + if in == nil { + return nil + } + out := new(InventoryRequestSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InventoryRequestStatus) DeepCopyInto(out *InventoryRequestStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InventoryRequestStatus. +func (in *InventoryRequestStatus) DeepCopy() *InventoryRequestStatus { + if in == nil { + return nil + } + out := new(InventoryRequestStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InventorySpec) DeepCopyInto(out *InventorySpec) { + *out = *in + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + *out = make([]InventoryClusterStorage, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InventorySpec. +func (in *InventorySpec) DeepCopy() *InventorySpec { + if in == nil { + return nil + } + out := new(InventorySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InventoryStatus) DeepCopyInto(out *InventoryStatus) { + *out = *in + if in.Messages != nil { + in, out := &in.Messages, &out.Messages + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InventoryStatus. +func (in *InventoryStatus) DeepCopy() *InventoryStatus { + if in == nil { + return nil + } + out := new(InventoryStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LeaseID) DeepCopyInto(out *LeaseID) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseID. +func (in *LeaseID) DeepCopy() *LeaseID { + if in == nil { + return nil + } + out := new(LeaseID) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Manifest) DeepCopyInto(out *Manifest) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Manifest. +func (in *Manifest) DeepCopy() *Manifest { + if in == nil { + return nil + } + out := new(Manifest) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Manifest) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManifestGroup) DeepCopyInto(out *ManifestGroup) { + *out = *in + if in.Services != nil { + in, out := &in.Services, &out.Services + *out = make([]ManifestService, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestGroup. +func (in *ManifestGroup) DeepCopy() *ManifestGroup { + if in == nil { + return nil + } + out := new(ManifestGroup) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManifestList) DeepCopyInto(out *ManifestList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Manifest, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestList. +func (in *ManifestList) DeepCopy() *ManifestList { + if in == nil { + return nil + } + out := new(ManifestList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ManifestList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManifestService) DeepCopyInto(out *ManifestService) { + *out = *in + if in.Command != nil { + in, out := &in.Command, &out.Command + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Args != nil { + in, out := &in.Args, &out.Args + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Env != nil { + in, out := &in.Env, &out.Env + *out = make([]string, len(*in)) + copy(*out, *in) + } + in.Resources.DeepCopyInto(&out.Resources) + if in.Expose != nil { + in, out := &in.Expose, &out.Expose + *out = make([]ManifestServiceExpose, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Params != nil { + in, out := &in.Params, &out.Params + *out = new(ManifestServiceParams) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestService. +func (in *ManifestService) DeepCopy() *ManifestService { + if in == nil { + return nil + } + out := new(ManifestService) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManifestServiceExpose) DeepCopyInto(out *ManifestServiceExpose) { + *out = *in + if in.Hosts != nil { + in, out := &in.Hosts, &out.Hosts + *out = make([]string, len(*in)) + copy(*out, *in) + } + in.HTTPOptions.DeepCopyInto(&out.HTTPOptions) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestServiceExpose. +func (in *ManifestServiceExpose) DeepCopy() *ManifestServiceExpose { + if in == nil { + return nil + } + out := new(ManifestServiceExpose) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManifestServiceExposeHTTPOptions) DeepCopyInto(out *ManifestServiceExposeHTTPOptions) { + *out = *in + if in.NextCases != nil { + in, out := &in.NextCases, &out.NextCases + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestServiceExposeHTTPOptions. +func (in *ManifestServiceExposeHTTPOptions) DeepCopy() *ManifestServiceExposeHTTPOptions { + if in == nil { + return nil + } + out := new(ManifestServiceExposeHTTPOptions) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManifestServiceParams) DeepCopyInto(out *ManifestServiceParams) { + *out = *in + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + *out = make([]ManifestStorageParams, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestServiceParams. +func (in *ManifestServiceParams) DeepCopy() *ManifestServiceParams { + if in == nil { + return nil + } + out := new(ManifestServiceParams) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManifestServiceStorage) DeepCopyInto(out *ManifestServiceStorage) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestServiceStorage. +func (in *ManifestServiceStorage) DeepCopy() *ManifestServiceStorage { + if in == nil { + return nil + } + out := new(ManifestServiceStorage) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManifestSpec) DeepCopyInto(out *ManifestSpec) { + *out = *in + out.LeaseID = in.LeaseID + in.Group.DeepCopyInto(&out.Group) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestSpec. +func (in *ManifestSpec) DeepCopy() *ManifestSpec { + if in == nil { + return nil + } + out := new(ManifestSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManifestStatus) DeepCopyInto(out *ManifestStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestStatus. +func (in *ManifestStatus) DeepCopy() *ManifestStatus { + if in == nil { + return nil + } + out := new(ManifestStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManifestStorageParams) DeepCopyInto(out *ManifestStorageParams) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManifestStorageParams. +func (in *ManifestStorageParams) DeepCopy() *ManifestStorageParams { + if in == nil { + return nil + } + out := new(ManifestStorageParams) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderHost) DeepCopyInto(out *ProviderHost) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Spec = in.Spec + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderHost. +func (in *ProviderHost) DeepCopy() *ProviderHost { + if in == nil { + return nil + } + out := new(ProviderHost) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProviderHost) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderHostList) DeepCopyInto(out *ProviderHostList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProviderHost, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderHostList. +func (in *ProviderHostList) DeepCopy() *ProviderHostList { + if in == nil { + return nil + } + out := new(ProviderHostList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProviderHostList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderHostSpec) DeepCopyInto(out *ProviderHostSpec) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderHostSpec. +func (in *ProviderHostSpec) DeepCopy() *ProviderHostSpec { + if in == nil { + return nil + } + out := new(ProviderHostSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderHostStatus) DeepCopyInto(out *ProviderHostStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderHostStatus. +func (in *ProviderHostStatus) DeepCopy() *ProviderHostStatus { + if in == nil { + return nil + } + out := new(ProviderHostStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderLeasedIP) DeepCopyInto(out *ProviderLeasedIP) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Spec = in.Spec + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderLeasedIP. +func (in *ProviderLeasedIP) DeepCopy() *ProviderLeasedIP { + if in == nil { + return nil + } + out := new(ProviderLeasedIP) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProviderLeasedIP) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderLeasedIPList) DeepCopyInto(out *ProviderLeasedIPList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProviderLeasedIP, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderLeasedIPList. +func (in *ProviderLeasedIPList) DeepCopy() *ProviderLeasedIPList { + if in == nil { + return nil + } + out := new(ProviderLeasedIPList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProviderLeasedIPList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderLeasedIPSpec) DeepCopyInto(out *ProviderLeasedIPSpec) { + *out = *in + out.LeaseID = in.LeaseID + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderLeasedIPSpec. +func (in *ProviderLeasedIPSpec) DeepCopy() *ProviderLeasedIPSpec { + if in == nil { + return nil + } + out := new(ProviderLeasedIPSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderLeasedIPStatus) DeepCopyInto(out *ProviderLeasedIPStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderLeasedIPStatus. +func (in *ProviderLeasedIPStatus) DeepCopy() *ProviderLeasedIPStatus { + if in == nil { + return nil + } + out := new(ProviderLeasedIPStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourcePair) DeepCopyInto(out *ResourcePair) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePair. +func (in *ResourcePair) DeepCopy() *ResourcePair { + if in == nil { + return nil + } + out := new(ResourcePair) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceUnits) DeepCopyInto(out *ResourceUnits) { + *out = *in + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + *out = make([]ManifestServiceStorage, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceUnits. +func (in *ResourceUnits) DeepCopy() *ResourceUnits { + if in == nil { + return nil + } + out := new(ResourceUnits) + in.DeepCopyInto(out) + return out +} diff --git a/pkg/apis/boilerplate.go.txt b/pkg/apis/boilerplate.go.txt new file mode 100644 index 000000000..f8764a9bc --- /dev/null +++ b/pkg/apis/boilerplate.go.txt @@ -0,0 +1,16 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + diff --git a/pkg/client/clientset/versioned/clientset.go b/pkg/client/clientset/versioned/clientset.go index 192452c11..a7614c7c8 100644 --- a/pkg/client/clientset/versioned/clientset.go +++ b/pkg/client/clientset/versioned/clientset.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,8 +22,8 @@ import ( "fmt" "net/http" - akashv1 "github.com/akash-network/provider/pkg/client/clientset/versioned/typed/akash.network/v1" akashv2beta1 "github.com/akash-network/provider/pkg/client/clientset/versioned/typed/akash.network/v2beta1" + akashv2beta2 "github.com/akash-network/provider/pkg/client/clientset/versioned/typed/akash.network/v2beta2" discovery "k8s.io/client-go/discovery" rest "k8s.io/client-go/rest" flowcontrol "k8s.io/client-go/util/flowcontrol" @@ -31,21 +31,15 @@ import ( type Interface interface { Discovery() discovery.DiscoveryInterface - AkashV1() akashv1.AkashV1Interface AkashV2beta1() akashv2beta1.AkashV2beta1Interface + AkashV2beta2() akashv2beta2.AkashV2beta2Interface } -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. +// Clientset contains the clients for groups. type Clientset struct { *discovery.DiscoveryClient - akashV1 *akashv1.AkashV1Client akashV2beta1 *akashv2beta1.AkashV2beta1Client -} - -// AkashV1 retrieves the AkashV1Client -func (c *Clientset) AkashV1() akashv1.AkashV1Interface { - return c.akashV1 + akashV2beta2 *akashv2beta2.AkashV2beta2Client } // AkashV2beta1 retrieves the AkashV2beta1Client @@ -53,6 +47,11 @@ func (c *Clientset) AkashV2beta1() akashv2beta1.AkashV2beta1Interface { return c.akashV2beta1 } +// AkashV2beta2 retrieves the AkashV2beta2Client +func (c *Clientset) AkashV2beta2() akashv2beta2.AkashV2beta2Interface { + return c.akashV2beta2 +} + // Discovery retrieves the DiscoveryClient func (c *Clientset) Discovery() discovery.DiscoveryInterface { if c == nil { @@ -97,11 +96,11 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset, var cs Clientset var err error - cs.akashV1, err = akashv1.NewForConfigAndClient(&configShallowCopy, httpClient) + cs.akashV2beta1, err = akashv2beta1.NewForConfigAndClient(&configShallowCopy, httpClient) if err != nil { return nil, err } - cs.akashV2beta1, err = akashv2beta1.NewForConfigAndClient(&configShallowCopy, httpClient) + cs.akashV2beta2, err = akashv2beta2.NewForConfigAndClient(&configShallowCopy, httpClient) if err != nil { return nil, err } @@ -126,8 +125,8 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { // New creates a new Clientset for the given RESTClient. func New(c rest.Interface) *Clientset { var cs Clientset - cs.akashV1 = akashv1.New(c) cs.akashV2beta1 = akashv2beta1.New(c) + cs.akashV2beta2 = akashv2beta2.New(c) cs.DiscoveryClient = discovery.NewDiscoveryClient(c) return &cs diff --git a/pkg/client/clientset/versioned/doc.go b/pkg/client/clientset/versioned/doc.go index 41721ca52..31d27fa9f 100644 --- a/pkg/client/clientset/versioned/doc.go +++ b/pkg/client/clientset/versioned/doc.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/fake/clientset_generated.go b/pkg/client/clientset/versioned/fake/clientset_generated.go index 81245f9fc..ca2c1efb7 100644 --- a/pkg/client/clientset/versioned/fake/clientset_generated.go +++ b/pkg/client/clientset/versioned/fake/clientset_generated.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -20,10 +20,10 @@ package fake import ( clientset "github.com/akash-network/provider/pkg/client/clientset/versioned" - akashv1 "github.com/akash-network/provider/pkg/client/clientset/versioned/typed/akash.network/v1" - fakeakashv1 "github.com/akash-network/provider/pkg/client/clientset/versioned/typed/akash.network/v1/fake" akashv2beta1 "github.com/akash-network/provider/pkg/client/clientset/versioned/typed/akash.network/v2beta1" fakeakashv2beta1 "github.com/akash-network/provider/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake" + akashv2beta2 "github.com/akash-network/provider/pkg/client/clientset/versioned/typed/akash.network/v2beta2" + fakeakashv2beta2 "github.com/akash-network/provider/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/discovery" @@ -81,12 +81,12 @@ var ( _ testing.FakeClient = &Clientset{} ) -// AkashV1 retrieves the AkashV1Client -func (c *Clientset) AkashV1() akashv1.AkashV1Interface { - return &fakeakashv1.FakeAkashV1{Fake: &c.Fake} -} - // AkashV2beta1 retrieves the AkashV2beta1Client func (c *Clientset) AkashV2beta1() akashv2beta1.AkashV2beta1Interface { return &fakeakashv2beta1.FakeAkashV2beta1{Fake: &c.Fake} } + +// AkashV2beta2 retrieves the AkashV2beta2Client +func (c *Clientset) AkashV2beta2() akashv2beta2.AkashV2beta2Interface { + return &fakeakashv2beta2.FakeAkashV2beta2{Fake: &c.Fake} +} diff --git a/pkg/client/clientset/versioned/fake/doc.go b/pkg/client/clientset/versioned/fake/doc.go index 9b99e7167..faf812590 100644 --- a/pkg/client/clientset/versioned/fake/doc.go +++ b/pkg/client/clientset/versioned/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/fake/register.go b/pkg/client/clientset/versioned/fake/register.go index 421615309..a1c1dc73e 100644 --- a/pkg/client/clientset/versioned/fake/register.go +++ b/pkg/client/clientset/versioned/fake/register.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,8 @@ limitations under the License. package fake import ( - akashv1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" akashv2beta1 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + akashv2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -32,21 +32,21 @@ var scheme = runtime.NewScheme() var codecs = serializer.NewCodecFactory(scheme) var localSchemeBuilder = runtime.SchemeBuilder{ - akashv1.AddToScheme, akashv2beta1.AddToScheme, + akashv2beta2.AddToScheme, } // AddToScheme adds all types of this clientset into the given scheme. This allows composition // of clientsets, like in: // -// import ( -// "k8s.io/client-go/kubernetes" -// clientsetscheme "k8s.io/client-go/kubernetes/scheme" -// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" -// ) +// import ( +// "k8s.io/client-go/kubernetes" +// clientsetscheme "k8s.io/client-go/kubernetes/scheme" +// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" +// ) // -// kclientset, _ := kubernetes.NewForConfig(c) -// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) +// kclientset, _ := kubernetes.NewForConfig(c) +// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) // // After this, RawExtensions in Kubernetes types will serialize kube-aggregator types // correctly. diff --git a/pkg/client/clientset/versioned/scheme/doc.go b/pkg/client/clientset/versioned/scheme/doc.go index 7dc375616..65bfa351a 100644 --- a/pkg/client/clientset/versioned/scheme/doc.go +++ b/pkg/client/clientset/versioned/scheme/doc.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/scheme/register.go b/pkg/client/clientset/versioned/scheme/register.go index 8db189b29..126189010 100644 --- a/pkg/client/clientset/versioned/scheme/register.go +++ b/pkg/client/clientset/versioned/scheme/register.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,8 @@ limitations under the License. package scheme import ( - akashv1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" akashv2beta1 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + akashv2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -32,21 +32,21 @@ var Scheme = runtime.NewScheme() var Codecs = serializer.NewCodecFactory(Scheme) var ParameterCodec = runtime.NewParameterCodec(Scheme) var localSchemeBuilder = runtime.SchemeBuilder{ - akashv1.AddToScheme, akashv2beta1.AddToScheme, + akashv2beta2.AddToScheme, } // AddToScheme adds all types of this clientset into the given scheme. This allows composition // of clientsets, like in: // -// import ( -// "k8s.io/client-go/kubernetes" -// clientsetscheme "k8s.io/client-go/kubernetes/scheme" -// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" -// ) +// import ( +// "k8s.io/client-go/kubernetes" +// clientsetscheme "k8s.io/client-go/kubernetes/scheme" +// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" +// ) // -// kclientset, _ := kubernetes.NewForConfig(c) -// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) +// kclientset, _ := kubernetes.NewForConfig(c) +// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) // // After this, RawExtensions in Kubernetes types will serialize kube-aggregator types // correctly. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/akash.network_client.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/akash.network_client.go index dd685de21..88a795ac6 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/akash.network_client.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/akash.network_client.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/doc.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/doc.go index 06fd344c0..578ce49e5 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/doc.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/doc.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/doc.go index 16f443990..93911feb8 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/doc.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_akash.network_client.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_akash.network_client.go index 504312740..4667a5f54 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_akash.network_client.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_akash.network_client.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_inventory.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_inventory.go index 4f00be709..9420a0b38 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_inventory.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_inventory.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_inventoryrequest.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_inventoryrequest.go index f03eaf677..133860899 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_inventoryrequest.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_inventoryrequest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_manifest.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_manifest.go index 3df0f7777..0f5be1136 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_manifest.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_manifest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_providerhost.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_providerhost.go index 6e5bc8a57..8464ad602 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_providerhost.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_providerhost.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_providerleasedip.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_providerleasedip.go index 0dccf1c46..6cc3996d1 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_providerleasedip.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/fake/fake_providerleasedip.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/generated_expansion.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/generated_expansion.go index 912a25c5e..913ca8a75 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/generated_expansion.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/inventory.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/inventory.go index 59d50c453..6243f55b7 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/inventory.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/inventory.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/inventoryrequest.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/inventoryrequest.go index f6c70b07a..2cd1e2db4 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/inventoryrequest.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/inventoryrequest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/manifest.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/manifest.go index 42bd8e0d2..45adcfc78 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/manifest.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/manifest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/providerhost.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/providerhost.go index 6c240b807..5cf9bc000 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/providerhost.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/providerhost.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/providerleasedip.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/providerleasedip.go index a60560dbf..13af899e1 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v2beta1/providerleasedip.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta1/providerleasedip.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v1/akash.network_client.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/akash.network_client.go similarity index 58% rename from pkg/client/clientset/versioned/typed/akash.network/v1/akash.network_client.go rename to pkg/client/clientset/versioned/typed/akash.network/v2beta2/akash.network_client.go index 555af176c..e7470cd56 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v1/akash.network_client.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/akash.network_client.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,39 +16,54 @@ limitations under the License. // Code generated by client-gen. DO NOT EDIT. -package v1 +package v2beta2 import ( "net/http" - v1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" "github.com/akash-network/provider/pkg/client/clientset/versioned/scheme" rest "k8s.io/client-go/rest" ) -type AkashV1Interface interface { +type AkashV2beta2Interface interface { RESTClient() rest.Interface + InventoriesGetter + InventoryRequestsGetter ManifestsGetter ProviderHostsGetter + ProviderLeasedIPsGetter } -// AkashV1Client is used to interact with features provided by the akash.network group. -type AkashV1Client struct { +// AkashV2beta2Client is used to interact with features provided by the akash.network group. +type AkashV2beta2Client struct { restClient rest.Interface } -func (c *AkashV1Client) Manifests(namespace string) ManifestInterface { +func (c *AkashV2beta2Client) Inventories() InventoryInterface { + return newInventories(c) +} + +func (c *AkashV2beta2Client) InventoryRequests() InventoryRequestInterface { + return newInventoryRequests(c) +} + +func (c *AkashV2beta2Client) Manifests(namespace string) ManifestInterface { return newManifests(c, namespace) } -func (c *AkashV1Client) ProviderHosts(namespace string) ProviderHostInterface { +func (c *AkashV2beta2Client) ProviderHosts(namespace string) ProviderHostInterface { return newProviderHosts(c, namespace) } -// NewForConfig creates a new AkashV1Client for the given config. +func (c *AkashV2beta2Client) ProviderLeasedIPs(namespace string) ProviderLeasedIPInterface { + return newProviderLeasedIPs(c, namespace) +} + +// NewForConfig creates a new AkashV2beta2Client for the given config. // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), // where httpClient was generated with rest.HTTPClientFor(c). -func NewForConfig(c *rest.Config) (*AkashV1Client, error) { +func NewForConfig(c *rest.Config) (*AkashV2beta2Client, error) { config := *c if err := setConfigDefaults(&config); err != nil { return nil, err @@ -60,9 +75,9 @@ func NewForConfig(c *rest.Config) (*AkashV1Client, error) { return NewForConfigAndClient(&config, httpClient) } -// NewForConfigAndClient creates a new AkashV1Client for the given config and http client. +// NewForConfigAndClient creates a new AkashV2beta2Client for the given config and http client. // Note the http client provided takes precedence over the configured transport values. -func NewForConfigAndClient(c *rest.Config, h *http.Client) (*AkashV1Client, error) { +func NewForConfigAndClient(c *rest.Config, h *http.Client) (*AkashV2beta2Client, error) { config := *c if err := setConfigDefaults(&config); err != nil { return nil, err @@ -71,12 +86,12 @@ func NewForConfigAndClient(c *rest.Config, h *http.Client) (*AkashV1Client, erro if err != nil { return nil, err } - return &AkashV1Client{client}, nil + return &AkashV2beta2Client{client}, nil } -// NewForConfigOrDie creates a new AkashV1Client for the given config and +// NewForConfigOrDie creates a new AkashV2beta2Client for the given config and // panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *AkashV1Client { +func NewForConfigOrDie(c *rest.Config) *AkashV2beta2Client { client, err := NewForConfig(c) if err != nil { panic(err) @@ -84,13 +99,13 @@ func NewForConfigOrDie(c *rest.Config) *AkashV1Client { return client } -// New creates a new AkashV1Client for the given RESTClient. -func New(c rest.Interface) *AkashV1Client { - return &AkashV1Client{c} +// New creates a new AkashV2beta2Client for the given RESTClient. +func New(c rest.Interface) *AkashV2beta2Client { + return &AkashV2beta2Client{c} } func setConfigDefaults(config *rest.Config) error { - gv := v1.SchemeGroupVersion + gv := v2beta2.SchemeGroupVersion config.GroupVersion = &gv config.APIPath = "/apis" config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() @@ -104,7 +119,7 @@ func setConfigDefaults(config *rest.Config) error { // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *AkashV1Client) RESTClient() rest.Interface { +func (c *AkashV2beta2Client) RESTClient() rest.Interface { if c == nil { return nil } diff --git a/pkg/client/clientset/versioned/typed/akash.network/v1/doc.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/doc.go similarity index 92% rename from pkg/client/clientset/versioned/typed/akash.network/v1/doc.go rename to pkg/client/clientset/versioned/typed/akash.network/v2beta2/doc.go index 3af5d054f..badb72b17 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v1/doc.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/doc.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -17,4 +17,4 @@ limitations under the License. // Code generated by client-gen. DO NOT EDIT. // This package has the automatically generated typed clients. -package v1 +package v2beta2 diff --git a/pkg/client/clientset/versioned/typed/akash.network/v1/fake/doc.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/doc.go similarity index 94% rename from pkg/client/clientset/versioned/typed/akash.network/v1/fake/doc.go rename to pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/doc.go index 16f443990..93911feb8 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v1/fake/doc.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/clientset/versioned/typed/akash.network/v1/fake/fake_akash.network_client.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_akash.network_client.go similarity index 54% rename from pkg/client/clientset/versioned/typed/akash.network/v1/fake/fake_akash.network_client.go rename to pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_akash.network_client.go index 868cf2c08..34a8a12ce 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v1/fake/fake_akash.network_client.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_akash.network_client.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,26 +19,38 @@ limitations under the License. package fake import ( - v1 "github.com/akash-network/provider/pkg/client/clientset/versioned/typed/akash.network/v1" + v2beta2 "github.com/akash-network/provider/pkg/client/clientset/versioned/typed/akash.network/v2beta2" rest "k8s.io/client-go/rest" testing "k8s.io/client-go/testing" ) -type FakeAkashV1 struct { +type FakeAkashV2beta2 struct { *testing.Fake } -func (c *FakeAkashV1) Manifests(namespace string) v1.ManifestInterface { +func (c *FakeAkashV2beta2) Inventories() v2beta2.InventoryInterface { + return &FakeInventories{c} +} + +func (c *FakeAkashV2beta2) InventoryRequests() v2beta2.InventoryRequestInterface { + return &FakeInventoryRequests{c} +} + +func (c *FakeAkashV2beta2) Manifests(namespace string) v2beta2.ManifestInterface { return &FakeManifests{c, namespace} } -func (c *FakeAkashV1) ProviderHosts(namespace string) v1.ProviderHostInterface { +func (c *FakeAkashV2beta2) ProviderHosts(namespace string) v2beta2.ProviderHostInterface { return &FakeProviderHosts{c, namespace} } +func (c *FakeAkashV2beta2) ProviderLeasedIPs(namespace string) v2beta2.ProviderLeasedIPInterface { + return &FakeProviderLeasedIPs{c, namespace} +} + // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *FakeAkashV1) RESTClient() rest.Interface { +func (c *FakeAkashV2beta2) RESTClient() rest.Interface { var ret *rest.RESTClient return ret } diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_inventory.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_inventory.go new file mode 100644 index 000000000..203c4795c --- /dev/null +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_inventory.go @@ -0,0 +1,133 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + "context" + + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeInventories implements InventoryInterface +type FakeInventories struct { + Fake *FakeAkashV2beta2 +} + +var inventoriesResource = schema.GroupVersionResource{Group: "akash.network", Version: "v2beta2", Resource: "inventories"} + +var inventoriesKind = schema.GroupVersionKind{Group: "akash.network", Version: "v2beta2", Kind: "Inventory"} + +// Get takes name of the inventory, and returns the corresponding inventory object, and an error if there is any. +func (c *FakeInventories) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.Inventory, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(inventoriesResource, name), &v2beta2.Inventory{}) + if obj == nil { + return nil, err + } + return obj.(*v2beta2.Inventory), err +} + +// List takes label and field selectors, and returns the list of Inventories that match those selectors. +func (c *FakeInventories) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.InventoryList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(inventoriesResource, inventoriesKind, opts), &v2beta2.InventoryList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v2beta2.InventoryList{ListMeta: obj.(*v2beta2.InventoryList).ListMeta} + for _, item := range obj.(*v2beta2.InventoryList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested inventories. +func (c *FakeInventories) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(inventoriesResource, opts)) +} + +// Create takes the representation of a inventory and creates it. Returns the server's representation of the inventory, and an error, if there is any. +func (c *FakeInventories) Create(ctx context.Context, inventory *v2beta2.Inventory, opts v1.CreateOptions) (result *v2beta2.Inventory, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(inventoriesResource, inventory), &v2beta2.Inventory{}) + if obj == nil { + return nil, err + } + return obj.(*v2beta2.Inventory), err +} + +// Update takes the representation of a inventory and updates it. Returns the server's representation of the inventory, and an error, if there is any. +func (c *FakeInventories) Update(ctx context.Context, inventory *v2beta2.Inventory, opts v1.UpdateOptions) (result *v2beta2.Inventory, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(inventoriesResource, inventory), &v2beta2.Inventory{}) + if obj == nil { + return nil, err + } + return obj.(*v2beta2.Inventory), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeInventories) UpdateStatus(ctx context.Context, inventory *v2beta2.Inventory, opts v1.UpdateOptions) (*v2beta2.Inventory, error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateSubresourceAction(inventoriesResource, "status", inventory), &v2beta2.Inventory{}) + if obj == nil { + return nil, err + } + return obj.(*v2beta2.Inventory), err +} + +// Delete takes name of the inventory and deletes it. Returns an error if one occurs. +func (c *FakeInventories) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteActionWithOptions(inventoriesResource, name, opts), &v2beta2.Inventory{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeInventories) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(inventoriesResource, listOpts) + + _, err := c.Fake.Invokes(action, &v2beta2.InventoryList{}) + return err +} + +// Patch applies the patch and returns the patched inventory. +func (c *FakeInventories) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.Inventory, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(inventoriesResource, name, pt, data, subresources...), &v2beta2.Inventory{}) + if obj == nil { + return nil, err + } + return obj.(*v2beta2.Inventory), err +} diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_inventoryrequest.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_inventoryrequest.go new file mode 100644 index 000000000..441bd3d41 --- /dev/null +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_inventoryrequest.go @@ -0,0 +1,133 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + "context" + + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeInventoryRequests implements InventoryRequestInterface +type FakeInventoryRequests struct { + Fake *FakeAkashV2beta2 +} + +var inventoryrequestsResource = schema.GroupVersionResource{Group: "akash.network", Version: "v2beta2", Resource: "inventoryrequests"} + +var inventoryrequestsKind = schema.GroupVersionKind{Group: "akash.network", Version: "v2beta2", Kind: "InventoryRequest"} + +// Get takes name of the inventoryRequest, and returns the corresponding inventoryRequest object, and an error if there is any. +func (c *FakeInventoryRequests) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.InventoryRequest, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(inventoryrequestsResource, name), &v2beta2.InventoryRequest{}) + if obj == nil { + return nil, err + } + return obj.(*v2beta2.InventoryRequest), err +} + +// List takes label and field selectors, and returns the list of InventoryRequests that match those selectors. +func (c *FakeInventoryRequests) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.InventoryRequestList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(inventoryrequestsResource, inventoryrequestsKind, opts), &v2beta2.InventoryRequestList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v2beta2.InventoryRequestList{ListMeta: obj.(*v2beta2.InventoryRequestList).ListMeta} + for _, item := range obj.(*v2beta2.InventoryRequestList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested inventoryRequests. +func (c *FakeInventoryRequests) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(inventoryrequestsResource, opts)) +} + +// Create takes the representation of a inventoryRequest and creates it. Returns the server's representation of the inventoryRequest, and an error, if there is any. +func (c *FakeInventoryRequests) Create(ctx context.Context, inventoryRequest *v2beta2.InventoryRequest, opts v1.CreateOptions) (result *v2beta2.InventoryRequest, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(inventoryrequestsResource, inventoryRequest), &v2beta2.InventoryRequest{}) + if obj == nil { + return nil, err + } + return obj.(*v2beta2.InventoryRequest), err +} + +// Update takes the representation of a inventoryRequest and updates it. Returns the server's representation of the inventoryRequest, and an error, if there is any. +func (c *FakeInventoryRequests) Update(ctx context.Context, inventoryRequest *v2beta2.InventoryRequest, opts v1.UpdateOptions) (result *v2beta2.InventoryRequest, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(inventoryrequestsResource, inventoryRequest), &v2beta2.InventoryRequest{}) + if obj == nil { + return nil, err + } + return obj.(*v2beta2.InventoryRequest), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeInventoryRequests) UpdateStatus(ctx context.Context, inventoryRequest *v2beta2.InventoryRequest, opts v1.UpdateOptions) (*v2beta2.InventoryRequest, error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateSubresourceAction(inventoryrequestsResource, "status", inventoryRequest), &v2beta2.InventoryRequest{}) + if obj == nil { + return nil, err + } + return obj.(*v2beta2.InventoryRequest), err +} + +// Delete takes name of the inventoryRequest and deletes it. Returns an error if one occurs. +func (c *FakeInventoryRequests) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteActionWithOptions(inventoryrequestsResource, name, opts), &v2beta2.InventoryRequest{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeInventoryRequests) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(inventoryrequestsResource, listOpts) + + _, err := c.Fake.Invokes(action, &v2beta2.InventoryRequestList{}) + return err +} + +// Patch applies the patch and returns the patched inventoryRequest. +func (c *FakeInventoryRequests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.InventoryRequest, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(inventoryrequestsResource, name, pt, data, subresources...), &v2beta2.InventoryRequest{}) + if obj == nil { + return nil, err + } + return obj.(*v2beta2.InventoryRequest), err +} diff --git a/pkg/client/clientset/versioned/typed/akash.network/v1/fake/fake_manifest.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_manifest.go similarity index 71% rename from pkg/client/clientset/versioned/typed/akash.network/v1/fake/fake_manifest.go rename to pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_manifest.go index 3afedccbf..0b6ede375 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v1/fake/fake_manifest.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_manifest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package fake import ( "context" - akashnetworkv1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -32,29 +32,29 @@ import ( // FakeManifests implements ManifestInterface type FakeManifests struct { - Fake *FakeAkashV1 + Fake *FakeAkashV2beta2 ns string } -var manifestsResource = schema.GroupVersionResource{Group: "akash.network", Version: "v1", Resource: "manifests"} +var manifestsResource = schema.GroupVersionResource{Group: "akash.network", Version: "v2beta2", Resource: "manifests"} -var manifestsKind = schema.GroupVersionKind{Group: "akash.network", Version: "v1", Kind: "Manifest"} +var manifestsKind = schema.GroupVersionKind{Group: "akash.network", Version: "v2beta2", Kind: "Manifest"} // Get takes name of the manifest, and returns the corresponding manifest object, and an error if there is any. -func (c *FakeManifests) Get(ctx context.Context, name string, options v1.GetOptions) (result *akashnetworkv1.Manifest, err error) { +func (c *FakeManifests) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.Manifest, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(manifestsResource, c.ns, name), &akashnetworkv1.Manifest{}) + Invokes(testing.NewGetAction(manifestsResource, c.ns, name), &v2beta2.Manifest{}) if obj == nil { return nil, err } - return obj.(*akashnetworkv1.Manifest), err + return obj.(*v2beta2.Manifest), err } // List takes label and field selectors, and returns the list of Manifests that match those selectors. -func (c *FakeManifests) List(ctx context.Context, opts v1.ListOptions) (result *akashnetworkv1.ManifestList, err error) { +func (c *FakeManifests) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.ManifestList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(manifestsResource, manifestsKind, c.ns, opts), &akashnetworkv1.ManifestList{}) + Invokes(testing.NewListAction(manifestsResource, manifestsKind, c.ns, opts), &v2beta2.ManifestList{}) if obj == nil { return nil, err @@ -64,8 +64,8 @@ func (c *FakeManifests) List(ctx context.Context, opts v1.ListOptions) (result * if label == nil { label = labels.Everything() } - list := &akashnetworkv1.ManifestList{ListMeta: obj.(*akashnetworkv1.ManifestList).ListMeta} - for _, item := range obj.(*akashnetworkv1.ManifestList).Items { + list := &v2beta2.ManifestList{ListMeta: obj.(*v2beta2.ManifestList).ListMeta} + for _, item := range obj.(*v2beta2.ManifestList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -81,43 +81,43 @@ func (c *FakeManifests) Watch(ctx context.Context, opts v1.ListOptions) (watch.I } // Create takes the representation of a manifest and creates it. Returns the server's representation of the manifest, and an error, if there is any. -func (c *FakeManifests) Create(ctx context.Context, manifest *akashnetworkv1.Manifest, opts v1.CreateOptions) (result *akashnetworkv1.Manifest, err error) { +func (c *FakeManifests) Create(ctx context.Context, manifest *v2beta2.Manifest, opts v1.CreateOptions) (result *v2beta2.Manifest, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(manifestsResource, c.ns, manifest), &akashnetworkv1.Manifest{}) + Invokes(testing.NewCreateAction(manifestsResource, c.ns, manifest), &v2beta2.Manifest{}) if obj == nil { return nil, err } - return obj.(*akashnetworkv1.Manifest), err + return obj.(*v2beta2.Manifest), err } // Update takes the representation of a manifest and updates it. Returns the server's representation of the manifest, and an error, if there is any. -func (c *FakeManifests) Update(ctx context.Context, manifest *akashnetworkv1.Manifest, opts v1.UpdateOptions) (result *akashnetworkv1.Manifest, err error) { +func (c *FakeManifests) Update(ctx context.Context, manifest *v2beta2.Manifest, opts v1.UpdateOptions) (result *v2beta2.Manifest, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(manifestsResource, c.ns, manifest), &akashnetworkv1.Manifest{}) + Invokes(testing.NewUpdateAction(manifestsResource, c.ns, manifest), &v2beta2.Manifest{}) if obj == nil { return nil, err } - return obj.(*akashnetworkv1.Manifest), err + return obj.(*v2beta2.Manifest), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeManifests) UpdateStatus(ctx context.Context, manifest *akashnetworkv1.Manifest, opts v1.UpdateOptions) (*akashnetworkv1.Manifest, error) { +func (c *FakeManifests) UpdateStatus(ctx context.Context, manifest *v2beta2.Manifest, opts v1.UpdateOptions) (*v2beta2.Manifest, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(manifestsResource, "status", c.ns, manifest), &akashnetworkv1.Manifest{}) + Invokes(testing.NewUpdateSubresourceAction(manifestsResource, "status", c.ns, manifest), &v2beta2.Manifest{}) if obj == nil { return nil, err } - return obj.(*akashnetworkv1.Manifest), err + return obj.(*v2beta2.Manifest), err } // Delete takes name of the manifest and deletes it. Returns an error if one occurs. func (c *FakeManifests) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteActionWithOptions(manifestsResource, c.ns, name, opts), &akashnetworkv1.Manifest{}) + Invokes(testing.NewDeleteActionWithOptions(manifestsResource, c.ns, name, opts), &v2beta2.Manifest{}) return err } @@ -126,17 +126,17 @@ func (c *FakeManifests) Delete(ctx context.Context, name string, opts v1.DeleteO func (c *FakeManifests) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { action := testing.NewDeleteCollectionAction(manifestsResource, c.ns, listOpts) - _, err := c.Fake.Invokes(action, &akashnetworkv1.ManifestList{}) + _, err := c.Fake.Invokes(action, &v2beta2.ManifestList{}) return err } // Patch applies the patch and returns the patched manifest. -func (c *FakeManifests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *akashnetworkv1.Manifest, err error) { +func (c *FakeManifests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.Manifest, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(manifestsResource, c.ns, name, pt, data, subresources...), &akashnetworkv1.Manifest{}) + Invokes(testing.NewPatchSubresourceAction(manifestsResource, c.ns, name, pt, data, subresources...), &v2beta2.Manifest{}) if obj == nil { return nil, err } - return obj.(*akashnetworkv1.Manifest), err + return obj.(*v2beta2.Manifest), err } diff --git a/pkg/client/clientset/versioned/typed/akash.network/v1/fake/fake_providerhost.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_providerhost.go similarity index 71% rename from pkg/client/clientset/versioned/typed/akash.network/v1/fake/fake_providerhost.go rename to pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_providerhost.go index 2d61ef71f..0b4b3f3f3 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v1/fake/fake_providerhost.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_providerhost.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package fake import ( "context" - akashnetworkv1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -32,29 +32,29 @@ import ( // FakeProviderHosts implements ProviderHostInterface type FakeProviderHosts struct { - Fake *FakeAkashV1 + Fake *FakeAkashV2beta2 ns string } -var providerhostsResource = schema.GroupVersionResource{Group: "akash.network", Version: "v1", Resource: "providerhosts"} +var providerhostsResource = schema.GroupVersionResource{Group: "akash.network", Version: "v2beta2", Resource: "providerhosts"} -var providerhostsKind = schema.GroupVersionKind{Group: "akash.network", Version: "v1", Kind: "ProviderHost"} +var providerhostsKind = schema.GroupVersionKind{Group: "akash.network", Version: "v2beta2", Kind: "ProviderHost"} // Get takes name of the providerHost, and returns the corresponding providerHost object, and an error if there is any. -func (c *FakeProviderHosts) Get(ctx context.Context, name string, options v1.GetOptions) (result *akashnetworkv1.ProviderHost, err error) { +func (c *FakeProviderHosts) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.ProviderHost, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(providerhostsResource, c.ns, name), &akashnetworkv1.ProviderHost{}) + Invokes(testing.NewGetAction(providerhostsResource, c.ns, name), &v2beta2.ProviderHost{}) if obj == nil { return nil, err } - return obj.(*akashnetworkv1.ProviderHost), err + return obj.(*v2beta2.ProviderHost), err } // List takes label and field selectors, and returns the list of ProviderHosts that match those selectors. -func (c *FakeProviderHosts) List(ctx context.Context, opts v1.ListOptions) (result *akashnetworkv1.ProviderHostList, err error) { +func (c *FakeProviderHosts) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.ProviderHostList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(providerhostsResource, providerhostsKind, c.ns, opts), &akashnetworkv1.ProviderHostList{}) + Invokes(testing.NewListAction(providerhostsResource, providerhostsKind, c.ns, opts), &v2beta2.ProviderHostList{}) if obj == nil { return nil, err @@ -64,8 +64,8 @@ func (c *FakeProviderHosts) List(ctx context.Context, opts v1.ListOptions) (resu if label == nil { label = labels.Everything() } - list := &akashnetworkv1.ProviderHostList{ListMeta: obj.(*akashnetworkv1.ProviderHostList).ListMeta} - for _, item := range obj.(*akashnetworkv1.ProviderHostList).Items { + list := &v2beta2.ProviderHostList{ListMeta: obj.(*v2beta2.ProviderHostList).ListMeta} + for _, item := range obj.(*v2beta2.ProviderHostList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -81,43 +81,43 @@ func (c *FakeProviderHosts) Watch(ctx context.Context, opts v1.ListOptions) (wat } // Create takes the representation of a providerHost and creates it. Returns the server's representation of the providerHost, and an error, if there is any. -func (c *FakeProviderHosts) Create(ctx context.Context, providerHost *akashnetworkv1.ProviderHost, opts v1.CreateOptions) (result *akashnetworkv1.ProviderHost, err error) { +func (c *FakeProviderHosts) Create(ctx context.Context, providerHost *v2beta2.ProviderHost, opts v1.CreateOptions) (result *v2beta2.ProviderHost, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(providerhostsResource, c.ns, providerHost), &akashnetworkv1.ProviderHost{}) + Invokes(testing.NewCreateAction(providerhostsResource, c.ns, providerHost), &v2beta2.ProviderHost{}) if obj == nil { return nil, err } - return obj.(*akashnetworkv1.ProviderHost), err + return obj.(*v2beta2.ProviderHost), err } // Update takes the representation of a providerHost and updates it. Returns the server's representation of the providerHost, and an error, if there is any. -func (c *FakeProviderHosts) Update(ctx context.Context, providerHost *akashnetworkv1.ProviderHost, opts v1.UpdateOptions) (result *akashnetworkv1.ProviderHost, err error) { +func (c *FakeProviderHosts) Update(ctx context.Context, providerHost *v2beta2.ProviderHost, opts v1.UpdateOptions) (result *v2beta2.ProviderHost, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(providerhostsResource, c.ns, providerHost), &akashnetworkv1.ProviderHost{}) + Invokes(testing.NewUpdateAction(providerhostsResource, c.ns, providerHost), &v2beta2.ProviderHost{}) if obj == nil { return nil, err } - return obj.(*akashnetworkv1.ProviderHost), err + return obj.(*v2beta2.ProviderHost), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeProviderHosts) UpdateStatus(ctx context.Context, providerHost *akashnetworkv1.ProviderHost, opts v1.UpdateOptions) (*akashnetworkv1.ProviderHost, error) { +func (c *FakeProviderHosts) UpdateStatus(ctx context.Context, providerHost *v2beta2.ProviderHost, opts v1.UpdateOptions) (*v2beta2.ProviderHost, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(providerhostsResource, "status", c.ns, providerHost), &akashnetworkv1.ProviderHost{}) + Invokes(testing.NewUpdateSubresourceAction(providerhostsResource, "status", c.ns, providerHost), &v2beta2.ProviderHost{}) if obj == nil { return nil, err } - return obj.(*akashnetworkv1.ProviderHost), err + return obj.(*v2beta2.ProviderHost), err } // Delete takes name of the providerHost and deletes it. Returns an error if one occurs. func (c *FakeProviderHosts) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteActionWithOptions(providerhostsResource, c.ns, name, opts), &akashnetworkv1.ProviderHost{}) + Invokes(testing.NewDeleteActionWithOptions(providerhostsResource, c.ns, name, opts), &v2beta2.ProviderHost{}) return err } @@ -126,17 +126,17 @@ func (c *FakeProviderHosts) Delete(ctx context.Context, name string, opts v1.Del func (c *FakeProviderHosts) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { action := testing.NewDeleteCollectionAction(providerhostsResource, c.ns, listOpts) - _, err := c.Fake.Invokes(action, &akashnetworkv1.ProviderHostList{}) + _, err := c.Fake.Invokes(action, &v2beta2.ProviderHostList{}) return err } // Patch applies the patch and returns the patched providerHost. -func (c *FakeProviderHosts) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *akashnetworkv1.ProviderHost, err error) { +func (c *FakeProviderHosts) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.ProviderHost, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(providerhostsResource, c.ns, name, pt, data, subresources...), &akashnetworkv1.ProviderHost{}) + Invokes(testing.NewPatchSubresourceAction(providerhostsResource, c.ns, name, pt, data, subresources...), &v2beta2.ProviderHost{}) if obj == nil { return nil, err } - return obj.(*akashnetworkv1.ProviderHost), err + return obj.(*v2beta2.ProviderHost), err } diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_providerleasedip.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_providerleasedip.go new file mode 100644 index 000000000..26191e4d4 --- /dev/null +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/fake/fake_providerleasedip.go @@ -0,0 +1,142 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + "context" + + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeProviderLeasedIPs implements ProviderLeasedIPInterface +type FakeProviderLeasedIPs struct { + Fake *FakeAkashV2beta2 + ns string +} + +var providerleasedipsResource = schema.GroupVersionResource{Group: "akash.network", Version: "v2beta2", Resource: "providerleasedips"} + +var providerleasedipsKind = schema.GroupVersionKind{Group: "akash.network", Version: "v2beta2", Kind: "ProviderLeasedIP"} + +// Get takes name of the providerLeasedIP, and returns the corresponding providerLeasedIP object, and an error if there is any. +func (c *FakeProviderLeasedIPs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.ProviderLeasedIP, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(providerleasedipsResource, c.ns, name), &v2beta2.ProviderLeasedIP{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.ProviderLeasedIP), err +} + +// List takes label and field selectors, and returns the list of ProviderLeasedIPs that match those selectors. +func (c *FakeProviderLeasedIPs) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.ProviderLeasedIPList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(providerleasedipsResource, providerleasedipsKind, c.ns, opts), &v2beta2.ProviderLeasedIPList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v2beta2.ProviderLeasedIPList{ListMeta: obj.(*v2beta2.ProviderLeasedIPList).ListMeta} + for _, item := range obj.(*v2beta2.ProviderLeasedIPList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested providerLeasedIPs. +func (c *FakeProviderLeasedIPs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(providerleasedipsResource, c.ns, opts)) + +} + +// Create takes the representation of a providerLeasedIP and creates it. Returns the server's representation of the providerLeasedIP, and an error, if there is any. +func (c *FakeProviderLeasedIPs) Create(ctx context.Context, providerLeasedIP *v2beta2.ProviderLeasedIP, opts v1.CreateOptions) (result *v2beta2.ProviderLeasedIP, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(providerleasedipsResource, c.ns, providerLeasedIP), &v2beta2.ProviderLeasedIP{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.ProviderLeasedIP), err +} + +// Update takes the representation of a providerLeasedIP and updates it. Returns the server's representation of the providerLeasedIP, and an error, if there is any. +func (c *FakeProviderLeasedIPs) Update(ctx context.Context, providerLeasedIP *v2beta2.ProviderLeasedIP, opts v1.UpdateOptions) (result *v2beta2.ProviderLeasedIP, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(providerleasedipsResource, c.ns, providerLeasedIP), &v2beta2.ProviderLeasedIP{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.ProviderLeasedIP), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeProviderLeasedIPs) UpdateStatus(ctx context.Context, providerLeasedIP *v2beta2.ProviderLeasedIP, opts v1.UpdateOptions) (*v2beta2.ProviderLeasedIP, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(providerleasedipsResource, "status", c.ns, providerLeasedIP), &v2beta2.ProviderLeasedIP{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.ProviderLeasedIP), err +} + +// Delete takes name of the providerLeasedIP and deletes it. Returns an error if one occurs. +func (c *FakeProviderLeasedIPs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteActionWithOptions(providerleasedipsResource, c.ns, name, opts), &v2beta2.ProviderLeasedIP{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeProviderLeasedIPs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(providerleasedipsResource, c.ns, listOpts) + + _, err := c.Fake.Invokes(action, &v2beta2.ProviderLeasedIPList{}) + return err +} + +// Patch applies the patch and returns the patched providerLeasedIP. +func (c *FakeProviderLeasedIPs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.ProviderLeasedIP, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(providerleasedipsResource, c.ns, name, pt, data, subresources...), &v2beta2.ProviderLeasedIP{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.ProviderLeasedIP), err +} diff --git a/pkg/client/clientset/versioned/typed/akash.network/v1/generated_expansion.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/generated_expansion.go similarity index 78% rename from pkg/client/clientset/versioned/typed/akash.network/v1/generated_expansion.go rename to pkg/client/clientset/versioned/typed/akash.network/v2beta2/generated_expansion.go index 08274c7b6..75cfc83c1 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v1/generated_expansion.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,8 +16,14 @@ limitations under the License. // Code generated by client-gen. DO NOT EDIT. -package v1 +package v2beta2 + +type InventoryExpansion interface{} + +type InventoryRequestExpansion interface{} type ManifestExpansion interface{} type ProviderHostExpansion interface{} + +type ProviderLeasedIPExpansion interface{} diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta2/inventory.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/inventory.go new file mode 100644 index 000000000..f97ad41a6 --- /dev/null +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/inventory.go @@ -0,0 +1,184 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v2beta2 + +import ( + "context" + "time" + + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + scheme "github.com/akash-network/provider/pkg/client/clientset/versioned/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// InventoriesGetter has a method to return a InventoryInterface. +// A group's client should implement this interface. +type InventoriesGetter interface { + Inventories() InventoryInterface +} + +// InventoryInterface has methods to work with Inventory resources. +type InventoryInterface interface { + Create(ctx context.Context, inventory *v2beta2.Inventory, opts v1.CreateOptions) (*v2beta2.Inventory, error) + Update(ctx context.Context, inventory *v2beta2.Inventory, opts v1.UpdateOptions) (*v2beta2.Inventory, error) + UpdateStatus(ctx context.Context, inventory *v2beta2.Inventory, opts v1.UpdateOptions) (*v2beta2.Inventory, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v2beta2.Inventory, error) + List(ctx context.Context, opts v1.ListOptions) (*v2beta2.InventoryList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.Inventory, err error) + InventoryExpansion +} + +// inventories implements InventoryInterface +type inventories struct { + client rest.Interface +} + +// newInventories returns a Inventories +func newInventories(c *AkashV2beta2Client) *inventories { + return &inventories{ + client: c.RESTClient(), + } +} + +// Get takes name of the inventory, and returns the corresponding inventory object, and an error if there is any. +func (c *inventories) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.Inventory, err error) { + result = &v2beta2.Inventory{} + err = c.client.Get(). + Resource("inventories"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Inventories that match those selectors. +func (c *inventories) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.InventoryList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v2beta2.InventoryList{} + err = c.client.Get(). + Resource("inventories"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested inventories. +func (c *inventories) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Resource("inventories"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a inventory and creates it. Returns the server's representation of the inventory, and an error, if there is any. +func (c *inventories) Create(ctx context.Context, inventory *v2beta2.Inventory, opts v1.CreateOptions) (result *v2beta2.Inventory, err error) { + result = &v2beta2.Inventory{} + err = c.client.Post(). + Resource("inventories"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(inventory). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a inventory and updates it. Returns the server's representation of the inventory, and an error, if there is any. +func (c *inventories) Update(ctx context.Context, inventory *v2beta2.Inventory, opts v1.UpdateOptions) (result *v2beta2.Inventory, err error) { + result = &v2beta2.Inventory{} + err = c.client.Put(). + Resource("inventories"). + Name(inventory.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(inventory). + Do(ctx). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *inventories) UpdateStatus(ctx context.Context, inventory *v2beta2.Inventory, opts v1.UpdateOptions) (result *v2beta2.Inventory, err error) { + result = &v2beta2.Inventory{} + err = c.client.Put(). + Resource("inventories"). + Name(inventory.Name). + SubResource("status"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(inventory). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the inventory and deletes it. Returns an error if one occurs. +func (c *inventories) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + return c.client.Delete(). + Resource("inventories"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *inventories) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Resource("inventories"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched inventory. +func (c *inventories) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.Inventory, err error) { + result = &v2beta2.Inventory{} + err = c.client.Patch(pt). + Resource("inventories"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta2/inventoryrequest.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/inventoryrequest.go new file mode 100644 index 000000000..b1aa65741 --- /dev/null +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/inventoryrequest.go @@ -0,0 +1,184 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v2beta2 + +import ( + "context" + "time" + + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + scheme "github.com/akash-network/provider/pkg/client/clientset/versioned/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// InventoryRequestsGetter has a method to return a InventoryRequestInterface. +// A group's client should implement this interface. +type InventoryRequestsGetter interface { + InventoryRequests() InventoryRequestInterface +} + +// InventoryRequestInterface has methods to work with InventoryRequest resources. +type InventoryRequestInterface interface { + Create(ctx context.Context, inventoryRequest *v2beta2.InventoryRequest, opts v1.CreateOptions) (*v2beta2.InventoryRequest, error) + Update(ctx context.Context, inventoryRequest *v2beta2.InventoryRequest, opts v1.UpdateOptions) (*v2beta2.InventoryRequest, error) + UpdateStatus(ctx context.Context, inventoryRequest *v2beta2.InventoryRequest, opts v1.UpdateOptions) (*v2beta2.InventoryRequest, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v2beta2.InventoryRequest, error) + List(ctx context.Context, opts v1.ListOptions) (*v2beta2.InventoryRequestList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.InventoryRequest, err error) + InventoryRequestExpansion +} + +// inventoryRequests implements InventoryRequestInterface +type inventoryRequests struct { + client rest.Interface +} + +// newInventoryRequests returns a InventoryRequests +func newInventoryRequests(c *AkashV2beta2Client) *inventoryRequests { + return &inventoryRequests{ + client: c.RESTClient(), + } +} + +// Get takes name of the inventoryRequest, and returns the corresponding inventoryRequest object, and an error if there is any. +func (c *inventoryRequests) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.InventoryRequest, err error) { + result = &v2beta2.InventoryRequest{} + err = c.client.Get(). + Resource("inventoryrequests"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of InventoryRequests that match those selectors. +func (c *inventoryRequests) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.InventoryRequestList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v2beta2.InventoryRequestList{} + err = c.client.Get(). + Resource("inventoryrequests"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested inventoryRequests. +func (c *inventoryRequests) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Resource("inventoryrequests"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a inventoryRequest and creates it. Returns the server's representation of the inventoryRequest, and an error, if there is any. +func (c *inventoryRequests) Create(ctx context.Context, inventoryRequest *v2beta2.InventoryRequest, opts v1.CreateOptions) (result *v2beta2.InventoryRequest, err error) { + result = &v2beta2.InventoryRequest{} + err = c.client.Post(). + Resource("inventoryrequests"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(inventoryRequest). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a inventoryRequest and updates it. Returns the server's representation of the inventoryRequest, and an error, if there is any. +func (c *inventoryRequests) Update(ctx context.Context, inventoryRequest *v2beta2.InventoryRequest, opts v1.UpdateOptions) (result *v2beta2.InventoryRequest, err error) { + result = &v2beta2.InventoryRequest{} + err = c.client.Put(). + Resource("inventoryrequests"). + Name(inventoryRequest.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(inventoryRequest). + Do(ctx). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *inventoryRequests) UpdateStatus(ctx context.Context, inventoryRequest *v2beta2.InventoryRequest, opts v1.UpdateOptions) (result *v2beta2.InventoryRequest, err error) { + result = &v2beta2.InventoryRequest{} + err = c.client.Put(). + Resource("inventoryrequests"). + Name(inventoryRequest.Name). + SubResource("status"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(inventoryRequest). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the inventoryRequest and deletes it. Returns an error if one occurs. +func (c *inventoryRequests) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + return c.client.Delete(). + Resource("inventoryrequests"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *inventoryRequests) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Resource("inventoryrequests"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched inventoryRequest. +func (c *inventoryRequests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.InventoryRequest, err error) { + result = &v2beta2.InventoryRequest{} + err = c.client.Patch(pt). + Resource("inventoryrequests"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/pkg/client/clientset/versioned/typed/akash.network/v1/manifest.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/manifest.go similarity index 68% rename from pkg/client/clientset/versioned/typed/akash.network/v1/manifest.go rename to pkg/client/clientset/versioned/typed/akash.network/v2beta2/manifest.go index d792216ba..d5e56b586 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v1/manifest.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/manifest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,15 +16,15 @@ limitations under the License. // Code generated by client-gen. DO NOT EDIT. -package v1 +package v2beta2 import ( "context" "time" - v1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" scheme "github.com/akash-network/provider/pkg/client/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" @@ -38,15 +38,15 @@ type ManifestsGetter interface { // ManifestInterface has methods to work with Manifest resources. type ManifestInterface interface { - Create(ctx context.Context, manifest *v1.Manifest, opts metav1.CreateOptions) (*v1.Manifest, error) - Update(ctx context.Context, manifest *v1.Manifest, opts metav1.UpdateOptions) (*v1.Manifest, error) - UpdateStatus(ctx context.Context, manifest *v1.Manifest, opts metav1.UpdateOptions) (*v1.Manifest, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Manifest, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ManifestList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Manifest, err error) + Create(ctx context.Context, manifest *v2beta2.Manifest, opts v1.CreateOptions) (*v2beta2.Manifest, error) + Update(ctx context.Context, manifest *v2beta2.Manifest, opts v1.UpdateOptions) (*v2beta2.Manifest, error) + UpdateStatus(ctx context.Context, manifest *v2beta2.Manifest, opts v1.UpdateOptions) (*v2beta2.Manifest, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v2beta2.Manifest, error) + List(ctx context.Context, opts v1.ListOptions) (*v2beta2.ManifestList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.Manifest, err error) ManifestExpansion } @@ -57,7 +57,7 @@ type manifests struct { } // newManifests returns a Manifests -func newManifests(c *AkashV1Client, namespace string) *manifests { +func newManifests(c *AkashV2beta2Client, namespace string) *manifests { return &manifests{ client: c.RESTClient(), ns: namespace, @@ -65,8 +65,8 @@ func newManifests(c *AkashV1Client, namespace string) *manifests { } // Get takes name of the manifest, and returns the corresponding manifest object, and an error if there is any. -func (c *manifests) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Manifest, err error) { - result = &v1.Manifest{} +func (c *manifests) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.Manifest, err error) { + result = &v2beta2.Manifest{} err = c.client.Get(). Namespace(c.ns). Resource("manifests"). @@ -78,12 +78,12 @@ func (c *manifests) Get(ctx context.Context, name string, options metav1.GetOpti } // List takes label and field selectors, and returns the list of Manifests that match those selectors. -func (c *manifests) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ManifestList, err error) { +func (c *manifests) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.ManifestList, err error) { var timeout time.Duration if opts.TimeoutSeconds != nil { timeout = time.Duration(*opts.TimeoutSeconds) * time.Second } - result = &v1.ManifestList{} + result = &v2beta2.ManifestList{} err = c.client.Get(). Namespace(c.ns). Resource("manifests"). @@ -95,7 +95,7 @@ func (c *manifests) List(ctx context.Context, opts metav1.ListOptions) (result * } // Watch returns a watch.Interface that watches the requested manifests. -func (c *manifests) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) { +func (c *manifests) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { var timeout time.Duration if opts.TimeoutSeconds != nil { timeout = time.Duration(*opts.TimeoutSeconds) * time.Second @@ -110,8 +110,8 @@ func (c *manifests) Watch(ctx context.Context, opts metav1.ListOptions) (watch.I } // Create takes the representation of a manifest and creates it. Returns the server's representation of the manifest, and an error, if there is any. -func (c *manifests) Create(ctx context.Context, manifest *v1.Manifest, opts metav1.CreateOptions) (result *v1.Manifest, err error) { - result = &v1.Manifest{} +func (c *manifests) Create(ctx context.Context, manifest *v2beta2.Manifest, opts v1.CreateOptions) (result *v2beta2.Manifest, err error) { + result = &v2beta2.Manifest{} err = c.client.Post(). Namespace(c.ns). Resource("manifests"). @@ -123,8 +123,8 @@ func (c *manifests) Create(ctx context.Context, manifest *v1.Manifest, opts meta } // Update takes the representation of a manifest and updates it. Returns the server's representation of the manifest, and an error, if there is any. -func (c *manifests) Update(ctx context.Context, manifest *v1.Manifest, opts metav1.UpdateOptions) (result *v1.Manifest, err error) { - result = &v1.Manifest{} +func (c *manifests) Update(ctx context.Context, manifest *v2beta2.Manifest, opts v1.UpdateOptions) (result *v2beta2.Manifest, err error) { + result = &v2beta2.Manifest{} err = c.client.Put(). Namespace(c.ns). Resource("manifests"). @@ -138,8 +138,8 @@ func (c *manifests) Update(ctx context.Context, manifest *v1.Manifest, opts meta // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *manifests) UpdateStatus(ctx context.Context, manifest *v1.Manifest, opts metav1.UpdateOptions) (result *v1.Manifest, err error) { - result = &v1.Manifest{} +func (c *manifests) UpdateStatus(ctx context.Context, manifest *v2beta2.Manifest, opts v1.UpdateOptions) (result *v2beta2.Manifest, err error) { + result = &v2beta2.Manifest{} err = c.client.Put(). Namespace(c.ns). Resource("manifests"). @@ -153,7 +153,7 @@ func (c *manifests) UpdateStatus(ctx context.Context, manifest *v1.Manifest, opt } // Delete takes name of the manifest and deletes it. Returns an error if one occurs. -func (c *manifests) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { +func (c *manifests) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("manifests"). @@ -164,7 +164,7 @@ func (c *manifests) Delete(ctx context.Context, name string, opts metav1.DeleteO } // DeleteCollection deletes a collection of objects. -func (c *manifests) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { +func (c *manifests) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { var timeout time.Duration if listOpts.TimeoutSeconds != nil { timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second @@ -180,8 +180,8 @@ func (c *manifests) DeleteCollection(ctx context.Context, opts metav1.DeleteOpti } // Patch applies the patch and returns the patched manifest. -func (c *manifests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Manifest, err error) { - result = &v1.Manifest{} +func (c *manifests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.Manifest, err error) { + result = &v2beta2.Manifest{} err = c.client.Patch(pt). Namespace(c.ns). Resource("manifests"). diff --git a/pkg/client/clientset/versioned/typed/akash.network/v1/providerhost.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/providerhost.go similarity index 70% rename from pkg/client/clientset/versioned/typed/akash.network/v1/providerhost.go rename to pkg/client/clientset/versioned/typed/akash.network/v2beta2/providerhost.go index b37e059c6..cb7fa3bcc 100644 --- a/pkg/client/clientset/versioned/typed/akash.network/v1/providerhost.go +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/providerhost.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,15 +16,15 @@ limitations under the License. // Code generated by client-gen. DO NOT EDIT. -package v1 +package v2beta2 import ( "context" "time" - v1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" scheme "github.com/akash-network/provider/pkg/client/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" @@ -38,15 +38,15 @@ type ProviderHostsGetter interface { // ProviderHostInterface has methods to work with ProviderHost resources. type ProviderHostInterface interface { - Create(ctx context.Context, providerHost *v1.ProviderHost, opts metav1.CreateOptions) (*v1.ProviderHost, error) - Update(ctx context.Context, providerHost *v1.ProviderHost, opts metav1.UpdateOptions) (*v1.ProviderHost, error) - UpdateStatus(ctx context.Context, providerHost *v1.ProviderHost, opts metav1.UpdateOptions) (*v1.ProviderHost, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ProviderHost, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ProviderHostList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ProviderHost, err error) + Create(ctx context.Context, providerHost *v2beta2.ProviderHost, opts v1.CreateOptions) (*v2beta2.ProviderHost, error) + Update(ctx context.Context, providerHost *v2beta2.ProviderHost, opts v1.UpdateOptions) (*v2beta2.ProviderHost, error) + UpdateStatus(ctx context.Context, providerHost *v2beta2.ProviderHost, opts v1.UpdateOptions) (*v2beta2.ProviderHost, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v2beta2.ProviderHost, error) + List(ctx context.Context, opts v1.ListOptions) (*v2beta2.ProviderHostList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.ProviderHost, err error) ProviderHostExpansion } @@ -57,7 +57,7 @@ type providerHosts struct { } // newProviderHosts returns a ProviderHosts -func newProviderHosts(c *AkashV1Client, namespace string) *providerHosts { +func newProviderHosts(c *AkashV2beta2Client, namespace string) *providerHosts { return &providerHosts{ client: c.RESTClient(), ns: namespace, @@ -65,8 +65,8 @@ func newProviderHosts(c *AkashV1Client, namespace string) *providerHosts { } // Get takes name of the providerHost, and returns the corresponding providerHost object, and an error if there is any. -func (c *providerHosts) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ProviderHost, err error) { - result = &v1.ProviderHost{} +func (c *providerHosts) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.ProviderHost, err error) { + result = &v2beta2.ProviderHost{} err = c.client.Get(). Namespace(c.ns). Resource("providerhosts"). @@ -78,12 +78,12 @@ func (c *providerHosts) Get(ctx context.Context, name string, options metav1.Get } // List takes label and field selectors, and returns the list of ProviderHosts that match those selectors. -func (c *providerHosts) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ProviderHostList, err error) { +func (c *providerHosts) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.ProviderHostList, err error) { var timeout time.Duration if opts.TimeoutSeconds != nil { timeout = time.Duration(*opts.TimeoutSeconds) * time.Second } - result = &v1.ProviderHostList{} + result = &v2beta2.ProviderHostList{} err = c.client.Get(). Namespace(c.ns). Resource("providerhosts"). @@ -95,7 +95,7 @@ func (c *providerHosts) List(ctx context.Context, opts metav1.ListOptions) (resu } // Watch returns a watch.Interface that watches the requested providerHosts. -func (c *providerHosts) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) { +func (c *providerHosts) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { var timeout time.Duration if opts.TimeoutSeconds != nil { timeout = time.Duration(*opts.TimeoutSeconds) * time.Second @@ -110,8 +110,8 @@ func (c *providerHosts) Watch(ctx context.Context, opts metav1.ListOptions) (wat } // Create takes the representation of a providerHost and creates it. Returns the server's representation of the providerHost, and an error, if there is any. -func (c *providerHosts) Create(ctx context.Context, providerHost *v1.ProviderHost, opts metav1.CreateOptions) (result *v1.ProviderHost, err error) { - result = &v1.ProviderHost{} +func (c *providerHosts) Create(ctx context.Context, providerHost *v2beta2.ProviderHost, opts v1.CreateOptions) (result *v2beta2.ProviderHost, err error) { + result = &v2beta2.ProviderHost{} err = c.client.Post(). Namespace(c.ns). Resource("providerhosts"). @@ -123,8 +123,8 @@ func (c *providerHosts) Create(ctx context.Context, providerHost *v1.ProviderHos } // Update takes the representation of a providerHost and updates it. Returns the server's representation of the providerHost, and an error, if there is any. -func (c *providerHosts) Update(ctx context.Context, providerHost *v1.ProviderHost, opts metav1.UpdateOptions) (result *v1.ProviderHost, err error) { - result = &v1.ProviderHost{} +func (c *providerHosts) Update(ctx context.Context, providerHost *v2beta2.ProviderHost, opts v1.UpdateOptions) (result *v2beta2.ProviderHost, err error) { + result = &v2beta2.ProviderHost{} err = c.client.Put(). Namespace(c.ns). Resource("providerhosts"). @@ -138,8 +138,8 @@ func (c *providerHosts) Update(ctx context.Context, providerHost *v1.ProviderHos // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *providerHosts) UpdateStatus(ctx context.Context, providerHost *v1.ProviderHost, opts metav1.UpdateOptions) (result *v1.ProviderHost, err error) { - result = &v1.ProviderHost{} +func (c *providerHosts) UpdateStatus(ctx context.Context, providerHost *v2beta2.ProviderHost, opts v1.UpdateOptions) (result *v2beta2.ProviderHost, err error) { + result = &v2beta2.ProviderHost{} err = c.client.Put(). Namespace(c.ns). Resource("providerhosts"). @@ -153,7 +153,7 @@ func (c *providerHosts) UpdateStatus(ctx context.Context, providerHost *v1.Provi } // Delete takes name of the providerHost and deletes it. Returns an error if one occurs. -func (c *providerHosts) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { +func (c *providerHosts) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("providerhosts"). @@ -164,7 +164,7 @@ func (c *providerHosts) Delete(ctx context.Context, name string, opts metav1.Del } // DeleteCollection deletes a collection of objects. -func (c *providerHosts) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { +func (c *providerHosts) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { var timeout time.Duration if listOpts.TimeoutSeconds != nil { timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second @@ -180,8 +180,8 @@ func (c *providerHosts) DeleteCollection(ctx context.Context, opts metav1.Delete } // Patch applies the patch and returns the patched providerHost. -func (c *providerHosts) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ProviderHost, err error) { - result = &v1.ProviderHost{} +func (c *providerHosts) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.ProviderHost, err error) { + result = &v2beta2.ProviderHost{} err = c.client.Patch(pt). Namespace(c.ns). Resource("providerhosts"). diff --git a/pkg/client/clientset/versioned/typed/akash.network/v2beta2/providerleasedip.go b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/providerleasedip.go new file mode 100644 index 000000000..4c19696de --- /dev/null +++ b/pkg/client/clientset/versioned/typed/akash.network/v2beta2/providerleasedip.go @@ -0,0 +1,195 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v2beta2 + +import ( + "context" + "time" + + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + scheme "github.com/akash-network/provider/pkg/client/clientset/versioned/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// ProviderLeasedIPsGetter has a method to return a ProviderLeasedIPInterface. +// A group's client should implement this interface. +type ProviderLeasedIPsGetter interface { + ProviderLeasedIPs(namespace string) ProviderLeasedIPInterface +} + +// ProviderLeasedIPInterface has methods to work with ProviderLeasedIP resources. +type ProviderLeasedIPInterface interface { + Create(ctx context.Context, providerLeasedIP *v2beta2.ProviderLeasedIP, opts v1.CreateOptions) (*v2beta2.ProviderLeasedIP, error) + Update(ctx context.Context, providerLeasedIP *v2beta2.ProviderLeasedIP, opts v1.UpdateOptions) (*v2beta2.ProviderLeasedIP, error) + UpdateStatus(ctx context.Context, providerLeasedIP *v2beta2.ProviderLeasedIP, opts v1.UpdateOptions) (*v2beta2.ProviderLeasedIP, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v2beta2.ProviderLeasedIP, error) + List(ctx context.Context, opts v1.ListOptions) (*v2beta2.ProviderLeasedIPList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.ProviderLeasedIP, err error) + ProviderLeasedIPExpansion +} + +// providerLeasedIPs implements ProviderLeasedIPInterface +type providerLeasedIPs struct { + client rest.Interface + ns string +} + +// newProviderLeasedIPs returns a ProviderLeasedIPs +func newProviderLeasedIPs(c *AkashV2beta2Client, namespace string) *providerLeasedIPs { + return &providerLeasedIPs{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the providerLeasedIP, and returns the corresponding providerLeasedIP object, and an error if there is any. +func (c *providerLeasedIPs) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2beta2.ProviderLeasedIP, err error) { + result = &v2beta2.ProviderLeasedIP{} + err = c.client.Get(). + Namespace(c.ns). + Resource("providerleasedips"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of ProviderLeasedIPs that match those selectors. +func (c *providerLeasedIPs) List(ctx context.Context, opts v1.ListOptions) (result *v2beta2.ProviderLeasedIPList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v2beta2.ProviderLeasedIPList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("providerleasedips"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested providerLeasedIPs. +func (c *providerLeasedIPs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("providerleasedips"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a providerLeasedIP and creates it. Returns the server's representation of the providerLeasedIP, and an error, if there is any. +func (c *providerLeasedIPs) Create(ctx context.Context, providerLeasedIP *v2beta2.ProviderLeasedIP, opts v1.CreateOptions) (result *v2beta2.ProviderLeasedIP, err error) { + result = &v2beta2.ProviderLeasedIP{} + err = c.client.Post(). + Namespace(c.ns). + Resource("providerleasedips"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(providerLeasedIP). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a providerLeasedIP and updates it. Returns the server's representation of the providerLeasedIP, and an error, if there is any. +func (c *providerLeasedIPs) Update(ctx context.Context, providerLeasedIP *v2beta2.ProviderLeasedIP, opts v1.UpdateOptions) (result *v2beta2.ProviderLeasedIP, err error) { + result = &v2beta2.ProviderLeasedIP{} + err = c.client.Put(). + Namespace(c.ns). + Resource("providerleasedips"). + Name(providerLeasedIP.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(providerLeasedIP). + Do(ctx). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *providerLeasedIPs) UpdateStatus(ctx context.Context, providerLeasedIP *v2beta2.ProviderLeasedIP, opts v1.UpdateOptions) (result *v2beta2.ProviderLeasedIP, err error) { + result = &v2beta2.ProviderLeasedIP{} + err = c.client.Put(). + Namespace(c.ns). + Resource("providerleasedips"). + Name(providerLeasedIP.Name). + SubResource("status"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(providerLeasedIP). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the providerLeasedIP and deletes it. Returns an error if one occurs. +func (c *providerLeasedIPs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("providerleasedips"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *providerLeasedIPs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("providerleasedips"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched providerLeasedIP. +func (c *providerLeasedIPs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2beta2.ProviderLeasedIP, err error) { + result = &v2beta2.ProviderLeasedIP{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("providerleasedips"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/pkg/client/informers/externalversions/akash.network/interface.go b/pkg/client/informers/externalversions/akash.network/interface.go index 84a7e1938..6b4583dcc 100644 --- a/pkg/client/informers/externalversions/akash.network/interface.go +++ b/pkg/client/informers/externalversions/akash.network/interface.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,17 +19,17 @@ limitations under the License. package akash import ( - v1 "github.com/akash-network/provider/pkg/client/informers/externalversions/akash.network/v1" v2beta1 "github.com/akash-network/provider/pkg/client/informers/externalversions/akash.network/v2beta1" + v2beta2 "github.com/akash-network/provider/pkg/client/informers/externalversions/akash.network/v2beta2" internalinterfaces "github.com/akash-network/provider/pkg/client/informers/externalversions/internalinterfaces" ) // Interface provides access to each of this group's versions. type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.Interface // V2beta1 provides access to shared informers for resources in V2beta1. V2beta1() v2beta1.Interface + // V2beta2 provides access to shared informers for resources in V2beta2. + V2beta2() v2beta2.Interface } type group struct { @@ -43,12 +43,12 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} - // V2beta1 returns a new v2beta1.Interface. func (g *group) V2beta1() v2beta1.Interface { return v2beta1.New(g.factory, g.namespace, g.tweakListOptions) } + +// V2beta2 returns a new v2beta2.Interface. +func (g *group) V2beta2() v2beta2.Interface { + return v2beta2.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/pkg/client/informers/externalversions/akash.network/v2beta1/interface.go b/pkg/client/informers/externalversions/akash.network/v2beta1/interface.go index 3dec85236..7dd264ba2 100644 --- a/pkg/client/informers/externalversions/akash.network/v2beta1/interface.go +++ b/pkg/client/informers/externalversions/akash.network/v2beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/akash.network/v2beta1/inventory.go b/pkg/client/informers/externalversions/akash.network/v2beta1/inventory.go index 7594f54fc..5429cdba0 100644 --- a/pkg/client/informers/externalversions/akash.network/v2beta1/inventory.go +++ b/pkg/client/informers/externalversions/akash.network/v2beta1/inventory.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/akash.network/v2beta1/inventoryrequest.go b/pkg/client/informers/externalversions/akash.network/v2beta1/inventoryrequest.go index 1e3656d19..e48bec62c 100644 --- a/pkg/client/informers/externalversions/akash.network/v2beta1/inventoryrequest.go +++ b/pkg/client/informers/externalversions/akash.network/v2beta1/inventoryrequest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/akash.network/v2beta1/manifest.go b/pkg/client/informers/externalversions/akash.network/v2beta1/manifest.go index 59791863c..535712b25 100644 --- a/pkg/client/informers/externalversions/akash.network/v2beta1/manifest.go +++ b/pkg/client/informers/externalversions/akash.network/v2beta1/manifest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/akash.network/v2beta1/providerhost.go b/pkg/client/informers/externalversions/akash.network/v2beta1/providerhost.go index 3b9acdfce..19472e92a 100644 --- a/pkg/client/informers/externalversions/akash.network/v2beta1/providerhost.go +++ b/pkg/client/informers/externalversions/akash.network/v2beta1/providerhost.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/akash.network/v2beta1/providerleasedip.go b/pkg/client/informers/externalversions/akash.network/v2beta1/providerleasedip.go index 2b8ab9e05..70819ccd8 100644 --- a/pkg/client/informers/externalversions/akash.network/v2beta1/providerleasedip.go +++ b/pkg/client/informers/externalversions/akash.network/v2beta1/providerleasedip.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/informers/externalversions/akash.network/v1/interface.go b/pkg/client/informers/externalversions/akash.network/v2beta2/interface.go similarity index 64% rename from pkg/client/informers/externalversions/akash.network/v1/interface.go rename to pkg/client/informers/externalversions/akash.network/v2beta2/interface.go index b9d1cce12..98218b5fe 100644 --- a/pkg/client/informers/externalversions/akash.network/v1/interface.go +++ b/pkg/client/informers/externalversions/akash.network/v2beta2/interface.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,7 +16,7 @@ limitations under the License. // Code generated by informer-gen. DO NOT EDIT. -package v1 +package v2beta2 import ( internalinterfaces "github.com/akash-network/provider/pkg/client/informers/externalversions/internalinterfaces" @@ -24,10 +24,16 @@ import ( // Interface provides access to all the informers in this group version. type Interface interface { + // Inventories returns a InventoryInformer. + Inventories() InventoryInformer + // InventoryRequests returns a InventoryRequestInformer. + InventoryRequests() InventoryRequestInformer // Manifests returns a ManifestInformer. Manifests() ManifestInformer // ProviderHosts returns a ProviderHostInformer. ProviderHosts() ProviderHostInformer + // ProviderLeasedIPs returns a ProviderLeasedIPInformer. + ProviderLeasedIPs() ProviderLeasedIPInformer } type version struct { @@ -41,6 +47,16 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} } +// Inventories returns a InventoryInformer. +func (v *version) Inventories() InventoryInformer { + return &inventoryInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} + +// InventoryRequests returns a InventoryRequestInformer. +func (v *version) InventoryRequests() InventoryRequestInformer { + return &inventoryRequestInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} + // Manifests returns a ManifestInformer. func (v *version) Manifests() ManifestInformer { return &manifestInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} @@ -50,3 +66,8 @@ func (v *version) Manifests() ManifestInformer { func (v *version) ProviderHosts() ProviderHostInformer { return &providerHostInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } + +// ProviderLeasedIPs returns a ProviderLeasedIPInformer. +func (v *version) ProviderLeasedIPs() ProviderLeasedIPInformer { + return &providerLeasedIPInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/pkg/client/informers/externalversions/akash.network/v2beta2/inventory.go b/pkg/client/informers/externalversions/akash.network/v2beta2/inventory.go new file mode 100644 index 000000000..2480c7cd3 --- /dev/null +++ b/pkg/client/informers/externalversions/akash.network/v2beta2/inventory.go @@ -0,0 +1,89 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v2beta2 + +import ( + "context" + time "time" + + akashnetworkv2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + versioned "github.com/akash-network/provider/pkg/client/clientset/versioned" + internalinterfaces "github.com/akash-network/provider/pkg/client/informers/externalversions/internalinterfaces" + v2beta2 "github.com/akash-network/provider/pkg/client/listers/akash.network/v2beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// InventoryInformer provides access to a shared informer and lister for +// Inventories. +type InventoryInformer interface { + Informer() cache.SharedIndexInformer + Lister() v2beta2.InventoryLister +} + +type inventoryInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewInventoryInformer constructs a new informer for Inventory type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewInventoryInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredInventoryInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredInventoryInformer constructs a new informer for Inventory type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredInventoryInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AkashV2beta2().Inventories().List(context.TODO(), options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AkashV2beta2().Inventories().Watch(context.TODO(), options) + }, + }, + &akashnetworkv2beta2.Inventory{}, + resyncPeriod, + indexers, + ) +} + +func (f *inventoryInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredInventoryInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *inventoryInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&akashnetworkv2beta2.Inventory{}, f.defaultInformer) +} + +func (f *inventoryInformer) Lister() v2beta2.InventoryLister { + return v2beta2.NewInventoryLister(f.Informer().GetIndexer()) +} diff --git a/pkg/client/informers/externalversions/akash.network/v2beta2/inventoryrequest.go b/pkg/client/informers/externalversions/akash.network/v2beta2/inventoryrequest.go new file mode 100644 index 000000000..1c41c0b0c --- /dev/null +++ b/pkg/client/informers/externalversions/akash.network/v2beta2/inventoryrequest.go @@ -0,0 +1,89 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v2beta2 + +import ( + "context" + time "time" + + akashnetworkv2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + versioned "github.com/akash-network/provider/pkg/client/clientset/versioned" + internalinterfaces "github.com/akash-network/provider/pkg/client/informers/externalversions/internalinterfaces" + v2beta2 "github.com/akash-network/provider/pkg/client/listers/akash.network/v2beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// InventoryRequestInformer provides access to a shared informer and lister for +// InventoryRequests. +type InventoryRequestInformer interface { + Informer() cache.SharedIndexInformer + Lister() v2beta2.InventoryRequestLister +} + +type inventoryRequestInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewInventoryRequestInformer constructs a new informer for InventoryRequest type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewInventoryRequestInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredInventoryRequestInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredInventoryRequestInformer constructs a new informer for InventoryRequest type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredInventoryRequestInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AkashV2beta2().InventoryRequests().List(context.TODO(), options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AkashV2beta2().InventoryRequests().Watch(context.TODO(), options) + }, + }, + &akashnetworkv2beta2.InventoryRequest{}, + resyncPeriod, + indexers, + ) +} + +func (f *inventoryRequestInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredInventoryRequestInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *inventoryRequestInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&akashnetworkv2beta2.InventoryRequest{}, f.defaultInformer) +} + +func (f *inventoryRequestInformer) Lister() v2beta2.InventoryRequestLister { + return v2beta2.NewInventoryRequestLister(f.Informer().GetIndexer()) +} diff --git a/pkg/client/informers/externalversions/akash.network/v1/manifest.go b/pkg/client/informers/externalversions/akash.network/v2beta2/manifest.go similarity index 76% rename from pkg/client/informers/externalversions/akash.network/v1/manifest.go rename to pkg/client/informers/externalversions/akash.network/v2beta2/manifest.go index 736475e90..664ea0e4e 100644 --- a/pkg/client/informers/externalversions/akash.network/v1/manifest.go +++ b/pkg/client/informers/externalversions/akash.network/v2beta2/manifest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,17 +16,17 @@ limitations under the License. // Code generated by informer-gen. DO NOT EDIT. -package v1 +package v2beta2 import ( "context" time "time" - akashnetworkv1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" + akashnetworkv2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" versioned "github.com/akash-network/provider/pkg/client/clientset/versioned" internalinterfaces "github.com/akash-network/provider/pkg/client/informers/externalversions/internalinterfaces" - v1 "github.com/akash-network/provider/pkg/client/listers/akash.network/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v2beta2 "github.com/akash-network/provider/pkg/client/listers/akash.network/v2beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" @@ -36,7 +36,7 @@ import ( // Manifests. type ManifestInformer interface { Informer() cache.SharedIndexInformer - Lister() v1.ManifestLister + Lister() v2beta2.ManifestLister } type manifestInformer struct { @@ -58,20 +58,20 @@ func NewManifestInformer(client versioned.Interface, namespace string, resyncPer func NewFilteredManifestInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } - return client.AkashV1().Manifests(namespace).List(context.TODO(), options) + return client.AkashV2beta2().Manifests(namespace).List(context.TODO(), options) }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } - return client.AkashV1().Manifests(namespace).Watch(context.TODO(), options) + return client.AkashV2beta2().Manifests(namespace).Watch(context.TODO(), options) }, }, - &akashnetworkv1.Manifest{}, + &akashnetworkv2beta2.Manifest{}, resyncPeriod, indexers, ) @@ -82,9 +82,9 @@ func (f *manifestInformer) defaultInformer(client versioned.Interface, resyncPer } func (f *manifestInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&akashnetworkv1.Manifest{}, f.defaultInformer) + return f.factory.InformerFor(&akashnetworkv2beta2.Manifest{}, f.defaultInformer) } -func (f *manifestInformer) Lister() v1.ManifestLister { - return v1.NewManifestLister(f.Informer().GetIndexer()) +func (f *manifestInformer) Lister() v2beta2.ManifestLister { + return v2beta2.NewManifestLister(f.Informer().GetIndexer()) } diff --git a/pkg/client/informers/externalversions/akash.network/v1/providerhost.go b/pkg/client/informers/externalversions/akash.network/v2beta2/providerhost.go similarity index 76% rename from pkg/client/informers/externalversions/akash.network/v1/providerhost.go rename to pkg/client/informers/externalversions/akash.network/v2beta2/providerhost.go index df28324a2..c363b3f8e 100644 --- a/pkg/client/informers/externalversions/akash.network/v1/providerhost.go +++ b/pkg/client/informers/externalversions/akash.network/v2beta2/providerhost.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,17 +16,17 @@ limitations under the License. // Code generated by informer-gen. DO NOT EDIT. -package v1 +package v2beta2 import ( "context" time "time" - akashnetworkv1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" + akashnetworkv2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" versioned "github.com/akash-network/provider/pkg/client/clientset/versioned" internalinterfaces "github.com/akash-network/provider/pkg/client/informers/externalversions/internalinterfaces" - v1 "github.com/akash-network/provider/pkg/client/listers/akash.network/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v2beta2 "github.com/akash-network/provider/pkg/client/listers/akash.network/v2beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" @@ -36,7 +36,7 @@ import ( // ProviderHosts. type ProviderHostInformer interface { Informer() cache.SharedIndexInformer - Lister() v1.ProviderHostLister + Lister() v2beta2.ProviderHostLister } type providerHostInformer struct { @@ -58,20 +58,20 @@ func NewProviderHostInformer(client versioned.Interface, namespace string, resyn func NewFilteredProviderHostInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } - return client.AkashV1().ProviderHosts(namespace).List(context.TODO(), options) + return client.AkashV2beta2().ProviderHosts(namespace).List(context.TODO(), options) }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } - return client.AkashV1().ProviderHosts(namespace).Watch(context.TODO(), options) + return client.AkashV2beta2().ProviderHosts(namespace).Watch(context.TODO(), options) }, }, - &akashnetworkv1.ProviderHost{}, + &akashnetworkv2beta2.ProviderHost{}, resyncPeriod, indexers, ) @@ -82,9 +82,9 @@ func (f *providerHostInformer) defaultInformer(client versioned.Interface, resyn } func (f *providerHostInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&akashnetworkv1.ProviderHost{}, f.defaultInformer) + return f.factory.InformerFor(&akashnetworkv2beta2.ProviderHost{}, f.defaultInformer) } -func (f *providerHostInformer) Lister() v1.ProviderHostLister { - return v1.NewProviderHostLister(f.Informer().GetIndexer()) +func (f *providerHostInformer) Lister() v2beta2.ProviderHostLister { + return v2beta2.NewProviderHostLister(f.Informer().GetIndexer()) } diff --git a/pkg/client/informers/externalversions/akash.network/v2beta2/providerleasedip.go b/pkg/client/informers/externalversions/akash.network/v2beta2/providerleasedip.go new file mode 100644 index 000000000..8c4a214fc --- /dev/null +++ b/pkg/client/informers/externalversions/akash.network/v2beta2/providerleasedip.go @@ -0,0 +1,90 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v2beta2 + +import ( + "context" + time "time" + + akashnetworkv2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + versioned "github.com/akash-network/provider/pkg/client/clientset/versioned" + internalinterfaces "github.com/akash-network/provider/pkg/client/informers/externalversions/internalinterfaces" + v2beta2 "github.com/akash-network/provider/pkg/client/listers/akash.network/v2beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// ProviderLeasedIPInformer provides access to a shared informer and lister for +// ProviderLeasedIPs. +type ProviderLeasedIPInformer interface { + Informer() cache.SharedIndexInformer + Lister() v2beta2.ProviderLeasedIPLister +} + +type providerLeasedIPInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewProviderLeasedIPInformer constructs a new informer for ProviderLeasedIP type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewProviderLeasedIPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredProviderLeasedIPInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredProviderLeasedIPInformer constructs a new informer for ProviderLeasedIP type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredProviderLeasedIPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AkashV2beta2().ProviderLeasedIPs(namespace).List(context.TODO(), options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AkashV2beta2().ProviderLeasedIPs(namespace).Watch(context.TODO(), options) + }, + }, + &akashnetworkv2beta2.ProviderLeasedIP{}, + resyncPeriod, + indexers, + ) +} + +func (f *providerLeasedIPInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredProviderLeasedIPInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *providerLeasedIPInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&akashnetworkv2beta2.ProviderLeasedIP{}, f.defaultInformer) +} + +func (f *providerLeasedIPInformer) Lister() v2beta2.ProviderLeasedIPLister { + return v2beta2.NewProviderLeasedIPLister(f.Informer().GetIndexer()) +} diff --git a/pkg/client/informers/externalversions/factory.go b/pkg/client/informers/externalversions/factory.go index 1a87c2bf6..437b58c2a 100644 --- a/pkg/client/informers/externalversions/factory.go +++ b/pkg/client/informers/externalversions/factory.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -47,6 +47,11 @@ type sharedInformerFactory struct { // startedInformers is used for tracking which informers have been started. // This allows Start() to be called multiple times safely. startedInformers map[reflect.Type]bool + // wg tracks how many goroutines were started. + wg sync.WaitGroup + // shuttingDown is true when Shutdown has been called. It may still be running + // because it needs to wait for goroutines. + shuttingDown bool } // WithCustomResyncConfig sets a custom resync period for the specified informer types. @@ -107,20 +112,39 @@ func NewSharedInformerFactoryWithOptions(client versioned.Interface, defaultResy return factory } -// Start initializes all requested informers. func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) { f.lock.Lock() defer f.lock.Unlock() + if f.shuttingDown { + return + } + for informerType, informer := range f.informers { if !f.startedInformers[informerType] { - go informer.Run(stopCh) + f.wg.Add(1) + // We need a new variable in each loop iteration, + // otherwise the goroutine would use the loop variable + // and that keeps changing. + informer := informer + go func() { + defer f.wg.Done() + informer.Run(stopCh) + }() f.startedInformers[informerType] = true } } } -// WaitForCacheSync waits for all started informers' cache were synced. +func (f *sharedInformerFactory) Shutdown() { + f.lock.Lock() + f.shuttingDown = true + f.lock.Unlock() + + // Will return immediately if there is nothing to wait for. + f.wg.Wait() +} + func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool { informers := func() map[reflect.Type]cache.SharedIndexInformer { f.lock.Lock() @@ -167,11 +191,58 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal // SharedInformerFactory provides shared informers for resources in all known // API group versions. +// +// It is typically used like this: +// +// ctx, cancel := context.Background() +// defer cancel() +// factory := NewSharedInformerFactory(client, resyncPeriod) +// defer factory.WaitForStop() // Returns immediately if nothing was started. +// genericInformer := factory.ForResource(resource) +// typedInformer := factory.SomeAPIGroup().V1().SomeType() +// factory.Start(ctx.Done()) // Start processing these informers. +// synced := factory.WaitForCacheSync(ctx.Done()) +// for v, ok := range synced { +// if !ok { +// fmt.Fprintf(os.Stderr, "caches failed to sync: %v", v) +// return +// } +// } +// +// // Creating informers can also be created after Start, but then +// // Start must be called again: +// anotherGenericInformer := factory.ForResource(resource) +// factory.Start(ctx.Done()) type SharedInformerFactory interface { internalinterfaces.SharedInformerFactory - ForResource(resource schema.GroupVersionResource) (GenericInformer, error) + + // Start initializes all requested informers. They are handled in goroutines + // which run until the stop channel gets closed. + Start(stopCh <-chan struct{}) + + // Shutdown marks a factory as shutting down. At that point no new + // informers can be started anymore and Start will return without + // doing anything. + // + // In addition, Shutdown blocks until all goroutines have terminated. For that + // to happen, the close channel(s) that they were started with must be closed, + // either before Shutdown gets called or while it is waiting. + // + // Shutdown may be called multiple times, even concurrently. All such calls will + // block until all goroutines have terminated. + Shutdown() + + // WaitForCacheSync blocks until all started informers' caches were synced + // or the stop channel gets closed. WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool + // ForResource gives generic access to a shared informer of the matching type. + ForResource(resource schema.GroupVersionResource) (GenericInformer, error) + + // InternalInformerFor returns the SharedIndexInformer for obj using an internal + // client. + InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer + Akash() akashnetwork.Interface } diff --git a/pkg/client/informers/externalversions/generic.go b/pkg/client/informers/externalversions/generic.go index a50099b2b..00ef08a71 100644 --- a/pkg/client/informers/externalversions/generic.go +++ b/pkg/client/informers/externalversions/generic.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package externalversions import ( "fmt" - v1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" v2beta1 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta1" + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" ) @@ -53,13 +53,7 @@ func (f *genericInformer) Lister() cache.GenericLister { // TODO extend this to unknown resources with a client pool func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { switch resource { - // Group=akash.network, Version=v1 - case v1.SchemeGroupVersion.WithResource("manifests"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Akash().V1().Manifests().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("providerhosts"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Akash().V1().ProviderHosts().Informer()}, nil - - // Group=akash.network, Version=v2beta1 + // Group=akash.network, Version=v2beta1 case v2beta1.SchemeGroupVersion.WithResource("inventories"): return &genericInformer{resource: resource.GroupResource(), informer: f.Akash().V2beta1().Inventories().Informer()}, nil case v2beta1.SchemeGroupVersion.WithResource("inventoryrequests"): @@ -71,6 +65,18 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case v2beta1.SchemeGroupVersion.WithResource("providerleasedips"): return &genericInformer{resource: resource.GroupResource(), informer: f.Akash().V2beta1().ProviderLeasedIPs().Informer()}, nil + // Group=akash.network, Version=v2beta2 + case v2beta2.SchemeGroupVersion.WithResource("inventories"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Akash().V2beta2().Inventories().Informer()}, nil + case v2beta2.SchemeGroupVersion.WithResource("inventoryrequests"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Akash().V2beta2().InventoryRequests().Informer()}, nil + case v2beta2.SchemeGroupVersion.WithResource("manifests"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Akash().V2beta2().Manifests().Informer()}, nil + case v2beta2.SchemeGroupVersion.WithResource("providerhosts"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Akash().V2beta2().ProviderHosts().Informer()}, nil + case v2beta2.SchemeGroupVersion.WithResource("providerleasedips"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Akash().V2beta2().ProviderLeasedIPs().Informer()}, nil + } return nil, fmt.Errorf("no informer found for %v", resource) diff --git a/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go index c7099e958..2fe7d7278 100644 --- a/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/listers/akash.network/v2beta1/expansion_generated.go b/pkg/client/listers/akash.network/v2beta1/expansion_generated.go index 9247ee0d8..54f8a77f4 100644 --- a/pkg/client/listers/akash.network/v2beta1/expansion_generated.go +++ b/pkg/client/listers/akash.network/v2beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/listers/akash.network/v2beta1/inventory.go b/pkg/client/listers/akash.network/v2beta1/inventory.go index 24b3e2392..9d994c120 100644 --- a/pkg/client/listers/akash.network/v2beta1/inventory.go +++ b/pkg/client/listers/akash.network/v2beta1/inventory.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/listers/akash.network/v2beta1/inventoryrequest.go b/pkg/client/listers/akash.network/v2beta1/inventoryrequest.go index 231d0b348..6dee555b2 100644 --- a/pkg/client/listers/akash.network/v2beta1/inventoryrequest.go +++ b/pkg/client/listers/akash.network/v2beta1/inventoryrequest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/listers/akash.network/v2beta1/manifest.go b/pkg/client/listers/akash.network/v2beta1/manifest.go index e4c519bc9..4458fdacd 100644 --- a/pkg/client/listers/akash.network/v2beta1/manifest.go +++ b/pkg/client/listers/akash.network/v2beta1/manifest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/listers/akash.network/v2beta1/providerhost.go b/pkg/client/listers/akash.network/v2beta1/providerhost.go index d9b2ef6d1..337026696 100644 --- a/pkg/client/listers/akash.network/v2beta1/providerhost.go +++ b/pkg/client/listers/akash.network/v2beta1/providerhost.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/listers/akash.network/v2beta1/providerleasedip.go b/pkg/client/listers/akash.network/v2beta1/providerleasedip.go index b6a7658b1..844cf8e90 100644 --- a/pkg/client/listers/akash.network/v2beta1/providerleasedip.go +++ b/pkg/client/listers/akash.network/v2beta1/providerleasedip.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pkg/client/listers/akash.network/v1/expansion_generated.go b/pkg/client/listers/akash.network/v2beta2/expansion_generated.go similarity index 63% rename from pkg/client/listers/akash.network/v1/expansion_generated.go rename to pkg/client/listers/akash.network/v2beta2/expansion_generated.go index bb331f822..54f1bd76a 100644 --- a/pkg/client/listers/akash.network/v1/expansion_generated.go +++ b/pkg/client/listers/akash.network/v2beta2/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,7 +16,15 @@ limitations under the License. // Code generated by lister-gen. DO NOT EDIT. -package v1 +package v2beta2 + +// InventoryListerExpansion allows custom methods to be added to +// InventoryLister. +type InventoryListerExpansion interface{} + +// InventoryRequestListerExpansion allows custom methods to be added to +// InventoryRequestLister. +type InventoryRequestListerExpansion interface{} // ManifestListerExpansion allows custom methods to be added to // ManifestLister. @@ -33,3 +41,11 @@ type ProviderHostListerExpansion interface{} // ProviderHostNamespaceListerExpansion allows custom methods to be added to // ProviderHostNamespaceLister. type ProviderHostNamespaceListerExpansion interface{} + +// ProviderLeasedIPListerExpansion allows custom methods to be added to +// ProviderLeasedIPLister. +type ProviderLeasedIPListerExpansion interface{} + +// ProviderLeasedIPNamespaceListerExpansion allows custom methods to be added to +// ProviderLeasedIPNamespaceLister. +type ProviderLeasedIPNamespaceListerExpansion interface{} diff --git a/pkg/client/listers/akash.network/v2beta2/inventory.go b/pkg/client/listers/akash.network/v2beta2/inventory.go new file mode 100644 index 000000000..5eb4db790 --- /dev/null +++ b/pkg/client/listers/akash.network/v2beta2/inventory.go @@ -0,0 +1,68 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// InventoryLister helps list Inventories. +// All objects returned here must be treated as read-only. +type InventoryLister interface { + // List lists all Inventories in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v2beta2.Inventory, err error) + // Get retrieves the Inventory from the index for a given name. + // Objects returned here must be treated as read-only. + Get(name string) (*v2beta2.Inventory, error) + InventoryListerExpansion +} + +// inventoryLister implements the InventoryLister interface. +type inventoryLister struct { + indexer cache.Indexer +} + +// NewInventoryLister returns a new InventoryLister. +func NewInventoryLister(indexer cache.Indexer) InventoryLister { + return &inventoryLister{indexer: indexer} +} + +// List lists all Inventories in the indexer. +func (s *inventoryLister) List(selector labels.Selector) (ret []*v2beta2.Inventory, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v2beta2.Inventory)) + }) + return ret, err +} + +// Get retrieves the Inventory from the index for a given name. +func (s *inventoryLister) Get(name string) (*v2beta2.Inventory, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v2beta2.Resource("inventory"), name) + } + return obj.(*v2beta2.Inventory), nil +} diff --git a/pkg/client/listers/akash.network/v2beta2/inventoryrequest.go b/pkg/client/listers/akash.network/v2beta2/inventoryrequest.go new file mode 100644 index 000000000..108bcec13 --- /dev/null +++ b/pkg/client/listers/akash.network/v2beta2/inventoryrequest.go @@ -0,0 +1,68 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// InventoryRequestLister helps list InventoryRequests. +// All objects returned here must be treated as read-only. +type InventoryRequestLister interface { + // List lists all InventoryRequests in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v2beta2.InventoryRequest, err error) + // Get retrieves the InventoryRequest from the index for a given name. + // Objects returned here must be treated as read-only. + Get(name string) (*v2beta2.InventoryRequest, error) + InventoryRequestListerExpansion +} + +// inventoryRequestLister implements the InventoryRequestLister interface. +type inventoryRequestLister struct { + indexer cache.Indexer +} + +// NewInventoryRequestLister returns a new InventoryRequestLister. +func NewInventoryRequestLister(indexer cache.Indexer) InventoryRequestLister { + return &inventoryRequestLister{indexer: indexer} +} + +// List lists all InventoryRequests in the indexer. +func (s *inventoryRequestLister) List(selector labels.Selector) (ret []*v2beta2.InventoryRequest, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v2beta2.InventoryRequest)) + }) + return ret, err +} + +// Get retrieves the InventoryRequest from the index for a given name. +func (s *inventoryRequestLister) Get(name string) (*v2beta2.InventoryRequest, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v2beta2.Resource("inventoryrequest"), name) + } + return obj.(*v2beta2.InventoryRequest), nil +} diff --git a/pkg/client/listers/akash.network/v1/manifest.go b/pkg/client/listers/akash.network/v2beta2/manifest.go similarity index 81% rename from pkg/client/listers/akash.network/v1/manifest.go rename to pkg/client/listers/akash.network/v2beta2/manifest.go index 67c2eab13..ecbab3cdc 100644 --- a/pkg/client/listers/akash.network/v1/manifest.go +++ b/pkg/client/listers/akash.network/v2beta2/manifest.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,10 +16,10 @@ limitations under the License. // Code generated by lister-gen. DO NOT EDIT. -package v1 +package v2beta2 import ( - v1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" @@ -30,7 +30,7 @@ import ( type ManifestLister interface { // List lists all Manifests in the indexer. // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Manifest, err error) + List(selector labels.Selector) (ret []*v2beta2.Manifest, err error) // Manifests returns an object that can list and get Manifests. Manifests(namespace string) ManifestNamespaceLister ManifestListerExpansion @@ -47,9 +47,9 @@ func NewManifestLister(indexer cache.Indexer) ManifestLister { } // List lists all Manifests in the indexer. -func (s *manifestLister) List(selector labels.Selector) (ret []*v1.Manifest, err error) { +func (s *manifestLister) List(selector labels.Selector) (ret []*v2beta2.Manifest, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Manifest)) + ret = append(ret, m.(*v2beta2.Manifest)) }) return ret, err } @@ -64,10 +64,10 @@ func (s *manifestLister) Manifests(namespace string) ManifestNamespaceLister { type ManifestNamespaceLister interface { // List lists all Manifests in the indexer for a given namespace. // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Manifest, err error) + List(selector labels.Selector) (ret []*v2beta2.Manifest, err error) // Get retrieves the Manifest from the indexer for a given namespace and name. // Objects returned here must be treated as read-only. - Get(name string) (*v1.Manifest, error) + Get(name string) (*v2beta2.Manifest, error) ManifestNamespaceListerExpansion } @@ -79,21 +79,21 @@ type manifestNamespaceLister struct { } // List lists all Manifests in the indexer for a given namespace. -func (s manifestNamespaceLister) List(selector labels.Selector) (ret []*v1.Manifest, err error) { +func (s manifestNamespaceLister) List(selector labels.Selector) (ret []*v2beta2.Manifest, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Manifest)) + ret = append(ret, m.(*v2beta2.Manifest)) }) return ret, err } // Get retrieves the Manifest from the indexer for a given namespace and name. -func (s manifestNamespaceLister) Get(name string) (*v1.Manifest, error) { +func (s manifestNamespaceLister) Get(name string) (*v2beta2.Manifest, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(v1.Resource("manifest"), name) + return nil, errors.NewNotFound(v2beta2.Resource("manifest"), name) } - return obj.(*v1.Manifest), nil + return obj.(*v2beta2.Manifest), nil } diff --git a/pkg/client/listers/akash.network/v1/providerhost.go b/pkg/client/listers/akash.network/v2beta2/providerhost.go similarity index 80% rename from pkg/client/listers/akash.network/v1/providerhost.go rename to pkg/client/listers/akash.network/v2beta2/providerhost.go index 3cf34f5ff..611bd692c 100644 --- a/pkg/client/listers/akash.network/v1/providerhost.go +++ b/pkg/client/listers/akash.network/v2beta2/providerhost.go @@ -1,5 +1,5 @@ /* -Copyright The Kubernetes Authors. +Copyright The Akash Network Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,10 +16,10 @@ limitations under the License. // Code generated by lister-gen. DO NOT EDIT. -package v1 +package v2beta2 import ( - v1 "github.com/akash-network/provider/pkg/apis/akash.network/v1" + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" @@ -30,7 +30,7 @@ import ( type ProviderHostLister interface { // List lists all ProviderHosts in the indexer. // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ProviderHost, err error) + List(selector labels.Selector) (ret []*v2beta2.ProviderHost, err error) // ProviderHosts returns an object that can list and get ProviderHosts. ProviderHosts(namespace string) ProviderHostNamespaceLister ProviderHostListerExpansion @@ -47,9 +47,9 @@ func NewProviderHostLister(indexer cache.Indexer) ProviderHostLister { } // List lists all ProviderHosts in the indexer. -func (s *providerHostLister) List(selector labels.Selector) (ret []*v1.ProviderHost, err error) { +func (s *providerHostLister) List(selector labels.Selector) (ret []*v2beta2.ProviderHost, err error) { err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ProviderHost)) + ret = append(ret, m.(*v2beta2.ProviderHost)) }) return ret, err } @@ -64,10 +64,10 @@ func (s *providerHostLister) ProviderHosts(namespace string) ProviderHostNamespa type ProviderHostNamespaceLister interface { // List lists all ProviderHosts in the indexer for a given namespace. // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ProviderHost, err error) + List(selector labels.Selector) (ret []*v2beta2.ProviderHost, err error) // Get retrieves the ProviderHost from the indexer for a given namespace and name. // Objects returned here must be treated as read-only. - Get(name string) (*v1.ProviderHost, error) + Get(name string) (*v2beta2.ProviderHost, error) ProviderHostNamespaceListerExpansion } @@ -79,21 +79,21 @@ type providerHostNamespaceLister struct { } // List lists all ProviderHosts in the indexer for a given namespace. -func (s providerHostNamespaceLister) List(selector labels.Selector) (ret []*v1.ProviderHost, err error) { +func (s providerHostNamespaceLister) List(selector labels.Selector) (ret []*v2beta2.ProviderHost, err error) { err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ProviderHost)) + ret = append(ret, m.(*v2beta2.ProviderHost)) }) return ret, err } // Get retrieves the ProviderHost from the indexer for a given namespace and name. -func (s providerHostNamespaceLister) Get(name string) (*v1.ProviderHost, error) { +func (s providerHostNamespaceLister) Get(name string) (*v2beta2.ProviderHost, error) { obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) if err != nil { return nil, err } if !exists { - return nil, errors.NewNotFound(v1.Resource("providerhost"), name) + return nil, errors.NewNotFound(v2beta2.Resource("providerhost"), name) } - return obj.(*v1.ProviderHost), nil + return obj.(*v2beta2.ProviderHost), nil } diff --git a/pkg/client/listers/akash.network/v2beta2/providerleasedip.go b/pkg/client/listers/akash.network/v2beta2/providerleasedip.go new file mode 100644 index 000000000..fe3c30f82 --- /dev/null +++ b/pkg/client/listers/akash.network/v2beta2/providerleasedip.go @@ -0,0 +1,99 @@ +/* +Copyright The Akash Network Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v2beta2 "github.com/akash-network/provider/pkg/apis/akash.network/v2beta2" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// ProviderLeasedIPLister helps list ProviderLeasedIPs. +// All objects returned here must be treated as read-only. +type ProviderLeasedIPLister interface { + // List lists all ProviderLeasedIPs in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v2beta2.ProviderLeasedIP, err error) + // ProviderLeasedIPs returns an object that can list and get ProviderLeasedIPs. + ProviderLeasedIPs(namespace string) ProviderLeasedIPNamespaceLister + ProviderLeasedIPListerExpansion +} + +// providerLeasedIPLister implements the ProviderLeasedIPLister interface. +type providerLeasedIPLister struct { + indexer cache.Indexer +} + +// NewProviderLeasedIPLister returns a new ProviderLeasedIPLister. +func NewProviderLeasedIPLister(indexer cache.Indexer) ProviderLeasedIPLister { + return &providerLeasedIPLister{indexer: indexer} +} + +// List lists all ProviderLeasedIPs in the indexer. +func (s *providerLeasedIPLister) List(selector labels.Selector) (ret []*v2beta2.ProviderLeasedIP, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v2beta2.ProviderLeasedIP)) + }) + return ret, err +} + +// ProviderLeasedIPs returns an object that can list and get ProviderLeasedIPs. +func (s *providerLeasedIPLister) ProviderLeasedIPs(namespace string) ProviderLeasedIPNamespaceLister { + return providerLeasedIPNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// ProviderLeasedIPNamespaceLister helps list and get ProviderLeasedIPs. +// All objects returned here must be treated as read-only. +type ProviderLeasedIPNamespaceLister interface { + // List lists all ProviderLeasedIPs in the indexer for a given namespace. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*v2beta2.ProviderLeasedIP, err error) + // Get retrieves the ProviderLeasedIP from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. + Get(name string) (*v2beta2.ProviderLeasedIP, error) + ProviderLeasedIPNamespaceListerExpansion +} + +// providerLeasedIPNamespaceLister implements the ProviderLeasedIPNamespaceLister +// interface. +type providerLeasedIPNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all ProviderLeasedIPs in the indexer for a given namespace. +func (s providerLeasedIPNamespaceLister) List(selector labels.Selector) (ret []*v2beta2.ProviderLeasedIP, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v2beta2.ProviderLeasedIP)) + }) + return ret, err +} + +// Get retrieves the ProviderLeasedIP from the indexer for a given namespace and name. +func (s providerLeasedIPNamespaceLister) Get(name string) (*v2beta2.ProviderLeasedIP, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v2beta2.Resource("providerleasedip"), name) + } + return obj.(*v2beta2.ProviderLeasedIP), nil +} diff --git a/script/install_dev_dependencies.sh b/script/install_dev_dependencies.sh new file mode 100755 index 000000000..7d632c47a --- /dev/null +++ b/script/install_dev_dependencies.sh @@ -0,0 +1,148 @@ +#!/usr/bin/env bash + +parse_args() { + while getopts "?x" arg; do + case "$arg" in + x) set -x ;; + *) + echo "invalid flag" + exit 1 + ;; + esac + done + shift $((OPTIND - 1)) +} + +if [[ "$SHELL" == "bash" ]]; then + if [ "${BASH_VERSINFO:-0}" -lt 4 ]; then + echo "the script needs BASH 4 or above" >&2 + exit 1 + fi +fi + +is_command() { + command -v "$1" >/dev/null +} + +parse_args "$@" + +if [[ "$OSTYPE" == "darwin"* ]]; then + echo "Detected Darwin based system" + + if ! is_command brew; then + echo "homebrew is not installed. visit https://brew.sh" + exit 1 + fi + + tools= + + if ! is_command make || [[ $(make --version | head -1 | cut -d" " -f3 | cut -d"." -f1) -lt 4 ]]; then + tools="$tools make" + fi + + if ! brew list coreutils >/dev/null 2>&1 ; then + tools="$tools coreutils" + fi + + if ! brew list coreutils >/dev/null 2>&1 ; then + tools="$tools coreutils" + fi + + if ! brew list qemu >/dev/null 2>&1 ; then + tools="$tools qemu" + fi + + if ! is_command direnv; then + tools="$tools direnv" + fi + + if ! is_command unzip; then + tools="$tools unzip" + fi + + if ! is_command wget; then + tools="$tools wget" + fi + + if ! is_command curl; then + tools="$tools curl" + fi + + if ! is_command npm; then + tools="$tools npm" + fi + + if ! is_command jq; then + tools="$tools jq" + fi + + if ! is_command readlink; then + tools="$tools readlink" + fi + + if [[ "$tools" != "" ]]; then + # don't put quotes around $tools! + # shellcheck disable=SC2086 + brew install $tools + else + echo "All requirements already met. Nothing to install" + fi +elif [[ "$OSTYPE" == "linux-gnu"* ]]; then + if is_command dpkg; then + echo "Detected Debian based system" + tools= + if ! is_command make; then + tools="$tools make" + fi + + if ! dpkg -l build-essentials; then + tools="$tools build-essentials" + fi + + if ! is_command direnv; then + tools="$tools direnv" + fi + + if ! is_command unzip; then + tools="$tools unzip" + fi + + if ! is_command wget; then + tools="$tools wget" + fi + + if ! is_command curl; then + tools="$tools curl" + fi + + if ! is_command npm; then + tools="$tools npm" + fi + + if ! is_command jq; then + tools="$tools jq" + fi + + if ! is_command readlink; then + tools="$tools coreutils" + fi + + cmd="apt-get" + + if is_command sudo; then + cmd="sudo $cmd" + fi + + if [[ "$tools" != "" ]]; then + $cmd update + # don't put quotes around $tools! + # shellcheck disable=SC2086 + (set -x; $cmd install -y $tools) + else + echo "All requirements already met. Nothing to install" + fi + fi +else + echo "Unsupported OS $OSTYPE" + exit 1 +fi diff --git a/script/is_local_gomod.sh b/script/is_local_gomod.sh index b58275717..922b562cd 100755 --- a/script/is_local_gomod.sh +++ b/script/is_local_gomod.sh @@ -1,9 +1,5 @@ #!/usr/bin/env bash -MOD_PATH=$(go list -mod=readonly -m -f '{{ .Replace }}' "$1" 2>/dev/null) +MOD_PATH=$(go list -mod=readonly -m -f '{{ .Replace }}' "$1" 2>/dev/null | grep -v -x -F "") -if [[ "${MOD_PATH}" == "" ]]; then - echo false -else - [[ "${MOD_PATH}" = /* ]] && echo true || echo false -fi +[[ "${MOD_PATH}" = /* ]] && echo -n true || echo -n false diff --git a/script/load_docker2ctr.sh b/script/load_docker2ctr.sh new file mode 100755 index 000000000..b309fa519 --- /dev/null +++ b/script/load_docker2ctr.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +images=("$1") + +remote=$2 + +if ! ssh "$remote" "which nerdctl" >/dev/null 2>&1; then + echo "nerdctl is not installed on remote server. https://github.com/containerd/nerdctl/blob/main/docs/rootless.md" + exit 1 +fi + +for image in ${images[*]}; do + if ! docker image inspect "$image" >/dev/null 2>&1; then + echo "image \"$image\" is not present locally" + exit 1 + fi +done + +# need tqdm installed (https://github.com/tqdm/tqdm) for this to work. +for image in ${images[*]}; do + docker save "$image" | tqdm --bytes --total "$(docker image inspect $image --format='{{.Size}}')" | ssh "$remote" "nerdctl image load" +done diff --git a/script/load_docker2kind.sh b/script/load_docker2kind.sh new file mode 100755 index 000000000..29cfa521e --- /dev/null +++ b/script/load_docker2kind.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +images=("$1") +kind_name=$2 + +for image in ${images[*]}; do + if ! docker image inspect "$image" >/dev/null 2>&1; then + echo "image \"$image\" is not present locally" + exit 1 + fi +done + +for image in ${images[*]}; do + kind --name "${kind_name}" load docker-image "${image}" +done diff --git a/script/setup-kube.sh b/script/setup-kube.sh new file mode 100755 index 000000000..72682e777 --- /dev/null +++ b/script/setup-kube.sh @@ -0,0 +1,167 @@ +#!/usr/bin/env bash + +# +# Set up a kubernetes environment with kind. +# +# * Install Akash CRD +# * Install `akash-services` Namespace +# * Install Network Policies +# * Optionally install metrics-server + +set -e + +if [[ $# -ne 2 ]]; then + echo "invalid amount of args" + exit 1 +fi + +rootdir="$(dirname "$0")/.." + +usage() { + cat <